温馨提示×

温馨提示×

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

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

怎样用python抓数据

发布时间:2026-09-25 08:53:12 来源:亿速云 阅读:121 作者:小樊 栏目:编程语言

用 Python“抓数据”通常分几种场景,我按常见程度从简单到进阶给你讲,并配上可直接用的示例代码。


一、最基础:请求网页 + 解析(适合静态网页)

1️⃣ 用 requests 获取网页

import requests

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

print(response.status_code)  # 200 表示成功
print(response.text)         # 网页 HTML 内容

2️⃣ 用 BeautifulSoup 解析 HTML

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, "html.parser")

# 示例:抓取所有标题
titles = soup.find_all("h1")
for t in titles:
    print(t.text)

✅ 适合:新闻、博客、价格页等非动态加载网站


二、动态网页(JavaScript 渲染)

如果网页数据是 JS 加载的(右键“查看网页源代码”看不到数据),用:

方法 1:Selenium(模拟浏览器)

from selenium import webdriver
from selenium.webdriver.common.by import By

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

data = driver.find_elements(By.CLASS_NAME, "item")
for d in data:
    print(d.text)

driver.quit()

方法 2:直接抓接口(推荐)

import requests

api_url = "https://example.com/api/data"
resp = requests.get(api_url)
print(resp.json())

✅ 技巧:
浏览器 → F12 → Network → 找 XHR / Fetch 请求


三、抓接口数据(API / JSON)

很多网站本质是调接口:

import requests

url = "https://api.github.com/repos/python/cpython"
data = requests.get(url).json()

print(data["stargazers_count"])

四、常见反爬 & 应对

✅ 加请求头

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

✅ 控制频率

import time
time.sleep(1)

✅ 登录态(Cookie)

cookies = {"session": "abc123"}
requests.get(url, cookies=cookies)

五、存数据(常用)

存 CSV

import pandas as pd

df = pd.DataFrame(data)
df.to_csv("data.csv", index=False)

存数据库(MySQL 示例)

import pymysql

conn = pymysql.connect(host="localhost", user="root", password="", db="test")

六、法律 & 道德提醒 ⚠️

  • 不爬敏感 / 隐私数据
  • 遵守 robots.txt
  • 控制频率,别压垮服务器

如果你愿意,可以告诉我:

  • 想抓 哪个网站 / 哪种数据
  • 是 静态页 / 动态页 / API
  • 想存成 Excel / 数据库 / 实时分析

我可以直接帮你写完整可运行脚本。

向AI问一下细节

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

AI
助
手