scrapy的入门使用(二)
1. scrapy实现翻页请求
-
找到下一页的url地址
-
构造url地址的请求,传递给引擎
1.1 实现翻页请求
-
使用方法在获取到url地址之后,可以通过scrapy.Request(url,callback)得到一个request对象,通过yield关键字就可以把这个request对象交给引擎
-
具体使用
-
添加User-Agent同时可以再在setting中设置User-Agent:USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
1.2 scrapy.Request的更多参数
scrapy.Request(url[,callback,method="GET",headers,body,cookies,meta,dont_filter=False])
注意:
-
括号中的参数为可选参数
-
callback:表示当前的url的响应交给哪个函数去处理
-
meta:实现数据在不同的解析函数中传递,meta默认带有部分数据,比如下载延迟,请求深度等
-
dont_filter:默认会过滤请求的url地址,即请求过的url地址不会继续被请求,对需要重复请求的url地址可以把它设置为Ture,比如贴吧的翻页请求,页面的数据总是在变化;start_urls中的地址会被反复请求,否则程序不会启动
2. 定义Item
-
定义Item的原因定义item即提前规划好哪些字段需要抓取,scrapy.Field()仅仅是提前占坑,通过item.py能够让别人清楚自己的爬虫是在抓取什么,同时定义好哪些字段是需要抓取的,没有定义的字段不能使用,防止手误
-
定义Item
-
使用ItemItem使用之前需要先导入并且实例化,之后的使用方法和使用字典相同from yangguang.items import YangguangItemitem = YangguangItem() #实例化