温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python如何爬取网页数据

发布时间:2026-10-12 09:54:28 来源:亿速云 阅读:88 作者:小樊 栏目:编程语言

在 Python 中爬取网页数据,通常分为发送请求 → 解析页面 → 提取数据 → 存储/使用几个步骤。下面从基础到进阶给你一个清晰指南。


一、最基础:使用 requests + BeautifulSoup

1️⃣ 安装库

pip install requests beautifulsoup4

2️⃣ 示例:爬取网页标题和段落

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)

# 检查请求是否成功
if response.status_code == 200:
    soup = BeautifulSoup(response.text, "html.parser")

    # 获取标题
    title = soup.title.string
    print("标题:", title)

    # 获取所有段落
    for p in soup.find_all("p"):
        print(p.get_text())
else:
    print("请求失败:", response.status_code)

二、常用网页解析方法

BeautifulSoup 常用方法

soup.find("div", class_="content")      # 找第一个
soup.find_all("a", href=True)           # 找所有链接
soup.select("div > p.title")            # CSS 选择器

三、处理动态网页(JavaScript 渲染)

如果网页内容是用 JS 动态加载的(右键查看源代码找不到数据),需要用:

方案 1:requests + 找接口(推荐)

  • 打开浏览器 → F12 → Network
  • 找到返回 JSON 的接口,直接用 requests 请求
resp = requests.get("https://api.example.com/data")
data = resp.json()

方案 2:Selenium(模拟浏览器)

pip install selenium
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")
print(driver.page_source)
driver.quit()

四、常见反爬应对

1️⃣ 设置请求头

headers = {
    "User-Agent": "Mozilla/5.0"
}
requests.get(url, headers=headers)

2️⃣ 控制频率

import time
time.sleep(1)

3️⃣ 使用代理

proxies = {
    "http": "http://ip:port"
}
requests.get(url, proxies=proxies)

五、数据存储示例

存为 CSV

import csv

with open("data.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["标题"])
    writer.writerow([title])

六、法律与道德提醒 ⚠️

  • 遵守 robots.txt
  • 不频繁请求影响服务器
  • 不爬取敏感/隐私数据

如果你有具体网站或想爬的内容(如新闻、图片、表格、评论),可以告诉我,我可以直接给你可用代码。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手