Python实例题:Python法拍网数据
目录
Python实例题
题目
python-get-foreclosure-dataPython 获取法拍网数据脚本
代码解释
get_foreclosure_data 函数:
主程序:
运行思路
注意事项
Python实例题
题目
Python法拍网数据
python-get-foreclosure-dataPython 获取法拍网数据脚本
import requests
from bs4 import BeautifulSoup
import timedef get_foreclosure_data(page_num):"""获取指定页码的法拍网数据:param page_num: 页码:return: 法拍房信息列表"""url = f"https://sf.taobao.com/house_list.htm?page={page_num}"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","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Language": "zh-CN,zh;q=0.9"}try:response = requests.get(url, headers=headers)response.raise_for_status()response.encoding = response.apparent_encodingsoup = BeautifulSoup(response.text, 'html.parser')foreclosure_list = []items = soup.find_all('div', class_='item J_MouserOnverReq')for item in items:try:title = item.find('div', class_='title').text.strip()price = item.find('span', class_='current-price').text.strip()info = {"title": title,"price": price}foreclosure_list.append(info)except AttributeError:continuereturn foreclosure_listexcept requests.RequestException as e:print(f"请求出错: {e}")return []if __name__ == "__main__":total_pages = 3 # 要获取的总页数all_data = []for page in range(1, total_pages + 1):data = get_foreclosure_data(page)all_data.extend(data)print(f"第 {page} 页获取到 {len(data)} 条法拍房信息。")time.sleep(2) # 控制请求频率,避免被封禁 IPfor info in all_data:print(f"标题: {info['title']}")print(f"价格: {info['price']}")print("-" * 30)
代码解释
-
get_foreclosure_data
函数:- 该函数接收一个页码作为参数,根据页码构造对应的法拍网页面 URL。
- 设置请求头,模拟浏览器的请求行为,降低被反爬机制拦截的风险。
- 使用
requests
库发送 HTTP 请求获取网页内容。 - 若请求成功,使用
BeautifulSoup
解析 HTML 内容,查找每个法拍房信息的 HTML 元素。 - 提取法拍房的标题和价格信息,存储在字典中,并添加到结果列表中。
- 若请求过程中出现异常,打印错误信息并返回空列表。
-
主程序:
- 设定要获取的总页数。
- 循环调用
get_foreclosure_data
函数,逐页获取法拍房信息。 - 使用
time.sleep(2)
控制请求频率,避免因频繁请求被网站封禁 IP。 - 打印所有获取到的法拍房信息。
运行思路
- 安装依赖库:确保已经安装了
requests
和beautifulsoup4
库,可使用以下命令进行安装:
pip install requests beautifulsoup4
- 运行脚本:将上述代码保存为
get_foreclosure_data.py
文件,在终端中运行:
python get_foreclosure_data.py
- 查看结果:程序会依次获取指定页数的法拍房信息,并打印出来。
注意事项
- 反爬机制:法拍网有反爬机制,除了设置请求头和控制请求频率外,可能还需要处理验证码、IP 封禁等问题。
- 网页结构变化:法拍网的网页结构可能会随时变动,需要根据实际情况调整 HTML 元素的查找方式。
- 合法性:在爬取数据时,要遵守网站的
robots.txt
规则,确保数据获取行为合法。