佚名通过本文主要向大家介绍了无法安装scrapy,scrapy抓取动态页面,scrapy抓取图片,scrapy抓取动态网页,scrapy等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:scrapy无法抓取css选择器指定的内容
描述:
解决方案1:
描述:
我在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工具里都可以正确地选出内容。
解决方案1:
遇到这种情况一般有以下几种可能:
1.返回的response本身为空:那么应该就是IP被封了;
2.返回的response不为空:
i.返回的文件可能是压缩格式的,判断文件格式后,解压之后再抓取即可;
ii.要抓取的内容为动态的。你列出的例子就是这样,解决办法是:进入职位详情页再抓取,如下:
a搜索结果列表页
b职位详情页
c职位详情源码页
可能哪些内容是ajax动态的,print response里的html看看你的内容在不在里面