爬虫(二手房数据)

先导入requests模块以及bs4模块。

导入bs4模块(在安装插件的时候最好还是安装beautifulsoup4的插件,只有这个是官方的,要不其他民间的可能有病毒。)

import requests
import bs4
from bs4 import BeautifulSoup

先写个变量存放爬取对象(习惯用URL),这里用格式化字符串的方法批量获取100页的数据的网址

for a in range(1,101):URL = f'https://cd.lia**njia.com/ershoufang/pg{a}/'

由于有些网站有反爬机制,这里把爬虫伪装成浏览器。User-Agent以及后面的数据在你需要爬取的网站中右键检查,然后点网络(Network),点击All,点击刷新或者f5刷新出数据,随便单击一个在右边的Headers里面的最下面有User-Agent:右键复制值(value)

Header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}

请求地址获取响应结果,如果获取的状态码是200,表示可以继续:

resp = requests.get(url=URL, headers=Header)
if resp.status_code == 200:

将网页源代码转换成bs4数据类型:

soup1 = BeautifulSoup(resp.text, 'html.parser')

所需要的网页数据,右键查看目标具体路径,然后批量爬取,装到一个列表里面,元素还是bs4数据类型

li_list = soup1.select('body>div.content>div.leftContent>ul>li')

对li_list进行遍历(这里的attrs是获取标签的属性(href属性))得到每一个房源的网址:

for i in li_list:house_href = i.select_one('li>a').attrs['href']print(house_href)

还可以请求更深层次的房屋详情页链接(使用之前爬到的每一个房源的网址)先获取房源名字(.text是获取标签的内容):

house_resp = requests.get(url=house_href, headers=Header)
soup2 = BeautifulSoup(house_resp.text, 'html.parser')
house_name = soup2.select_one('div.communityName>a').text
print(house_name)

获取房源地理位置:

areaName = soup2.select_one('div.areaName>span.info').text
print(areaName)

获取房源补充信息(对没有补充信息的填入"暂无数据"做处理):

supplement = soup2.select_one('div.areaName>a').text
supplement_1 = '暂无数据' if supplement == '' else supplement
print(supplement_1)

获取每一个房源的单价及总价:

unitPrice = soup2.select_one('span.unitPriceValue').text
print(unitPrice)
toltalPrice = soup2.select_one('div.price>span').text
print(f'{toltalPrice}万')

获取基本信息(也是放到列表中,元素类型是bs4数据类型)

baseInfo = soup2.select('div.introContent>.base li')

处理结果:

baseInfo_list = [i.text for i in baseInfo]
print(baseInfo_list)

获取交易属性:

changeInfo = soup2.select('div.transaction li>span')
changeInfo_list = [i.text.strip() for i in changeInfo]
print(changeInfo_list)

总代码:

import requests
import bs4
from bs4 import BeautifulSoup
import time
import random
from tqdm import tqdmfor a in range(1,101):URL = f'https://cd.lian**jia.com/ershoufang/pg{a}/'# 伪装爬虫Header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}# 请求地址获取响应结果resp = requests.get(url=URL, headers=Header)if resp.status_code == 200:# print(resp.text)# 将网页源代码转换为bs4数据类型soup1 = BeautifulSoup(resp.text, 'html.parser')li_list = soup1.select('body>div.content>div.leftContent>ul>li')# print(len(li_list))for i in li_list:house_href = i.select_one('li>a').attrs['href']print(house_href)# 请求更深层次的房屋详情页链接house_resp = requests.get(url=house_href, headers=Header)# print(house_resp.text)soup2 = BeautifulSoup(house_resp.text, 'html.parser')house_name = soup2.select_one('div.communityName>a').textprint(house_name)# 位置areaName = soup2.select_one('div.areaName>span.info').textprint(areaName)# 补充supplement = soup2.select_one('div.areaName>a').textsupplement_1 = '暂无数据' if supplement == '' else supplementprint(supplement_1)# 单价# BeautifulSoup4使用text是将一层表签下的所有内容取出来unitPrice = soup2.select_one('span.unitPriceValue').textprint(unitPrice)toltalPrice = soup2.select_one('div.price>span').textprint(f'{toltalPrice}万')# 基本属性baseInfo = soup2.select('div.introContent>.base li')# print(baseInfo)# 交易属性changeInfo = soup2.select('div.transaction li>span')# print(changeInfo)# baseInfo_list 是处理后的结果baseInfo_list = [i.text for i in baseInfo]print(baseInfo_list)# strip是将字符串内容前后的空白删去changeInfo_list = [i.text.strip() for i in changeInfo]print(changeInfo_list)# sleep休眠--以秒为单位# unidorm是在一定范围内随机取一个小数位数为7位的浮点数# time.sleep(random.uniform(1,3))# 单行写入\多行写入# 将数据写入文件:文件中数据越多,写入数据速度越慢else:print(resp.status_code)

执行本代码最好用代理IP,要不可能有封IP的风险

day15爬虫(二手房数据)相关推荐

  1. python xpath循环_Python爬虫 爬取北京二手房数据

    点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...

  2. Python爬虫 —3000+条北京二手房数据可视化分析

    关注公众号:[小张Python],为你准备了 50+ 本Python 精品电子书籍 与 50G + 优质视频学习资料,后台回复关键字:1024 即可获取:如果对博文内容有什么疑问,公众号后台添加作者[ ...

  3. python二手房使用教程_Python爬虫入门教程03:二手房数据爬取

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境Python 3.6 Pycharm 相关模块的使用requests parse ...

  4. PythonR爬取分析赶集网北京二手房数据(附详细代码)

    本文转载自数据森麟(ID:shujusenlin) 作者介绍:徐涛,19年应届毕业生,专注于珊瑚礁研究,喜欢用R各种清洗数据. 知乎:parkson 如何挑战百万年薪的人工智能! https://ed ...

  5. Python 爬取北京二手房数据,分析北漂族买得起房吗?(附完整源码)

    来源:CSDN 本文约3500字,建议阅读9分钟. 本文根据Python爬取了赶集网北京二手房数据,R对爬取的二手房房价做线性回归分析,适合刚刚接触Python&R的同学们学习参考. 房价高是 ...

  6. gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现

    作者:J哥 背景 香港的贫富差距问题一直十分尖锐,最突出的体现就是收入和楼价的巨大差异.早在60年代末香港房价就经历了暴涨,人们早已对不动产的金融属性了如指掌,全港的投资情绪一直都相当火热. 即便香港 ...

  7. python二手房价格预测_分析香港2万6千套在售二手房数据,1000万的居然有那么多...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜J学Python ,作者J哥 前言 香港的贫富差距问题一直十分尖锐 ...

  8. 武汉二手房市场现在怎样了?涨了还是跌了?分析下武汉二手房数据

    一.背景与挖掘目标 经常听到这么一句话"坐拥百万大学生,武汉却留不住人.",在人才竞争的大背景下,武汉出台了一系列包括"人才租房.购房8折优惠"等政策.&quo ...

  9. Python爬取中原地产香港26281套在售二手房数据并分析

    背景 香港的贫富差距问题一直十分尖锐,最突出的体现就是收入和楼价的巨大差异.早在60年代末香港房价就经历了暴涨,人们早已对不动产的金融属性了如指掌,全港的投资情绪一直都相当火热.即便香港当前失业率高企 ...

  10. Python分析香港26281套在售二手房数据

    公众号后台回复"图书",了解更多号主新书内容 作者:J哥 来源:菜J学Python 背景 香港的贫富差距问题一直十分尖锐,最突出的体现就是收入和楼价的巨大差异.早在60年代末香港房 ...

最新文章

  1. Java面试题:线程实现的两种方式及匿名内部类实现
  2. 子集和问题 算法_LeetCode 90 | 经典递归问题,求出所有不重复的子集II
  3. 电商素材网站解救节日美工忙,赶紧收藏
  4. git学习 add - commit - init
  5. 未处理sqlexception中value_类 java.sql.SQLException 的使用 (Java Platform SE 6)
  6. python 拍照搜题_大学慕课2020用Python玩转数据答案搜题公众号
  7. db4o java教程_Db4o 社区版 8.1.1 发布,面向对象数据库
  8. Pandownload百度网盘不限速下载器PC版|Android版
  9. 机器学习(1)-项目 0: 预测泰坦尼克号乘客生还率
  10. nginx 全局变量 以及配置
  11. 计算基因上外显子碱基覆盖度(exon coverage depth):Samtool工具使用
  12. linux 字幕制作工具,Aegisub下载、安装和使用:Ubuntu字幕编辑软件
  13. 《聪明人和傻子和奴才》鲁迅
  14. 网易云瀚海一体机,云计算“全栈”航母带来了什么?
  15. 网站应用开发Web App Development:如何让前端与后端快速地跑起来
  16. equest和requestScope的区别
  17. css中的label标签
  18. 线性代数学习笔记——克拉默法则及矩阵的秩——3. 矩阵秩的基本结论与性质
  19. (二)证明数列{(1+1/n)^(n+1)}为递减数列,{(1+1/n)^(n)}为递增数列
  20. ANN人工神经网络(Artificial Neuron Network )

热门文章

  1. ASP.NET学习笔记(二)——一般处理程序之图片上传
  2. 三维点云处理(5)——Clustering
  3. SENT:Sentence-level Distant Relation Extraction via Negtive Training-ACL2021
  4. CAD导入图片怎么操作?简单几步就导入
  5. 全国省市json文件
  6. 风寒感冒和风热感冒的药膳方
  7. Django对接微信公众号以实现消息自动回复
  8. android 监听飞行模式,如何在Android上检测飞行模式?
  9. 能量换算,方便减肥控制饮食
  10. 从微盟员工删库跑路看程序员的职业素养。