- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第5章Scrapy爬虫框架——第2节Scrapy框架的使用
【学习目标】(1)掌握使用Scrapy创建工程。(2)掌握使用Spider提取数据(3)掌握使用Item封装数据(4)掌握使用ItemPipline处理数据
1创建Scrapy工程2使用Spider提取数据3使用Item封装数据4使用ItemPipline处理数据
2.1Scrapy框架的整体架构和组成创建Scrapy工程scrapystartproject项目名称创建爬虫编写爬虫代码cd项目名称scrapygenspider爬虫名允许爬取的域名
2.1Scrapy框架的整体架构和组成因为新版本的Scrapy爬虫框架默认遵守Robot协议,而百度的Robot协议不允许其爬取首页,这时就需要打开settings.py设置Scrapy爬虫框架的ROBOTSTXT_OBEY为False并保存,才能顺利运行爬取数据。运行爬虫scrapycrawl爬虫名对于数据的保存,需要使用如下命令生成文件:(将爬取结果输入保存到csv类型的文件)。scrapycrawlbaidu-oitem-baidu.csv随着[scrapy.core.engine]INFO:Spiderclosed这行命令的出现,表示Spider运行完成
1创建Scrapy工程2使用Spider提取数据3使用Item封装数据4使用ItemPipline处理数据
2.2使用Spider提取数据Spider是Scrapy提供的基本类,Scrapy中包含的其他基本类或者自定义的Spider都必须继承自这个类。Spider类定义的是网页的爬取逻辑规则,下面介绍利用Spider爬取数据的典型过程。首先,Spider的入口方法为start_requests请求start_urls列表中定义的网页链接地址,返回Request对象,同时默认传递一个名为parse的回调函数。其次,下载器获取Response后,由回调函数会解析,Response返回yield的结果。这里的结果由爬取到的数据组成,可以是列表、字典、Item或者Request对象等。然后,使用Scrapy自带的选择器工具解析数据。最后,将返回的数据字典或者Item自己保存为文件或存储在数据库中。对于代码文件,由Scrapy生成的classXXXSpider(scrapy.Spider)类中有几个重要的属性:
2.2使用Spider提取数据name:是字符串,用于设置Spider的名字,实际中一般为每个独立网站创建一个Spider。allowed_domains:是一个字符串列表。规定了允许爬取的网站域名,非域名下的网页将被自动过滤。strart_urls:是一个必须定义包含初始请求页面URL的列表。start_requests()方法会引用该属性,发出初始的Request。start_requests(self):在命立行执行爬虫的时候,如果没有给出指定的URL,那么引擎会调用这个方法。该方法返回一个迭代器,迭代器的内容为Request.parse(self,response):引擎默认的响应处理函数。如果没有在Request中指定响应处理函数,那么引擎会调用这个函数。
2.2使用Spider提取数据在Scrapy中Spider实现了自己的提取数据的一套机制,其被称为Selectors(选择器),这些选择器是构建在lxml库之上,并简化了API。Spider提取数据的选择器包括Xpath和CSS两种。Xpath可以用来在XML、HTML文件中选择节点和元素。CSS是HTML文档样式化的语言。
2.2使用Spider提取数据Xpath常用操作表达式描述/从根节点选取//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置.当前节点位置..当前节点的父节点@获取属性如:@href@src*[1]获取第一个元素,*表示你要的标签,也表示任意内容text()当前标签的内容
2.2使用Spider提取数据与Xpath选择器相比,CSS选择器的语法比Xpath选择器更简单一些,但功能不如Xpath选择器强大。相对来说,前端工程师可能会更加喜欢使用CSS选择器,同时它的使用方式写CSS时的方法基本一样。
2.2使用Spider提取数据CSS常用的使用操作选择器例子例子描述#id#container选择id=“container”的所有元素.class.container选择class=“container”的所有元素elementp选择所有p元素element,elementdiv,p选择所有div元素和所有p元素elementelementlia选择li元素内部的所有
原创力文档


文档评论(0)