Python爬虫踩坑记

工作需要抓取一些公开数据,用 Python 写了个简单的爬虫。一开始以为用 requests 库直接 get 就行,结果发现很多网站都有反爬机制。

第一个坑是 User-Agent 被识别。解决方法是每次请求随机换一个:

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

第二个坑是请求太频繁被 IP 封禁。加了 time.sleep(random.uniform(1, 3)) 之后好了很多。

第三个坑最麻烦,目标网站用了 JavaScript 动态渲染,requests 抓到的 HTML 是空的。最后用了 Selenium + ChromeDriver,虽然慢了点,但能拿到完整数据。

几点心得
  • 爬虫不是万能的,先看对方有没有提供 API
  • 遵守 robots.txt,不要给人家服务器造成压力
  • 数据拿到之后记得清洗,原始数据往往很脏

写爬虫的过程也是学习 HTTP 协议的过程,收获不小。