《数据采集技术》课件-Spiders_第1页
《数据采集技术》课件-Spiders_第2页
《数据采集技术》课件-Spiders_第3页
《数据采集技术》课件-Spiders_第4页
《数据采集技术》课件-Spiders_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SpidersSpidersScrapy框架提供了scrapy.Spider做为爬虫的基类,所有自定义的爬虫必须从它那里继承SpidersSpiders负责定义如何爬取及解析数据Spidersscrapy.Spider类的字段:主要字段描述name定义爬虫名称的字符串allowed_domains包含了允许爬取的域名列表start_urls表示初始URL列表custom_settings定义该spider配置的字典拓展关于设置settings中的值的几种方法,优先级从高到低如下命令行选项1custom_settings2拓展关于设置settings中的值的几种方法,优先级从高到低如下命令行选项1custom_settings2settings.py文件3命令行的默认设置,每一个命令行都有它自己的默认设置4默认的全局设置,被定义在scrapy.settings.default_settings中5Spidersscrapy.Spider类的字段:主要字段描述name定义爬虫名称的字符串allowed_domains包含了允许爬取的域名列表start_urls表示初始URL列表custom_settings定义该spider配置的字典crawler定义spider实例绑定的crawler对象Spidersscrapy.Spider类的字段:主要字段描述settings运行spider的配置logger用spider名字创建的Python日志记录器from_crawler(crawler,*args,**kwargs)scrapy用于创建spiders的类方法start_requests()开始爬虫URL的函数parse(response)Scrapy默认的回调用来处理下载的responselog(message[,level,component])日志处理closed(reason)在Spider关闭时被调用Spidersscrapy.Spider类的字段:主要字段描述settings运行spider的配置logger用spider名字创建的Python日志记录器from_crawler(crawler,*args,**kwargs)scrapy用于创建spiders的类方法。start_requests()开始爬虫URL的函数parse(response)Scrapy默认的回调用来处理下载的responselog(message[,level,component])日志处理closed(reason)在Spider关闭时被调用Spidersscrapy.Spider类的字段:主要字段描述settings运行spider的配置logger用spider名字创建的Python日志记录器from_crawler(crawler,*args,**kwargs)scrapy用于创建spiders的类方法。start_requests()开始爬虫URL的函数parse(response)Scrapy默认的回调用来处理下载的responselog(message[,level,component])日志处理closed(reason)在Spider关闭时被调用Spidersscrapy.Spider类的字段:主要字段描述settings运行spider的配置logger用spider名字创建的Python日志记录器from_crawler(crawler,*args,**kwargs)scrapy用于创建spiders的类方法。start_requests()开始爬虫URL的函数parse(response)Scrapy默认的回调用来处理下载的responselog(message[,level,component])日志处理closed(reason)在Spider关闭时被调用Spidersscrapy.Spider类的字段:主要字段描述settings运行spider的配置logger用spider名字创建的Python日志记录器from_crawler(crawler,*args,**kwargs)scrapy用于创建spiders的类方法。start_requests()开始爬虫URL的函数parse(response)Scrapy默认的回调用来处理下载的responselog(message[,level,component])日志处理closed(reason)在Spider关闭时被调用Spider参数使用带-a选项的爬行命令传递,如下所示:scrapycrawlfirst_scrapy-agroup=accessoriesSpider参数用于指定起始URLSpider参数使用带-a选项的爬行命令传递,如下所示:scrapycrawlfirst_scrapy-agroup=accessoriesSpider参数用于指定起始URLSpider参数演示一个Spider如何接收参数:importscrapyclassFirstSpider(scrapy.Spider):name="first"def__init__(self,group=None,*args,**kwargs):super(FirstSpider,self).__init__(*args,**kwargs)self.start_urls=["/group/%s"%group]通用SpidersCrawlSpider自定义规则来爬取所有返回页面中的链接XMLFeedSpider用来爬取XMLCSVFeedSpider用来爬取csvSitemapSpider通过Sitemap来发现爬取的URL通用SpidersCrawlSpider自定义规则来爬取所有返回页面中的链接XMLFeedSpider用来爬取XMLCSVFeedSpider用来爬取csvSitemapSpider通过Sitemap来发现爬取的URLCrawlSpiderCrawlSpiderCrawlSpider继承于Spiders类,有以下类:classscrapy.spiders.CrawlSpider在scrapy的源码中的位置在scrapy->spiders->crawl.py中Rule规则是一个规则对象的列表,定义了爬虫如何跟踪链接classscrapy.spiders.Rule(link_extractor,callback=None,cb_kwargs=None,follow=None,process_links=None,process_request=None)Rule类跟CrawlSpider在同一文件中:参数说明LinkExtractor规定了Spider如何跟踪链接并提取数据callback在每个页面被爬取后被调用cb_kwargs传递参数给回调函数的字典类型follow指定是否继续跟踪链接process_links回调函数process_request回调函数parse_start_url(response)start_urls默认回调方法,通过允许解析初始响应来返回项目或请求对象注意:在编写规则时,请确保重命名parse函数,因为parse函数被CrawlSpider用来实现其逻辑fromscrapy.spidersimportCrawlSpider,Rulefromscrapy.linkextractorsimportLinkExtractorclassTestSpider(CrawlSpider):name='test'start_urls=['/',]rules=(Rule(link_extractor=LinkExtractor(deny=('page/2')),callback='parse_item_first',follow=True),Rule(link_extractor=LinkExtractor(allow=('page/3')),callback='parse_item_second'))defparse_item_first(self,response):print('parse_item_first:',response.url)defparse_item_second(self,response):print('

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论