作者:empty 页数:167 出版社:empty |
Scrapy是一个为了爬取网站数据, 提取结构性数据而编写的应用框架。可以应用在包括数据挖掘, 信息处理或存储历史数据等一系列的程序中,其最初是为了更面抓取[htp//en.wikipedia.org wk i/Screen_scraping l(更确切来说, 网络抓取[httpJjenwkipedaorgwiki Web_scraping] ) 所设计的, 也可以应用在获取AP所返回的数据(例如Amazon AsaociatesWebSerces[http/ians.am ez or com/associates] ) 或者通用的网络爬虫。本文档将通过介绍Scrapy背后的概念使您对其工作原理有所了解, 井确定Scrapy是否是您所需要的。当您准备好开始您的项目后,您可以参考么门教程.
选择一个网站当您需要从某个网站中获取信息, 但该网站未提供AP能通过程序获取信息的机制时, Scrapy可以助你一臂之力。以Mininova[http//wwe mini ncva.org网站为例, 我们想要获取今日添加的所有种子的URL、名字、描述以及文件大小信息,今日添加的种子列表可以通过这个页面找到:定义您想抓取的数据第一步是定文我们需要爬取的数据。在Scrapy中, 这是通过Scrapyn ems来完成的。(在本例子中为种子文件)我们定义的tem
第二步是编写一个api der.其定义了初始URL(http:f www.mininova.orgi today) 、针对后续链接的规则以及从页面中提取数据的规则。通过观察页面的内容可以发现, 所有种子的URL都类似http://wew.mininova.org/tor/NUMEER, 其中, NUH BER是一个整数。根据此规律, 我们可以定义需要进行跟进的链接的正则表达式:/to r/ d+.我们使用XP at b[http/www.w3og/TR/xpeth) 来从页面的HTML源码中选择需要提取的数据, 以其中一个种子文件的页面为例:观察HTML页面源码并创建我们需要的数据(种子名字, 描述和大小) 的XPath表达式。通过观察,我们可以发现文件名是包含在 h1>标签中的
终于, 我们可以运行spider米获取网站的数据, 并以JSON格式存入到scraped data-ja on文件中:Scrapy crawl mininova-o scraped data-ja on命令中使用了fa ed是出来导出JSON文件。您可以修改导出格式(XML或者CSV) 或者存储后端(FTP或者AmazonS 3[http e laws.amezan.coms 3] ) , 这并不困难,同时, 您也可以编写fem道将item存储到数据库中。查看提取到的数据执行结束后, 当您查看re raped_data.j som, 您将看到提取到的i lem:·针对多爬虫下性能评估、失败检测,提供了可扩展的我在集工具。·提供交互is hell, 为您测试XPath表达式, 编写和调试虫提供了极大的方便·提供System service, 简化在生产环境的部署及运行·内置Telnet, 通过在Scrapy进程中钩入Python终端, 使您可以查看并且调试爬虫·legging为您在爬取过程中措捉错误提供了方便[m url :Thttp://wau.mininova.org/tor/2676D93 ,Tnanet:I Darvin-TheEvoluttonofAnExdlbitioo , “d ascription:[ Sha.oth aribas由于selectors返回list所以值都是以list存储的(除了ur 1是直接赋值之外) .如果您想要保存单个数据或者对数据执行外的处理, 那将是Mem Loaders发挥作用的地方。