TW出租屋的蜘蛛
scrapy-tw-rental-house的Python项目详细描述
TW出租屋公共设施,用于废料
这个包是为使用Scrapy爬行台湾出租屋相关网站而构建的。 由于爬虫程序的行为可能不同于其目标、规模和管道,因此此软件包仅提供最小功能集,允许开发人员列出出租屋网页并将其解码为结构化数据,而不必太了解每个网站的详细HTML和API结构。此外,该软件包还设计用于扩展性,允许开发人员插入定制回调、操作数据,并与现有的爬虫结构集成。
虽然这个软件包提供了对出租屋网站进行抓取的能力,但开发人员有责任确保抓取机制和数据的使用。请对目标网站友好,例如考虑使用DOWNLOAD_DELAY或AUTO_THROTTLING来防止批量请求。
要求
- Python3.5+
安装
pip install scrapy-tw-rental-house
基本用法
此包当前支持591。每家出租屋的网站都是一个小蜘蛛班。您可以使用默认设置(需要几天)对整个网站进行爬网,也可以根据需要自定义行为。
最基本的用法是创建继承rental591spider:
fromscrapy_twrh.spiders.rental591importRental591SpiderclassMyAwesomeSpider(Rental591Spider):name='awesome'
然后开始爬行
scrapy crawl awesome
有关详细用法,请参见example。
项目
所有蜘蛛都会填充2种类型的碎片项:GenericHouseItem
和RawHouseItem
。
GenericHouseItem
包含规范化的数据字段,来自不同网站的spirders将对其数据进行解码,并尽最大努力适应此模式。
RawHouseItem
包含未格式化的数据字段,该字段尽最大努力保留原始数据和结构化数据。
注意,这两个项都是模式的超级集。IT开发人员负责在接收项目时检查提供的字段。
例如,在Rental591Spider
中,对于单个出租屋,scrapy将获得:
- 1x
RawHouseItem
+1xGenericHouseItem
在列出所有房屋时,它们只为GenericHouseItem
提供最小数据字段 - 在检索房屋详细信息时为1x
RawHouseItem
+2xGenericHouseItem
。第二个GenericHouseItem
只包含位置信息。
处理程序
此包中的所有蜘蛛都提供以下处理程序:
start_list
,与scrapy中的start_requests
类似,控制爬虫如何发出搜索/列表请求以查找所有出租房屋。parse_list
,与scrapy中的parse
类似,控制爬网程序如何处理来自start_list
的响应,并生成对详细信息页的请求。parse_detail
,控制爬网程序如何分析详细信息页。
所有蜘蛛都实现自己的默认处理程序,例如,default_start_list
,default_parse_list
,和default_parse_detail
,并且可以在__init__
期间被覆盖。请参阅example了解如何使用处理程序控制蜘蛛行为。