Python 爬虫 User-Agent 设置指南:如何更改 User-Agent 来避免被封禁?

2023-04-17 00:00:00 python 爬虫 User

在 Python 爬虫开发中,经常会遇到被封禁的情况,其中一个原因是因为 User-Agent 不合法或重复使用同一个 User-Agent。为了避免被封禁,我们可以通过设置不同的 User-Agent 来模拟不同的浏览器或客户端,来进行爬取。本文将介绍如何设置 User-Agent 来避免被封禁。

  1. 查看 User-Agent

可以通过一些浏览器插件或在线工具来查看浏览器的 User-Agent,例如 Chrome/Firefox 插件 User-Agent Switcher and Manager、httpbin.org 网站等。以下是 Chrome 插件的截图:

image.png

  1. 设置 User-Agent

在 Python 的 requests 模块中,可以通过 headers 参数来设置请求的头部信息,通过修改 User-Agent 来模拟不同的浏览器和客户端。以下是一个 Python 脚本的例子:

import requests

url = "https://pidancode.com"
headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
}
response = requests.get(url, headers=headers)
print(response.text)

在上面的例子中,我们设置了一个 User-Agent 字符串来模拟 Edge 浏览器,再通过 requests.get 方法来发起请求,并将 headers 参数传递进去。

  1. User-Agent 库

手动编写 User-Agent 字符串有时候可能会比较麻烦,所以我们可以使用一些 Python 的 User-Agent 库来随机生成 User-Agent。以下是两个比较流行的库:

  • fake-useragent
  • fake_useragent

在使用这些库之前,需要先安装:

pip install fake-useragent

然后在代码中导入库并调用相应的方法即可:

import requests
from fake_useragent import UserAgent

url = "https://pidancode.com"
headers = {
  "User-Agent": UserAgent().random
}
response = requests.get(url, headers=headers)
print(response.text)

在上面的例子中,我们使用了 fake-useragent 库,通过调用 UserAgent().random 方法来获取一个随机的 User-Agent 字符串。

  1. 避免被封禁

为了避免被封禁,不仅需要设置合适的 User-Agent,还需要注意以下几点:

  • 设置适当的请求间隔时间,不要频繁地进行请求;
  • 遵守 robots.txt 文件中的规定;
  • 合理使用代理 IP 来进行爬取。

总之,爬虫虽然可以方便地获取所需的数据,但是也需要遵守一些基本的爬虫道德规范,避免给被爬取的网站带来过大的负担和压力。

相关文章