标签:tps 详细 获取 函数 结果 com 柱形图 解析 网页数据
这次爬虫主要是爬取58同城泉州区域的房屋交易价格和房屋信息。
实现思路:获取58同城目标的HTML页面,使用requests爬取数据,BeautifulSoup解析页面,使用records进行数据存储、读取,最后打印出来数据
技术难点:爬取数据,遍历标签属性。存储数据表格信息

用鼠标右键点击查看“查看元素”选项或者按“F12”
查找:select函数

遍历:for循环嵌套





import requests
from bs4 import BeautifulSoup
import records
def getHtml(url):
‘‘‘
获取目标网页数据
‘‘‘
try:
# 伪装UA
ua = {‘user-agent‘: ‘Mozilla/5.0 Chrome/79.0.3945.88 Safari/537.36‘}
# 读取网页
r = requests.get(url, headers=ua)
# 获取状态
r.raise_for_status()
# 打印数据 print(r.text)
# 返回数据
return r.text
except:
return "Fail"
def parseHtml(html):
‘‘‘
房屋数据收集
‘‘‘
# 数据数组
data = []
# 结构解析
soup = BeautifulSoup(html, "html.parser")
# 获取具体房屋的链接
titles = soup.select(‘.title a‘)
print(titles)
# for循环解析链接
for i in titles:
# 解析href链接属性
a = i.get(‘href‘)
# 打印数据 print(a)
# 加入数组
data.append(a)
# 返回数组
return data
def parseInfo(html):
‘‘‘
房屋数据清洗
‘‘‘
# 创建字典
j = {}
# 结构解析
soup = BeautifulSoup(html, "html.parser")
# 获取房屋标题
titles = soup.select(‘.f20‘)[0].get_text()
# 获取房屋价格
price = soup.select(‘.house-basic-info .price‘)[0].get_text()
# 获取房屋户型
huxing = soup.select(‘.house-basic-info .room .main‘)[0].get_text()
# 获取房屋楼层
louceng = soup.select(‘.house-basic-info .room .sub‘)[0].get_text()
# 获取房屋面积
mianji = soup.select(‘.house-basic-info .area .main‘)[0].get_text()
# 获取房屋装修
maopi = soup.select(‘.house-basic-info .area .sub‘)[0].get_text()
# 获取联系电话
phone = soup.select(‘.phone-num‘)[0].get_text()
# 组合数据
sj = ‘标题:%s 价格:%s 户型:%s 楼层:%s 面积:%s 装修:%s 联系方式:%s ‘%(titles,price,huxing,louceng,mianji,maopi,phone)
# 打印数据
print(sj)
# 字典
j[‘标题‘] = titles
j[‘价格‘] = price
j[‘户型‘] = huxing
j[‘楼层‘] = louceng
j[‘面积‘] = mianji
j[‘装修‘] = maopi
j[‘联系‘] = phone
# 返回字典
return j
# 采集
urls = parseHtml(getHtml(‘https://qz.58.com/ershoufang/pn1/‘))
# 数组
data = []
# 循环
for i in urls:
# 房屋数据清洗
sj = parseInfo(getHtml(i))
# 打印数据 print(sj)
# 加入成员
data.append(sj)
# 数据保存
results = records.RecordCollection(iter(data))
with open(‘house.xlsx‘, ‘wb‘) as f:
# 写入
f.write(results.export(‘xlsx‘))
标签:tps 详细 获取 函数 结果 com 柱形图 解析 网页数据
原文地址:https://www.cnblogs.com/chenxinyuy/p/12076156.html