TW出租屋的蜘蛛

scrapy-tw-rental-house的Python项目详细描述


TW出租屋公共设施,用于废料

这个包是为使用Scrapy爬行台湾出租屋相关网站而构建的。 由于爬虫程序的行为可能不同于其目标、规模和管道,因此此软件包仅提供最小功能集,允许开发人员列出出租屋网页并将其解码为结构化数据,而不必太了解每个网站的详细HTML和API结构。此外,该软件包还设计用于扩展性,允许开发人员插入定制回调、操作数据,并与现有的爬虫结构集成。

虽然这个软件包提供了对出租屋网站进行抓取的能力,但开发人员有责任确保抓取机制和数据的使用。请对目标网站友好,例如考虑使用DOWNLOAD_DELAYAUTO_THROTTLING来防止批量请求。

要求

  1. Python3.5+

安装

pip install scrapy-tw-rental-house

基本用法

此包当前支持591。每家出租屋的网站都是一个小蜘蛛班。您可以使用默认设置(需要几天)对整个网站进行爬网,也可以根据需要自定义行为。

最基本的用法是创建继承rental591spider:

fromscrapy_twrh.spiders.rental591importRental591SpiderclassMyAwesomeSpider(Rental591Spider):name='awesome'

然后开始爬行

scrapy crawl awesome

有关详细用法,请参见example

项目

所有蜘蛛都会填充2种类型的碎片项:GenericHouseItemRawHouseItem

GenericHouseItem包含规范化的数据字段,来自不同网站的spirders将对其数据进行解码,并尽最大努力适应此模式。

RawHouseItem包含未格式化的数据字段,该字段尽最大努力保留原始数据和结构化数据。

注意,这两个项都是模式的超级集。IT开发人员负责在接收项目时检查提供的字段。 例如,在Rental591Spider中,对于单个出租屋,scrapy将获得:

  1. 1xRawHouseItem+1xGenericHouseItem在列出所有房屋时,它们只为GenericHouseItem提供最小数据字段
  2. 在检索房屋详细信息时为1xRawHouseItem+2xGenericHouseItem。第二个GenericHouseItem只包含位置信息。

处理程序

此包中的所有蜘蛛都提供以下处理程序:

  1. start_list,与scrapy中的start_requests类似,控制爬虫如何发出搜索/列表请求以查找所有出租房屋。
  2. parse_list,与scrapy中的parse类似,控制爬网程序如何处理来自start_list的响应,并生成对详细信息页的请求。
  3. parse_detail,控制爬网程序如何分析详细信息页。

所有蜘蛛都实现自己的默认处理程序,例如,default_start_listdefault_parse_list,和default_parse_detail,并且可以在__init__期间被覆盖。请参阅example了解如何使用处理程序控制蜘蛛行为。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
存储\在java字符串变量中(特殊字符)   安卓 java。lang.ClassCastException。如何删除?   JScrollPane中JTextArea上的java滚动条不起作用   java解析字符串到日期对象更改值   加载多个资源log4j的java问题。性质   java实例化类<?>变量   java Liferay,如何获取根记录器?   java如何在Android中使用多个带有Tab片段的按钮?   是否有支持条件格式的Java轻量级模板解决方案?   java拖放ListView行   java在方法之前插入return会导致VerifyError而不显示消息   通过在JAVA中传递组名从Active Directory获取电子邮件地址   java Eclipse对自定义facelets标记的支持   通过拖动鼠标滚动JScrollPane(Java swing)   使用自定义包结构(Maven)的java访问资源文件夹   java如何初始化spring jar和starter文件?   enums Java:具有@Enumerated(字符串),但仍然获得ClassCastException   java我可以使用注释在注释后调用方法吗?   java为什么程序不能传递这些断言?