爬虫是 Python 最受欢迎的应用场景之一。掌握爬虫,你可以自动采集数据、监控价格、批量下载资源。本文用最简单的方式带你入门。
01 环境准备
安装两个库就够了:
pip install requests beautifulsoup4
requests 负责发送 HTTP 请求,BeautifulSoup 负责解析 HTML。
02 最简单的爬虫:10行代码
import requests
from bs4 import BeautifulSoup
url = 'https://news.ycombinator.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
titles = soup.select('.titleline a')
for title in titles[:10]:
print(title.text)
就这 10 行,已经能抓取 Hacker News 的头条新闻了。
03 处理反爬:加请求头
很多网站会检测 User-Agent,直接请求会被拒绝。加上浏览器请求头就能绕过:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
response = requests.get(url, headers=headers)
04 抓取多页数据
大多数网站都有分页,用循环批量抓取:
for page in range(1, 6):
url = f'https://example.com/list?page={page}'
response = requests.get(url, headers=headers)
# 解析当前页数据
print(f'第{page}页抓取完成')
05 保存数据到 CSV
import csv
with open('data.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['标题', '链接'])
for item in data:
writer.writerow([item['title'], item['url']])
06 遇到动态页面怎么办
有些网站数据是 JavaScript 动态加载的,requests 抓不到。这时候有两个方案:
方案一:找接口 — 打开浏览器开发者工具 → Network → XHR,找到数据接口直接请求,比用 Selenium 快 10 倍。
方案二:用 Playwright — 真实浏览器渲染,能抓任何页面,但速度慢,适合实在找不到接口的情况。
07 注意事项
爬虫要遵守 robots.txt 规则,不要频繁请求同一网站(加 time.sleep 控制频率),不要爬取涉及隐私的数据。合法合规使用,才能用得长久。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END













暂无评论内容