day15爬虫(二手房数据)
爬虫(二手房数据)
先导入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爬虫(二手房数据)相关推荐
- python xpath循环_Python爬虫 爬取北京二手房数据
点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...
- Python爬虫 —3000+条北京二手房数据可视化分析
关注公众号:[小张Python],为你准备了 50+ 本Python 精品电子书籍 与 50G + 优质视频学习资料,后台回复关键字:1024 即可获取:如果对博文内容有什么疑问,公众号后台添加作者[ ...
- python二手房使用教程_Python爬虫入门教程03:二手房数据爬取
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境Python 3.6 Pycharm 相关模块的使用requests parse ...
- PythonR爬取分析赶集网北京二手房数据(附详细代码)
本文转载自数据森麟(ID:shujusenlin) 作者介绍:徐涛,19年应届毕业生,专注于珊瑚礁研究,喜欢用R各种清洗数据. 知乎:parkson 如何挑战百万年薪的人工智能! https://ed ...
- Python 爬取北京二手房数据,分析北漂族买得起房吗?(附完整源码)
来源:CSDN 本文约3500字,建议阅读9分钟. 本文根据Python爬取了赶集网北京二手房数据,R对爬取的二手房房价做线性回归分析,适合刚刚接触Python&R的同学们学习参考. 房价高是 ...
- gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现
作者:J哥 背景 香港的贫富差距问题一直十分尖锐,最突出的体现就是收入和楼价的巨大差异.早在60年代末香港房价就经历了暴涨,人们早已对不动产的金融属性了如指掌,全港的投资情绪一直都相当火热. 即便香港 ...
- python二手房价格预测_分析香港2万6千套在售二手房数据,1000万的居然有那么多...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜J学Python ,作者J哥 前言 香港的贫富差距问题一直十分尖锐 ...
- 武汉二手房市场现在怎样了?涨了还是跌了?分析下武汉二手房数据
一.背景与挖掘目标 经常听到这么一句话"坐拥百万大学生,武汉却留不住人.",在人才竞争的大背景下,武汉出台了一系列包括"人才租房.购房8折优惠"等政策.&quo ...
- Python爬取中原地产香港26281套在售二手房数据并分析
背景 香港的贫富差距问题一直十分尖锐,最突出的体现就是收入和楼价的巨大差异.早在60年代末香港房价就经历了暴涨,人们早已对不动产的金融属性了如指掌,全港的投资情绪一直都相当火热.即便香港当前失业率高企 ...
- Python分析香港26281套在售二手房数据
公众号后台回复"图书",了解更多号主新书内容 作者:J哥 来源:菜J学Python 背景 香港的贫富差距问题一直十分尖锐,最突出的体现就是收入和楼价的巨大差异.早在60年代末香港房 ...
最新文章
- Java面试题:线程实现的两种方式及匿名内部类实现
- 子集和问题 算法_LeetCode 90 | 经典递归问题,求出所有不重复的子集II
- 电商素材网站解救节日美工忙,赶紧收藏
- git学习 add - commit - init
- 未处理sqlexception中value_类 java.sql.SQLException 的使用 (Java Platform SE 6)
- python 拍照搜题_大学慕课2020用Python玩转数据答案搜题公众号
- db4o java教程_Db4o 社区版 8.1.1 发布,面向对象数据库
- Pandownload百度网盘不限速下载器PC版|Android版
- 机器学习(1)-项目 0: 预测泰坦尼克号乘客生还率
- nginx 全局变量 以及配置
- 计算基因上外显子碱基覆盖度(exon coverage depth):Samtool工具使用
- linux 字幕制作工具,Aegisub下载、安装和使用:Ubuntu字幕编辑软件
- 《聪明人和傻子和奴才》鲁迅
- 网易云瀚海一体机,云计算“全栈”航母带来了什么?
- 网站应用开发Web App Development:如何让前端与后端快速地跑起来
- equest和requestScope的区别
- css中的label标签
- 线性代数学习笔记——克拉默法则及矩阵的秩——3. 矩阵秩的基本结论与性质
- (二)证明数列{(1+1/n)^(n+1)}为递减数列,{(1+1/n)^(n)}为递增数列
- ANN人工神经网络(Artificial Neuron Network )