当前位置: 首页 > news >正文

Python实例题:Python获取房天下数据

目录

Python实例题

题目

实现思路

代码实现

代码解释

get_fangtianxia_data 函数:

主程序:

运行思路

注意事项

Python实例题

题目

Python获取房天下数据

实现思路

  • 请求网页:使用 requests 库向房天下二手房页面发送请求,获取页面 HTML 内容。
  • 解析数据:运用 BeautifulSoup 库解析 HTML,提取所需的二手房信息,如房屋标题、价格、面积等。
  • 处理反爬:设置合适的请求头,模拟浏览器行为,控制请求频率,避免被网站封禁 IP。

代码实现

import requests
from bs4 import BeautifulSoup
import timedef get_fangtianxia_data(url):"""获取房天下指定页面的二手房数据:param url: 房天下二手房页面的 URL:return: 二手房信息列表"""headers = {'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}try:response = requests.get(url, headers=headers)response.raise_for_status()response.encoding = response.apparent_encodingsoup = BeautifulSoup(response.text, 'html.parser')house_list = []# 查找二手房信息的 HTML 元素,这里根据实际网页结构调整house_items = soup.find_all('div', class_='list - rel')for house_item in house_items:try:title = house_item.find('a', class_='title').text.strip()price = house_item.find('span', class_='price').text.strip()area = house_item.find('p', class_='area').text.strip()house_info = {'title': title,'price': price,'area': area}house_list.append(house_info)except AttributeError:continuereturn house_listexcept requests.RequestException as e:print(f"请求出错: {e}")return []if __name__ == "__main__":base_url = 'https://esf.fang.com/house/i3'total_pages = 3  # 要获取的总页数all_houses = []for page in range(1, total_pages + 1):url = f'{base_url}{page}/'houses = get_fangtianxia_data(url)all_houses.extend(houses)print(f"第 {page} 页获取到 {len(houses)} 条二手房信息。")time.sleep(2)  # 控制请求频率,避免被封禁 IP# 打印所有二手房信息for house in all_houses:print(house)

代码解释

  • 请求头设置:设置 User - Agent 请求头,模拟浏览器的请求行为,降低被反爬机制拦截的概率。
  • get_fangtianxia_data 函数

    • 向指定的房天下二手房页面发送 HTTP 请求。
    • 使用 BeautifulSoup 解析 HTML 内容,查找二手房信息的 HTML 元素。
    • 提取房屋标题、价格、面积等信息,存储在字典中并添加到列表里。
    • 处理请求异常,确保程序的健壮性。
  • 主程序

    • 定义基础 URL 和要获取的总页数。
    • 循环构造不同页码的 URL,调用 get_fangtianxia_data 函数获取每一页的二手房信息。
    • 使用 time.sleep(2) 控制请求频率,防止因频繁请求被网站封禁 IP。
    • 打印所有获取到的二手房信息。

运行思路

  • 安装依赖库:确保已经安装了 requests 和 beautifulsoup4 库,可使用以下命令进行安装:
pip install requests beautifulsoup4
  • 运行脚本:将上述代码保存为 get_fangtianxia_data.py 文件,在终端中运行:
python get_fangtianxia_data.py
  • 查看结果:程序会依次获取指定页数的二手房信息,并打印出来。

注意事项

  • 反爬机制:房天下有反爬机制,除设置请求头和控制请求频率外,可能还需处理验证码、IP 封禁等问题。
  • 网页结构变化:房天下的网页结构可能会随时变动,需要根据实际情况调整 HTML 元素的查找方式。
  • 合法性:在爬取数据时,要遵守网站的 robots.txt 规则,确保数据获取行为合法。

相关文章:

  • 【算法基础】快速排序算法 - JAVA
  • 2025年斯诺克世锦赛——“75三杰”在1/4决赛作为对手的概率
  • 论面向方面编程及其应用
  • VITA STANDARDS LIST,VITA 标准清单下载
  • AVFormatContext 再分析二
  • 【Mytais系列】Myatis的设计模式
  • 基于51单片机小型风扇设计—红外遥控
  • MySQL基础关键_006_DQL(五)
  • Vue3学习笔记2——路由守卫
  • 如何用CSS实现HTML元素的旋转效果:从基础到高阶应用
  • c++26新功能——gcc15.1的支持
  • Java大师成长计划之第11天:Java Memory Model与Volatile关键字
  • NVMe控制器之完成信息解析模块
  • 单片机嵌入式字符流数据解析库
  • c++ 二级指针 vs 指针引用
  • AI生成视频检测方法及其相关研究
  • 【电路笔记】-自耦变压器
  • java学习之数据结构:三、八大排序
  • 生成式 AI 的重要性
  • 在MySQL中建索引时需要注意哪些事项?
  • 抚州一原副县长拉拢公职人员组建“吃喝圈”,长期接受打牌掼蛋等“保姆式”服务
  • 中国驻美大使谢锋:经贸关系不是零和游戏,滥施关税损人害己
  • 这 3 种食物,不要放进微波炉!第 1 个就大意了
  • 多地晒五一假期前两日成绩单,湖南单日客流同比增长逾三成
  • 阿根廷发生5.6级地震,震源深度30公里
  • 新能源车盈利拐点:8家上市车企去年合计净利854亿元,多家扭亏