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

Python实例题:Python抓取相亲网数据

目录

Python实例题

题目

python-crawl-dating-sitePython 抓取相亲网数据脚本

代码解释

请求头设置:

crawl_dating_site函数:

主程序:

运行思路

注意事项

Python实例题

题目

Python抓取相亲网数据

python-crawl-dating-sitePython 抓取相亲网数据脚本

import requests
from bs4 import BeautifulSoup
import timedef crawl_dating_site(url):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')profiles = []# 假设相亲信息在 class 为 'dating-profile' 的 div 中,实际需根据网页调整profile_divs = soup.find_all('div', class_='dating-profile')for profile_div in profile_divs:try:name = profile_div.find('span', class_='name').text.strip()age = profile_div.find('span', class_='age').text.strip()gender = profile_div.find('span', class_='gender').text.strip()profile = {'name': name,'age': age,'gender': gender}profiles.append(profile)except AttributeError:continuereturn profilesexcept requests.RequestException as e:print(f"请求出错: {e}")return []if __name__ == "__main__":base_url = 'https://example-dating-site.com/page'  # 替换为实际相亲网站 URLtotal_pages = 3  # 要抓取的总页数all_profiles = []for page in range(1, total_pages + 1):url = f'{base_url}{page}'profiles = crawl_dating_site(url)all_profiles.extend(profiles)print(f"第 {page} 页获取到 {len(profiles)} 条相亲信息。")time.sleep(2)  # 控制请求频率,避免被封禁 IPfor profile in all_profiles:print(f"姓名: {profile['name']}, 年龄: {profile['age']}, 性别: {profile['gender']}")

代码解释

  • 请求头设置

    • 设置User - Agent请求头,模拟浏览器的请求行为,降低被反爬机制拦截的可能性。
  • crawl_dating_site函数

    • 发送 HTTP 请求获取指定相亲网页的内容。
    • 使用BeautifulSoup解析 HTML 内容,查找相亲信息所在的 HTML 元素。
    • 提取姓名、年龄、性别等信息,存储在字典中并添加到结果列表里。
    • 处理请求异常,确保程序的健壮性。
  • 主程序

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

运行思路

  • 安装依赖库:确保已经安装了requestsbeautifulsoup4库,可使用以下命令进行安装:
pip install requests beautifulsoup4
  • 修改 URL:将代码中的base_url替换为实际相亲网站的 URL 格式。
  • 运行脚本:将上述代码保存为crawl_dating_site.py文件,在终端中运行:
python crawl_dating_site.py
  • 查看结果:程序会依次获取指定页数的相亲信息,并打印出来。

注意事项

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

相关文章:

  • Maplibgre-gl 学习1 初识
  • leetcode刷题日记——旋转链表
  • 深入理解Java HotSpot中的即时编译
  • 规控算法分类
  • 【Vue.js 的核心魅力:深入理解声明式渲染】
  • 学习黑客NFC技术详解
  • 互联网协议的多路复用、Linux系统的I/O模式
  • 【FileZilla】sftp协议的数据传输上传和下载
  • 软考软件设计师中级——软件工程笔记
  • QT---信号与槽
  • scons user 3.1.2
  • hls 的使用方式
  • ICML-2024《Image Clustering with External Guidance》
  • PADS入门笔记【一】
  • 基于etcd的分布式任务调度系统:设计、实现与实战经验
  • CS016-2-unity ecs
  • 计算机系统结构——Cache性能分析
  • 苹果处理器“仿生“命名背后的营销策略与技术创新
  • 【ROS2】报错记录及对应解决方案
  • Open3D 体素化下采样
  • 当DeepSeek遇上百年医院:解码AI医疗落地实践
  • 香橙派/树莓派读取GY39数据
  • Spring Boot 日志
  • 仿真每日一练 | 多刚体动力学分析中的自由度问题
  • 领麦微红外温度传感器:发面机非接触测温
  • AI短期学习计划(持续完善更新)
  • 基于CETOL 6σ的生产不良判定与故障分析技术应用
  • Android Framework学习五:APP启动过程原理及速度优化
  • Made with Unity | 拓展“双点”宇宙版图
  • 再来1章linux系列-17 ssh sshd sshd非对称加密(密钥加密)‌SSH对称加密组件/流程