欢迎光临
我们一直在努力

Python 数据采集(详细完整版・从入门到实战)

一、什么是 Python 数据采集

数据采集(爬虫):使用 Python 自动请求网页 / 接口,解析并提取所需数据(文本、表格、图片、JSON 等),实现批量、自动化获取信息。

核心用途:

  • 数据分析、机器学习数据集收集
  • 电商价格监控、舆情监测
  • 办公自动化:批量抓取表格导出 Excel
  • 科研、自媒体素材收集

二、必备核心库

1. 请求库(获取网页源码)

  • requests:最常用,发送 GET/POST 请求
  • urllib:Python 内置,功能基础
  • aiohttp:异步高并发采集

2. 解析库(提取数据)

  • BeautifulSoup4:简单易用,适合新手
  • lxml:速度快,支持 XPath
  • re(正则):复杂文本提取
  • json:接口 JSON 数据解析

3. 框架(大规模采集)

  • Scrapy:企业级爬虫框架,高并发、去重、分布式
  • Playwright / Selenium:模拟浏览器,抓 JS 动态渲染页面

4. 存储库

  • pandas:保存为 Excel/CSV
  • pymysql:存入 MySQL
  • openpyxl:Excel 操作

三、基础采集流程

  • 分析目标网页:查看页面结构、接口、是否动态加载
  • 发送网络请求:获取 HTML 或 JSON
  • 解析数据:提取标题、链接、文本、图片等
  • 数据清洗:去空格、去重、格式转换
  • 数据存储:保存到 Excel/CSV/ 数据库

  • 四、基础实战:静态网页采集

    以抓取简单网页标题和文本为例

    安装依赖

    bash

    运行

    pip install requests beautifulsoup4 pandas

    完整代码

    python

    运行

    import requests
    from bs4 import BeautifulSoup
    import pandas as pd

    # 1. 请求头(模拟浏览器,防止被反爬)
    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
    }

    # 2. 发送请求
    url = "https://news.baidu.com/"
    response = requests.get(url, headers=headers)
    response.encoding = "utf-8" # 设置编码

    # 3. 解析页面
    soup = BeautifulSoup(response.text, "html.parser")

    # 4. 提取数据(以新闻标题为例)
    news_list = []
    for item in soup.select(".hotnews li a"): # CSS 选择器
    title = item.get_text(strip=True)
    link = item.get("href")
    news_list.append({"标题": title, "链接": link})

    # 5. 保存到 Excel
    df = pd.DataFrame(news_list)
    df.to_excel("新闻数据.xlsx", index=False)
    print("抓取完成,已保存到 新闻数据.xlsx")


    五、进阶:JSON 接口采集

    很多网页数据通过接口返回 JSON,比 HTML 更好抓:

    python

    运行

    import requests

    url = "https://api.xxx.com/data"
    headers = {"User-Agent": "…"}

    res = requests.get(url, headers=headers)
    data = res.json() # 直接转字典

    # 提取字段
    for item in data["list"]:
    title = item["title"]
    print(title)


    六、进阶:动态网页(JS 渲染)

    用 Playwright 模拟浏览器加载 JS:

    bash

    运行

    pip install playwright
    playwright install

    python

    运行

    from playwright.sync_api import sync_playwright

    with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://dynamic-page.com")

    # 获取渲染后 HTML
    html = page.content()
    print(html)
    browser.close()


    七、反爬应对(常用)

  • 加请求头 User-Agent
  • 设置延时 time.sleep(1)
  • 使用代理 IP
  • 限制并发,避免高频访问
  • 处理 Cookie、登录态

  • 八、合法合规重要提醒

    • 只爬取公开数据
    • 遵守网站 robots.txt
    • 不用于商业牟利、不爬取隐私信息
    • 避免对服务器造成压力

    九、完整学习路线

  • 基础:requests + BeautifulSoup
  • 进阶:XPath、正则、JSON 接口
  • 动态页面:Playwright / Selenium
  • 高并发:aiohttp、Scrapy
  • 存储:Excel、MySQL、MongoDB
  • 分布式爬虫、IP 代理池
  • 如果你需要,我可以给你写:

    • 某网站完整定向爬虫
    • 批量爬图片 / 小说 / 商品数据
    • 爬取并自动生成 Excel 报表
    赞(0)
    未经允许不得转载:171主机测评 » Python 数据采集(详细完整版・从入门到实战)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址