一、Spiders工作流程:
Spiders是Scrapy中最重要的地方,它定义了如何爬取及解析数据,可以说Spiders是Scrapy框架中的核心所在。
- 根据初始的urls生成requests对象并指定处理requests对象response的回调方法。初始的urls是由spider的start_urls属性指定的,然后默认调用start_requests方法生成对应的requests对象,处理requests对象response的默认回调方法是parse。
- 在回调方法里,解析response的内容并返回希望提取的数据,可以返回字典格式的数据,Item对象,request对象或者是这些对象的迭代器。如果是返回的request对象,同样也要指定其的回调方法(可以是当前的这一个),然后scrapy也会同样的处理这些request对象:获取他们的response,使用回调方法解析并返回数据。
- 在回调方法里,使用scrapy的selector(选择器)来提取response里的数据并返回(也可以使用其他的解析工具,如BeautifulSoup、lxml等)。
- 最后从spider返回的数据,我们可以通过Item Pipeline写入数据库或使用feed exports保存到文件中。
虽然该循环对任何类型的spider都(多少)适用,但scrapy仍然为了不同的需求提供了多种默认spider。 之后将讨论这些spider。
二、Spider属性功能定义
scrapy
最简单的spider:scrapy.spiders.Spider