【Scrapy】Spiders爬虫

来源:互联网 发布:阿里在线编程测验 编辑:程序博客网 时间:2024/05/16 18:22

Spider类定义了如何爬取某个网站。包括爬取的动作以及如何从网页的内容中提取结构化数据
Spider就是定义爬取的动作及分析某个网页的地方。

爬取的循环:

①以初始的URL初始化Request,并设置回调函数。当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数。
spider中初始的request是通过调用start_requests()来获取的。start_requests()读取start_urls中的URL,并以parse为回调函数生成Request.

②在回调函数内分析返回的(网页)内容。返回Item对象或者Request或者一个包括二者的可迭代容器。返回的Request对象之后会经过Scrapy处理,下载相应的内容,并调用设置的callback函数(函数可以相同)。

③在回调函数内,可以使用选择器(Selectors)(也可以使用BeautifulSoup,lxml或者想用的任何解析器)来分析网页内容,并根据分析的数据生成item。

④最后由spider返回的item将被存到数据库(由某些Item Pipeline处理)或使用Feed exports存入到文件中。

Spider参数

Spider可以通过接收参数来修改其功能。spider参数一般用来定义初始URL或者指定限制爬取网站的部分。也可以使用其来配置spider的任何功能。

在运行crawl时添加-a可以传递Spider参数

scrapy crawl myspider -a category=electronics

Spider

class scrapy.spider.Spider

Spider是最简单的spider。每个其他的spider必须继承自该类(包括Scrapy自带的其他spider以及自己编写的spider)。Spider并没有提供什么特殊的功能。其仅仅请求给定的start_urls/start-requests,并根据返回的结果(resulting responses)调用spider的parse方法。

name
定义spider名字的字符串。spider的名字定义了Scrapy如何定位(并初始化)spider。所以其必须是唯一的。

0 0