Python爬虫获取房天下房价数据上,爬虫实战—爬取房天下全国所有的楼盘并入库(附源码)

在这里插入图片描述

5.获取新房的楼盘名和价格

通过上面呢,已经找到了全国每个市的新房链接,接下来,通过这个新房的链接,进入该页面,然后解析页面,获取楼盘名和价格

先以北京为例:爬取第一页

def parseSecond(self,response):

fang = response.meta['fang']

#xpath解析的代码#//div[@id="newhouse_loupai_list"]//div[@class="nlcd_name"]/a/text()#//div[@id="newhouse_loupai_list"]//div[@class="nhouse_price"]/span/text()

div_list = response.xpath('//div[@id="newhouse_loupai_list"]//div[@class="nlc_details"]')

for div in div_list:name = div.xpath('.//div[@class="nlcd_name"]/a/text()').extract_first().strip('tn')# .xpath('string(.)')意思是将标签中子标签的文本进行拼接# 他的调用者是seletor列表price = price.xpath('string(.)').extract_first().strip('tn').strip('广告').strip('tn')

6.多页下载北京的首页:https://newhouse.fang.com/house/s/北京的第二页:https://newhouse.fang.com/house/s/b92/北京的尾页:https://newhouse.fang.com/house/s/b932/

接下来爬取所有的网页,页码的规律就为:“b9”+当前页码数,第一页特殊

我们爬取的元素有四个:provincecity name price

在parse中,爬取:province city

在parceSecond中,爬取:name price

获取尾页数:

​1.检查源码,解析,

​2.注意有坑,当在中间的某一页时,会有两个class=”last”标签,获取到的值为“首页”和“尾页”

# 尾页的href的值last() 就是xpath中获取最后一个数据的方法# href = response.xpath('//a[@class="last"][last()]/@href').extract_first()

​3.获取到最后的页码时: /house/s/b932/

​4.使用正则表达式提取页码32:

reg = '/b9(d+)/' # /house/s/b932/pattern = re.compile(reg)

当尾页获取到后:

​1.在遍历之前,需要对页码数进行处理,第一次访问新房的页面时是第一页,URL是

:https://newhouse.fang.com/house/s/,第二页之后是:https://newhouse.fang.com/house/s/b92/,当前页就为“b9”后面的数,下次访问就是第三页,为“b93”,所以为当前页+1,

​2.遍历页码,拼接url,

url1 = response.meta['url']

for i in range(page,int(num)+1):

 2/3   首页 上一页 1 2 3 下一页 尾页

上海迪士尼五彩棒棒糖 火车站去上海迪士尼 上海闵行区离迪士尼有多远 上海迪士尼2021年8月 上海迪士尼被水淹 关于上海迪士尼定价 上海迪士尼不能带东西 上海迪士尼两日票能多次进出么 上海迪士尼年游客 上海迪士尼热牛奶 武汉沌口名致服务公寓 携程 携程上买的火车票可以改签 怎样退携程的门票 《携程走中国》 携程旅游怎么订门票 携程虐童事件刑事侦查 携程订票为何不支持网盾付款 上海携程亲子园虐童案通报 12306网上订飞机携程 携程app可以办值机吗