用python抓取网页数据的基础方法

引言

在数据科学和网络爬虫领域,网页抓取是一项关键技术。Python凭借其丰富的第三方库,能够高效地简化网页解析与数据提取流程,已成为该领域的流行选择。本文将介绍几种常见的网页抓取方法,供需要的读者参考。

1. 使用 requests 和 BeautifulSoup 进行网页抓取

1.1 安装依赖

你需要安装 requests 和 beautifulsoup4 库。这两个库分别用于网页请求和网页解析。

python 复制代码
pip install requests beautifulsoup4

1.2 确保网络畅通,能够访问目标网站

1.3 基本用法

python 复制代码
import requests
from bs4 import BeautifulSoup

# 目标网页URL
url = 'https://www.example.com'

# 请求头,模拟浏览器访问,避免被反爬
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": "https://www.example.com",
    "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}

# 发送HTTP请求
response = requests.get(url, headers=headers, timeout=10)
# response.raise_for_status()  # 抛出HTTP请求异常
response.encoding = "utf-8"  # 设置编码

# 检查请求是否成功
if response.status_code == 200:
    # 解析HTML内容
    soup = BeautifulSoup(response.text, 'html.parser')

    # 找到页面中的标题(<title>标签)
    title = soup.find('title').text
    print('页面标题:', title)
    # 找到特定div的内容
    divs = soup.find_all('article',class_='blog-list-box')
    # 得到一个集合
    print(divs[0])
    # 根据具体需要,我们可以获取不同html标签的内容,进行显示或者存储操作
else:
    print('请求失败,状态码:', response.status_code)

1.4 总结

总之,Python 提供了多种强大的网页抓取方法,适用于不同类型的网页。requests 和 BeautifulSoup 是最基础的组合,适合静态网页的抓取,后续还需总结其他复杂网页、使用框架抓取网页的方法,文档带进一步完善。

相关推荐
Lhan.zzZ9 分钟前
深入理解 windeployqt:混合 C++/Qt 项目的打包指南
开发语言·c++·qt
淼澄研学17 分钟前
PyTorch深度学习实战:5个核心方法从0到1构建神经网络
前端·数据库·python
我命由我1234523 分钟前
Android 开发 - 广播组件(标准广播、有序广播、静态注册广播、分钟到达广播、网络变更广播...)
android·java·开发语言·网络·java-ee·android studio·android-studio
SunnyDays101128 分钟前
Python 将 Excel(XLS/XLSX)转换为 JSON:导出工作簿、工作表、单元格区域与自定义 JSON 结构
python·json·excel·excel 转 json·导出 excel 到 json·xlsx 转 json·xls 转 json
天l志37 分钟前
Chrome Extension + 本地服务:浏览器页面上下文采集与远程执行技术设计
python·谷歌浏览器
CodexDave39 分钟前
Python 自动化接单实战(九):Windows 免环境交付如何打包与诊断
windows·python·自动化·python自动化·pyinstaller·软件交付·windows打包
CTA量化套保42 分钟前
2026年量化入门路线,概念规则和简单实现逐步走
人工智能·python
米码收割机1 小时前
【Python】Python Django+Vue3校园自习室预约管理系统(源码+文档+PPT)【独一无二】
开发语言·python·django
AstartesEternal1 小时前
python第二次作业(列表,字典)
开发语言·python
拉特莉的祈祷机1 小时前
绿色测试日志为什么可能已经失效:用 AET 绑定命令与当前代码
python