在线获取UserAgent

UserAgent 让你的爬虫以(冒充)浏览器的身份向服务器请求数据。
更换 UserAgent 可以避免触发某些反爬机制。
fake-useragent 是用来为爬虫提供 UserAgent 的第三方包。

基本用法

使用 pip install fake-useragent 安装 fake-useragent 这个包,如果网络错误,就多试几次。

使用 import fake_useragent 导入。一般地,我们只需要 from fake_useragent import UserAgent 即可。

fake-useragent 的API 十分简单:

  • UserAgent().random 即可获取一个随机的 UserAgent(一般用这个就行了)
  • 获取子项的值:.ie, .msie, ['Internet Explore'], opera, chrome, google, ['google chrome'], firefox, ff, safari

下面是一个典型的 UserAgent:

1
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36

其每个字段的含义是:

image-20200927115718838

这些信息可以通过在线网站 http://useragentstring.com/ 进行查询。

其它信息

fake-useragent 会将数据缓存在系统的临时目下,例如 Linux 的 /tmp

可在 python 脚本中随时更新本地缓存的数据库:

1
2
3
from fake_useragent import UserAgent
ua = UserAgent()
ua.update()

如果不想将数据缓存到本地,可设置:

1
ua = UserAgent(cache = False)

如果 useragentstring.com 或者 w3schools.com 改变或者关闭了它们的资源,fake-useragent 会使用备用的 heroku

如果你不想使用托管的缓存服务器(此设置在0.1.5版本添加),可设置:

1
ua = UserAgent(use_cache_server = False)

在极少数情况下,如果托管的缓存服务器和数据源都不可用,fake-useragent 将不会下载任何数据(版本0.1.3添加)。此时调用 UserAgent() 会抛出 fake_useragent.errors.FakeUserAgentError 错误,可再次尝试。

你可以自定义数据缓存的路径:

1
2
#version = fake_useragent.VERSION
ua = UserAgent(path = "/path/to/xxx.json")

如遇报错可尝试更新 fake-useragent:

1
pip install -U fake-useragent

参考资料

项目地址:https://github.com/hellysmile/fake-useragent

----- For reprint please indicate the source -----
0%