忘心

scrapy的入门使用(二)

1. scrapy实现翻页请求

  1. 找到下一页的url地址
  2. 构造url地址的请求,传递给引擎

1.1 实现翻页请求

  1. 使用方法
    在获取到url地址之后,可以通过scrapy.Request(url,callback)得到一个request对象,通过yield关键字就可以把这个request对象交给引擎
  2. 具体使用
  3. 添加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

  1. 定义Item的原因
    定义item即提前规划好哪些字段需要抓取,scrapy.Field()仅仅是提前占坑,通过item.py能够让别人清楚自己的爬虫是在抓取什么,同时定义好哪些字段是需要抓取的,没有定义的字段不能使用,防止手误
  1. 定义Item
  2. 使用Item
    Item使用之前需要先导入并且实例化,之后的使用方法和使用字典相同
    from yangguang.items import YangguangItem
    item = YangguangItem() #实例化
 

posted on 2018-12-15 16:49  忘心  阅读(137)  评论(0编辑  收藏  举报

导航