Scrapy是python的一个爬虫框架
初窥Scrapy
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
本文档将通过介绍Scrapy背后的概念使您对其工作原理有所了解, 并确定Scrapy是否是您所需要的。
当您准备好开始您的项目后,您可以参考 入门教程 。
选择一个网站
当您需要从某个网站中获取信息,但该网站未提供API或能通过程序获取信息的机制时, Scrapy可以助你一臂之力。
以 Mininova 网站为例,我们想要获取今日添加的所有种子的URL、 名字、描述以及文件大小信息。
今日添加的种子列表可以通过这个页面找到:
定义您想抓取的数据
第一步是定义我们需要爬取的数据。在Scrapy中, 这是通过 Scrapy Items 来完成的。(在本例子中为种子文件)
我们定义的Item:
importscrapyclassTorrentItem(scrapy.Item):url=scrapy.Field()name=scrapy.Field()description=scrapy.Field()size=scrapy.Field()编写提取数据的Spider
通过观察页面的内容可以发现,所有种子的URL都类似 。 其中, 是一个整数。 根据此规律,我们可以定义需要进行跟进的链接的正则表达式: 。
我们使用 XPath 来从页面的HTML源码中选择需要提取的数据。 以其中一个种子文件的页面为例:
http://www.mininova.org/tor/2676093
观察HTML页面源码并创建我们需要的数据(种子名字,描述和大小)的XPath表达式。
通过观察,我们可以发现文件名是包含在 标签中的:
领取专属 10元无门槛券
私享最新 技术干货