用requests库、bs4的BeautifulSoup库和pandas爬取房地产网页的房屋出售信息

tech2024-12-12  5

# -*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup import pandas as pd # 获取网页源码 def get_html(url): try: res=requests.get(url,timeout=30) # 发送url请求,并将请求到的结果赋值给res res.encoding='gb2312' # 同一改成 GB2312 编码 return res.text except: return '' def parse_html(html): # 将爬取到的网页传给beautifulsoup,用html引擎解析器解析 soup=BeautifulSoup(html,'html.parser') # 查找所有tr标签里属性的键是bgcolor值是#FFFFFF的标签,以列表的形式赋值给变量 tr_list=soup.find_all('tr',attrs={'bgcolor':'#FFFFFF'}) # 保存所有房屋信息 houses=[] for tr in tr_list: house={} # 详细地址 house['详细地址']=tr.find_all('a',attrs={'target':'_blank'})[0].string # 详情链接 house['详情链接']='http://www.lgfdcw.com/cs/'+tr.find_all('a',attrs={'target':'_blank'})[0].attrs['href'] # 房型 house['房型']=tr.find_all('td')[2].string # 户型 house['户型']=tr.find_all('td')[3].string # 面积 house['面积']=tr.find_all('td')[4].string[:-2]+'平方米' # 出售价格 house['出售价格']=tr.find_all('td')[5].string.strip() # 登记时间 house['登记时间']=tr.find_all('td')[6].string houses.append(house) return houses def save_file(dic): # columns设置索引列,如果不设置,会从0开始 df=pd.DataFrame(dic,columns=['详细地址','详情链接','房型','户型','面积','出售价格','登记时间']) df.to_excel(r'D:\schpythonfiles\houses.xlsx') # 将爬取到的数据用excel保存 def main(): # 抓取网页数据 html =get_html('http://www.lgfdcw.com/cs/') # 解析网页内容 res=parse_html(html) # 保存到本地 save_file(res) main()

 

最新回复(0)