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

Python爬虫实战手册

🕷️ Python爬虫实战手册

1. 爬虫基础概念

  • 爬虫:用程序自动化获取网页数据的过程。
  • 核心步骤:
    1. 发送请求(Requests)
    2. 获取响应(HTML/JSON)
    3. 解析数据(BeautifulSoup / lxml / 正则)
    4. 存储数据(CSV / 数据库 / Excel)

2. 环境准备

pip install requests beautifulsoup4 lxml pandas

3. 发送请求

import requestsurl = "https://example.com"
headers = {"User-Agent": "Mozilla/5.0"}  # 模拟浏览器
resp = requests.get(url, headers=headers, timeout=10)print(resp.status_code)   # 状态码
print(resp.text[:500])    # HTML内容片段

4. 解析网页数据

4.1 使用 BeautifulSoup

from bs4 import BeautifulSoupsoup = BeautifulSoup(resp.text, "lxml")
titles = [t.get_text() for t in soup.select("h2.title")]
print(titles)

4.2 使用正则表达式

import re
pattern = re.compile(r'<h2.*?>(.*?)</h2>')
titles = pattern.findall(resp.text)
print(titles)

5. 数据存储

5.1 保存为 CSV

import pandas as pddf = pd.DataFrame({"title": titles})
df.to_csv("result.csv", index=False, encoding="utf-8-sig")

5.2 保存到数据库

import sqlite3conn = sqlite3.connect("data.db")
df.to_sql("articles", conn, if_exists="replace", index=False)

6. 实战案例:爬取豆瓣电影 Top 250

import requests
from bs4 import BeautifulSoup
import pandas as pdmovies = []
for start in range(0, 250, 25):url = f"https://movie.douban.com/top250?start={start}"headers = {"User-Agent": "Mozilla/5.0"}resp = requests.get(url, headers=headers)soup = BeautifulSoup(resp.text, "lxml")for item in soup.select(".item"):title = item.select_one(".title").get_text()rating = item.select_one(".rating_num").get_text()movies.append({"title": title, "rating": rating})df = pd.DataFrame(movies)
df.to_csv("douban_top250.csv", index=False, encoding="utf-8-sig")

7. 进阶技巧

  • 反爬虫应对:
    • 设置 headers 模拟浏览器
    • 使用 time.sleep() 控制访问频率
    • 使用代理 IP 池
    • 模拟登录(requests.Session / Selenium)
  • 动态网页:
    • Selenium / Playwright 控制浏览器
    • 抓取接口返回的 JSON 数据
  • 并发爬取:
    • concurrent.futures 线程池
    • asyncio + aiohttp 异步请求

8. 爬虫开发规范

  • 遵守网站 robots.txt 协议
  • 不要对目标网站造成过大压力
  • 数据仅用于学习和研究,避免商业滥用

9. 常见问题排查

问题可能原因解决方案
返回403UA被封修改 headers 或加代理
数据缺失动态加载用 Selenium 或抓接口
中文乱码编码问题resp.encoding = resp.apparent_encoding
速度太慢单线程使用并发/异步

10. 学习路径建议

  1. 熟悉 requests + BeautifulSoup 基础
  2. 学会用 pandas 导出数据
  3. 掌握 反爬虫应对动态网页处理
  4. 进阶到 异步爬虫分布式爬虫(Scrapy)

http://www.dtcms.com/a/482142.html

相关文章:

  • 教程: 在网页中利用原生CSS实现3D旋转动画
  • 机器学习从零到精通:理论、实践与工业级应用完整指南
  • 泰州模板建站源码移动端网页
  • 机器学习中的灰色预测算法:原理、实现与实战应用完整教程
  • 教育培训网站开发企业软件管理系统排名
  • jvm中的栈
  • 完整项目实战:使用 Playwright MCP 构建网页交互 AI 助手教程
  • PortSwigger靶场之 CSRF where token is not tied to user session通关秘籍
  • 四川住房城乡建设厅网站眉山注册公司流程和费用
  • 【数据库】时序数据库选型指南:在大数据与工业4.0时代,为何 Apache IoTDB 成为智慧之选?
  • 免费建站网站seowordpress 调用 discuz
  • 多因子模型识别避险共振:AI量化系统捕捉黄金突破4100美元的驱动信号
  • DAPLINK可以烧录,但无法调试仿真
  • 手机网站设计咨询永久免费的连外网的软件
  • 只出现一次的数字(位运算算法)
  • Unity 跨平台构建完全指南
  • linux的centos7安装git软件
  • 江苏省省建设厅网站免费制作网站服务器
  • 前端碎碎念笔记:JavaScript 对象的继承与多态
  • 【Xcode】Macos p12 证书过期时间查看
  • 【AI视频】从单模型,到AI Agent工作流
  • C#知识学习-017(修饰符_6)
  • 视频营销网站网站前端设计与制作ppt
  • 基于单片机直流电机PWM调速闭环控制系统Proteus仿真(含全部资料)
  • WHAT - 前端性能指标(加载性能指标)
  • 网站外包要注意什么wordpress 布局编辑器
  • 人工智能课程:课程目录介绍 总纲
  • 1、机器学习与深度学习
  • 深入解析 kube-proxy:Kubernetes 服务发现的网络基石
  • Bestseller验厂核心解读