2021年9月1日起,《契税法》将正式实施,契税缴纳比例将从1%-1.5%调整为3%-5%,卖房人和买房人都想乘着这之前处理自己的房子或者买上自己心仪的房子,但是海量信息,想纯粹的筛选基本上不可能,不是信息不够,就是信息太多,不仅不能精确搜索,还常常搜索出来一大堆广告、好多不想要的房子。
要是有一份Excel表格的房屋实时数据,那就太好了,简单易懂好筛选,省心省力笔者也是在这样的信息海洋里快被吞没的人,所以与其被它吞没,不如让它变成我们想要的样子设计首先选择和本地实际二手房信息最贴近,每天都在更新的站点。
设计自己想要得到的信息,并找到网站展示这些房产信息的规律(各种信息在网页中摆放位置)设计程序,自动扒取网页,并将得到的信息导入到一张Excel表格中实现经过筛选最后确定为58同城与安居客两个平台,两个平台每天都有最新的3000条二手房信息,基本覆盖本地所有小区,两者数据基本相同,在本次选择58同城作为操作目标。
想要获取的信息为:标题、房屋详情链接、面积、户型、楼层、修建年、总价格、每平方价格、小区名称、地址正好,58同城二手房信息中都有,锁定第一页,并找出每套房产详细信息所在位置的特征要扒取网页信息,通用编程语言都可以搞定,但是此处只是扒取一个网站的3000条数据,数据量不大,可以使用。
python进行处理,这样开发效率有保障,扒取也不会太慢。python有众多可以扒取网页的库,今天就用其中一款名叫scrapy[1]的库。
安装scrapypip install scrapy 新建scrapy项目#选择项目目录,然后运行如下命令 scrapy startproject secondhandHouseInfo 在项目中新建58同城
进入spider目录,编辑58.py,设置类属性,并用xpath方式抓取页面信息#类属性中,修改如下代码 ails: dic={} dic[“title”]=item_detail.xpath(.//h3/text()).get().strip() dic[“house_link”]=item_detail.xpath(.//a/@href).get().strip() dic[“roomNum”]=dr.sub(,item_detail.xpath(.//p[@class=”property-content-info-text property-content-info-attribute”]).get()).strip() … dic[“address”]=item_detail.xpath(.//p[@class=”property-content-info-comm-address”]/span[3]/text()).get().strip() yield dic #此处用xpath定位下一页的链接 next_page = response.xpath(//div[@class=”pagination”]/a[2]/@href).get() #如果下一页不为空,则继续进入扒取 if next_p
现在修改piplines.py,做趴完网站导出工作#新建一个空的DataFrame对象 def __init__(self): self.df = pd.DataFrame() self.today=datetime.date.today().strftime(%Y%m%d) #将抓取到的每一个数据循环写入创建的DataFrame对象,最后将对象导出为Excel def process_item(self, item, spider): #print(item) self.df=self.df.append(item,ignore_index=True) self.df.to_excel(spider.name+”_”+self.today+”.xls”) return item
至此结束,编码结束,核心代码50行左右。运行爬虫启动程序,搞定58同城二手房全量数据scrapy crawl 58
扒取完毕,截取Excel部分数据如下: