掌握目标掌握请求的结构和发送方式掌握Item的使用掌握元参数如何通过一个脚本实现翻页请求,如何提取下图中所有页面的数据?
回顾requests模块是如何实现翻页要求的:
找到下一页的URL地址并调用requests.get(URL )构想:
找到下一页的url地址并构筑url地址的请求,交给引擎1.1实现翻页请求的使用方法
获取url地址后,可以在scrapy.request(URL,callback )中获取request对象,然后使用yield关键字将该request对象传递给引擎
具体使用
用户-添加代理
此外,还可以在设置中设置用户代理。
user _ agent=' Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5)苹果WebKit/537.36 (khtml,like Gecko ) chrome/59.0.3071.115 safari/537.36 )腾讯招聘页面
地址: http://HR.Tencent.com/position.PHP
思想分析:
获取首页数据,查找下一页的地址,进行翻页,查找数据1.2 scrapy.Request的更多参数scrapy.request(URL[,callback,method='GET )
括号内的参数为可选参数callback :表示当前url的响应传递给哪个函数的元:实现数据在不同的解析函数中传递,元默认具有下载延迟、请求深度等部分数据的dont _ filter 这意味着,请求的url地址不会继续被请求,对于需要重复请求的url地址,可以请求的start_urls中的地址将被重复请求。 否则,程序不会启动双定义Item定义Item的原因
定义item后,系统会提前计划需要捕获的字段。 scrapy.Field ) )只是提前占用洞,就可以通过item.py让别人清楚自己的爬虫在抓取什么。 此外,还可以定义哪些字段需要捕获,未定义的字段不可用,从而避免手的错误
定义项目
使用项目
在使用Item之前,必须导入并实例化,之后的使用方法与词典的使用方法相同
from殷勤可乐. items import呆瓜酸奶item=呆瓜酸奶() #通过登录实例化阳光热线咨询政治平台学习使用item
目标:所有投诉帖子的编号、帖子的url、帖子标题和内容,URL:http://wz.sun0769.com/index.PHP/question/question type? type=4page=0
分析想法
列表页数据
确定列表页的url地址和程序结束条件
如果有下一页
如果下一页不存在
确定详细页面的数据
要将数据从列表页传递到详细页,请使用:元参数
包含图像时
不包含图像时
手抓https://www.guokr.com/ask/highlight /上的列表内容