scrapy无法抓取css选择器指定的内容

青春不谢
  • 289

我在ubuntu14.04上工作,使用google chrome浏览器。想使用scrapy(1.0)把拉勾网上有关python的工作都爬一遍,但是得不到想要的结果。代码如下

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Filename: dmoz_spider.py

import scrapy

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    start_urls = [
    'http://www.lagou.com/jobs/list_python?gj=1-3%E5%B9%B4&px=default&city=%E6%88%90%E9%83%BD#filterBox'
    ]

    def parse(self, response):
        total = response.css('.money').extract()
        print('note:', total)
        for res in total:
            print(res)

这里是拉勾网的地址,地点成都,python相关
我想要获取的内容如下:"6k-9k" 即每个岗位的薪资
图片
使用chrome的一个插件SelectorGadgets得到了要抓取的内容的css selector表达hi为.money。然后在终端用命令scrapy crawl dmoz开始启动爬虫,但是却没有得到任何结果,请教各位大神,这是怎么回事?
PS:该selector在chrome的F12工具里都可以正确地选出内容。

回复
阅读 5.4k
2 个回答
✓ 已被采纳

可能哪些内容是ajax动态的,print response里的html看看你的内容在不在里面

scoder
  • 6

遇到这种情况一般有以下几种可能:
1.返回的response本身为空:那么应该就是IP被封了;
2.返回的response不为空:

i.返回的文件可能是压缩格式的,判断文件格式后,解压之后再抓取即可;
ii.要抓取的内容为动态的。你列出的例子就是这样,解决办法是:进入职位详情页再抓取,如下:

a搜索结果列表页
图片描述

b职位详情页
图片描述

c职位详情源码页
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏