python爬取二手房信息,python爬取房源数据
前言中的文字和图片均来自互联网,仅供学习交流,无商业用途。如有问题,请及时联系我们进行处理。
Python爬虫入门新手教学(一):爬豆瓣电影排名信息。
Python爬虫入门教学(二):爬行小说
基础开发环境Python 3.6Pycharm相关模块使用requestsparselcsv安装Python并将其添加到环境变量中。pip可以安装所需的相关模块。
第一,明确需求
拿着攀登地图上盒子里的东西。
第二,请求网页打开开发者工具(F12或鼠标右键勾选),选择notework查看数据返回的内容。
开发者工具可以看到,网站是静态的网页数据,通过请求url地址可以直接获取数据内容。
URL= https://cs . lianjia . com/er shou Fang/
标题={
用户代理: Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/81 . 0 . 4044 . 138 Safari/537.36
}
response=requests.get(url=url,headers=headers)
Print(response.text)如果你不知道返回的数据中是否有你想要的内容,并且你已经复制了网页的内容,那么在pycharm的输出结果中搜索检查一下。
三。解析数据由于网站是静态的网页数据,所以可以直接查看数据在开发者工具元素中的位置。
如上图所示,所有相关的数据内容都包含在li标签中。通过parsel解析库,解析提取数据就够了。
选择器=parsel。选择器(响应.文本)
lis=selector.css(。sell list content Li’)
李斯对李说:
#标题
title=li.css(。标题a:text’)。获取()
#地址
positionInfo=li.css(。position info a:text’)。getall()
#社区
community=positionInfo[0]
#地名
address=positionInfo[1]
#房屋的基本信息
houseInfo=li.css(。house info:text’)。获取()
#房价
Price=li.css(。total price span:text’)。Get()万年
#单价
单价=li.css(。单价span:text’)。获取()。替换(单价,)
#发布信息
followInfo=li.css(。follow info:text’)。获取()
dit={
标题:标题,
社区,社区,
地名:地址,
房屋基本信息,房屋信息,
房价,价格,
单价,单价,
发布信息:followInfo,
}
当我运行它时,我发现我报告了一个错误。
IndexError:列表索引超出范围超出了索引范围。
有事不要慌。取0超出了指标范围,说明数据没有取,所以要看一下精装房.这条信息下面的一条是什么情况。
我发现这个中间插了个广告,也在李标签里,简单判断一下就好了。这是一个没有标题的广告。只是判断有没有标题。有就爬相关内容,没有就过。
李斯对李说:
#标题
title=li.css(。标题a:text’)。获取()
如果标题:
#地址
positionInfo=li.css(。position info a:text’)。getall()
#社区
community=positionInfo[0]
#地名
address=positionInfo[1]
#房屋的基本信息
houseInfo=li.css(。house info:text’)。获取()
#房价
Price=li.css(。total price span:text’)。Get()万年
#单价
单价=li.css(。单价span:text’)。获取()。替换(单价,)
#发布信息
followInfo=li.css(。follow info:text’)。获取()
dit={
标题:标题,
社区,社区,
地名:地址,
房屋基本信息,房屋信息,
房价,价格,
单价,单价,
发布信息:followInfo,
}
打印(dit)
这样就不会报错了。
第四,保存数据(数据持久化)和抓取豆瓣的电影信息是一样的。使用csv模块将数据保存到Excel中。
#创建文件
F=开放(二手房数据。 CSV ,模式= a ,编码= UTF-8 ,换行= )
Csv _ writer=csv.dictwriter (f,fieldnames=[title , community , place name , the house 基本信息,
房价,单价,发布信息])
#写入标题
csv_writer.writeheader()
Csv_writer.writerow(dit) V .第2页上的多页爬网# url地址
URL _ 2= https://cs . lianjia . com/er shou Fang/pg2/
#第3页url地址
URL _ 3= https://cs . lianjia . com/er shou Fang/pg3/
#第4页url地址
URL _ 4= https://cs . lianjia . com/er shou Fang/pg4/
通过以上内容,你只需要循环通过pg参数就可以抓取多个页面。
对于范围(1,101)中的页面:
URL=f 3359cs.lianjia.com/ershoufang/pg { page }/以便您可以抓取多个页面。
实现效果
原创作品来自爱吃饼干的博主松鼠,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。