找到element后如何取值_如何爬取airbnb深圳房源信息

1910e0b14d52c2d7a357767541d144c2.png

鸽了快2个月,先弄道小菜开胃吧。

接下去的几篇文章基本都会围绕爬虫或SQL展开,公众号SVG的研究会暂时搁置一段时间,热点扯淡节目随缘吧,最近信息有点过载,热点看得不多。

说回正题,如何爬取Airbnb的房源信息。

b0c52476690c77ec08b503b7fc49a213.png

首先我们选取深圳作为范例,可以看到它的网址都是有规律的,由3部分组成。第一部分是"https://www.airbnb.cn/s/深圳/homes?refinement_paths%5B%5D=%2Fhomes&query=深圳&map_toggle=false&s_tag=ezRV-goM&section_offset=6&items_offset=";

第二部分是根据页面的不同而变化,相当于偏移量,第一页是0,第二页是18,第三页是36,依此类推;

“&s_tag=Z8CdDtog&place_id=ChIJkVLh0Aj0AzQRyYCStw1V7v0”是第三部分。所以我们在爬取的时候,只要改变第二部分的数字就可以实现多页面的爬取。

4a0c68a85ca30ba428d7d6f990632e1a.png

接着,通过审查元素,看出每个房源信息都分类在类为“_14csrlku”的div中。继续展开可以看到标题在“div._qhtkbey”,评论数在“div._1245p0s2”,价格在“span._1dfubau0>span:last-child”,房屋类型在“div._v72lrv>a>div>div>div”。那就可以先通过“driver.find_elements_by_css_selector”找到页面的房源元素集,再利用for循环分离各项信息。

具体代码如下:

from selenium import webdriver
import time
fp=webdriver.FirefoxProfile()
#不显示图片,加快网页加载速度
fp.set_preference('permissions.default.image',2)
#记得先下载geckodriver.exe,放到anaconda的Scripts文件夹下
driver=webdriver.Firefox(firefox_profile=fp,executable_path=r'E:PythonanacondaScriptsgeckodriver.exe')
total_list=[]
#爬取17个页面
for i in range(0,17):
    time.sleep(5)
    link1='https://www.airbnb.cn/s/深圳/homes?refinement_paths%5B%5D=%2Fhomes&map_toggle=false&s_tag=ivYrxYTH&section_offset=6&items_offset='
    link2='&place_id=ChIJkVLh0Aj0AzQRyYCStw1V7v0'
    url=link1+str(i*18)+link2
    driver.get(url)
        
    info=driver.find_elements_by_css_selector('div._14csrlku')
    for eachinfo in info:
        #标题#
        name=eachinfo.find_element_by_css_selector('div._qhtkbey')
        #评论数
        comment=eachinfo.find_element_by_css_selector('div._1245p0s2')
        #价格
        price=eachinfo.find_element_by_css_selector('span._1dfubau0>span:last-child')
        #房屋类型
        type1=eachinfo.find_element_by_css_selector('div._v72lrv>a>div>div>div')
        #集合列表
        total_list.append([name.text,comment.text,price.text[4:],type1.text])

print(total_list)
driver.quit()
print('--------------------')
print('已采集完成')

既然都爬下来了,我们就简单做个分析。

95a5727b24de964922c29c2b5d1c297f.png

可以看到,短租区域基本分布在福田、罗湖、南山、龙华等交通枢纽较多的地区。或者更准确的说是活动、游玩景点更多更为繁华的地区。为什么这么说,让我们接着看下去。

d5d00bab86075cb3903b85c1eae663d0.png

从标题中提取出来各个地标出现的次数,会展中心、各个口岸、老街等景点出现的次数均在20次以上,这些地方都有同样的特点,就是人流量大。游客多,想必短租的需求也是挺旺盛的。

d14ac9b9b5b299cf1f5f7835914c0dcb.png

再从房间的供应量来看,单间的供应有257,占比95.53%。这个目前还看不出啥,需要对比正常租房的比例来看。

774fda0cbbe43ea68543302ec35688e5.png

还有一个比较奇怪的,就是卫生间为啥有0.5的小数位,难道是房东和租客共用,还是什么神奇的建筑学行业共识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值