链家租房数据爬虫
利用xpath和正则对链家网站北京市东城区、海淀区、丰台区的租房房源前50页数据进行爬取。数据包括链家网站链家网站北京市东城区、海淀区、丰台区的租房房源数据共4500条,包括房源信息标题、区域、地点、房屋名称、建筑面积、朝向、户型、价格、详情页链接等信息。
-
import requests
-
import json
-
from lxml import etree
-
import re
-
-
def get_info(zone):
-
for i in range(1, 51):
-
headers = {
-
"user-agent": "# 自己的user-agent"
-
}
-
-
url = 'https://bj.lianjia.com/zufang/' zone '/pg' str(i) '/#contentList'
-
url_total = 'https://bj.lianjia.com/zufang/' zone
-
# get or post 看请求Headers
-
html = requests.get(url, headers=headers)
-
html = html.text
-
soup = etree.HTML(html)
-
-
# 标题
-
title = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[1]/a//text()')
-
title_new = []
-
for i in title:
-
i = i.strip('\n') # 删除换行符
-
i = i.strip(' ') #删除空格
-
title_new.append(i)
-
# print(title_new)
-
-
# 所在区域(海淀、丰台、东城)
-
zones = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[2]/a[1]//text()')
-
-
# 地点
-
place = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[2]/a[2]//text()')
-
# print(place)
-
-
# 具体名称
-
name = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[2]/a[3]//text()')
-
# print(name)
-
-
# 面积
-
size = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[2]//text()[5]')
-
size_new = []
-
for i in size:
-
i = i.strip('\n') # 删除换行符,但是只能删除第一个换行符
-
i = i.replace('\n', '') # 利用replace将换行符替换
-
i = i.strip(' ')
-
size_new.append(i)
-
# print(size_new)
-
-
# 朝向
-
orientation = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[2]/text()[6]')
-
orientation_new = []
-
for i in orientation:
-
i = i.strip(' ')
-
orientation_new.append(i)
-
# print(orientation_new)
-
-
# 户型
-
type = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/p[2]/text()[7]')
-
type_new = []
-
for i in type:
-
i = i.strip('\n')
-
i = i.strip(' ')
-
type_new.append(i)
-
# print(type_new)
-
-
# 价格
-
price = soup.xpath('/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div/div/span/em//text()')
-
# print(price)
-
-
详情页链接
-
house_url = re.findall('<a class="twoline" target="_blank" href="https://blog.csdn.net/m0_69208651/article/details/(/zufang/.*?.html)">', html)
-
# print(house_url)
-
-
# 将爬取信息存入excel
-
for i in range(len(title)):
-
f = open('zufang.csv', 'a', encoding='utf8')
-
f.write('{},{},{},{},{},{},{},{},{}\n'.format(title_new[i], zones[i], place[i], name[i], size_new[i], orientation_new[i], type_new[i], price[i], url_total house_url[i]))
-
f.close()
-
-
if __name__ == '__main__':
-
f = open('zufang.csv', 'a', encoding='utf8')
-
f.write('title,zone,place,name,size,orientation,type,price,link\n') # 写入表头
-
f.close()
-
for zone in ('dongcheng', 'haidian', 'fengtai'):
-
get_info(zone)
这篇好文章是转载于:编程之路
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 编程之路
- 本文地址: /boutique/detail/tanhhacbff
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13