前言
本文分为三部分。第一部分为数据获取,主要介绍Scrapy爬取大连的二手房信息的成交记录。第二部分简单的介绍如何把现有的爬虫改写成分布式爬虫。第三部分为数据分析,主要介绍通过Python的一些库及Tableau对获取的数据的分析尝试预测下个季度的热点区域。如果还有机会的话,通过下个季度的真实数据验证自己的猜测。个人认为爬虫只是获取数据的一种手段,重点放在数据分析上,刚刚入手,很多知识也是摸索着来的,大家多多指教!
数据获取
通过Scrapy爬取二手房的成交信息,后来改成了分布式爬取,以下会进行详细介绍。
分析html
在想要爬取的网页按下F12打开开发者工具。在Elements Tab下,通过鼠标选择来查看自己想要爬取对应的tag。
注意,Elements下显示的html有时候可能和Response返回的html有出入
发现每个成交记录信息在ListContent下的li中,爬取li下a的href,可以得到对应的详情页面。
在详情页面我们找到了想要的信息,包括标题、成交日期、单价、实际成交金额、期望成交金额、成交周期等。
创建Item
根据我们想要的信息编写Item,如下:
class ShellItem(scrapy.Item):
Title = scrapy.Field()
DealDate = scrapy.Field()
UnitPrice = scrapy.Field()
ActualPrice = scrapy.Field()
ExpectPrice = scrapy.Field()
DealPeriod = scrapy.Field()
Orientation = scrapy.Field()
BuiltYear = scrapy.Field()
Duration = scrapy.Field()
Name = scrapy.Field()
Structure = scrapy.Field()
Area = scrapy.Field()
Longitude = scrapy.Field()
Latitude = scrapy.Field()
解析Response
我们爬取的逻辑是,先从第一页爬取每个成交记录的详情页地址,再进入对应的详情页地址把想要的信息爬取出来。当第一页爬取完后,继续爬取第二页,以此类推,直到所有页面都被爬取完成。
Item信息爬取
需要事先声明的是一开始我只爬取了每个根页面房源对应的基础信息
后来考虑到之后要改成分布式爬虫,这样不好做去重,所以信息统一从详情页面爬取。
代码如下:
def