如何随机获取最新浏览器版本的用户代理?

2024-04-18 00:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

fake_useragent包可以随机生成用户代理:

from fake_useragent import UserAgent

ua = UserAgent()
user_agent = ua.random

有时生成的用户代理具有过时的浏览器版本,一些网站不接受它们。有没有办法只使用最新的浏览器版本生成用户代理?在


Tags: 用户fromimport版本代理网站浏览器random
1条回答
网友
1楼 · 发布于 2024-04-18 00:29:16

您可以执行以下操作:

from fake_useragent import UserAgent
import random
import re

def grp(pat, txt):
    r = re.search(pat, txt)
    return r.group(0) if r else '&'

ua = UserAgent()
browsers = {
    'chrome': r'Chrome/[^ ]+',
    'safari': r'AppleWebKit/[^ ]+',
    'opera': r'Opera\s.+$',
    'firefox': r'Firefox/.+$',
    'internetexplorer': r'Trident/[^;]+',
}

for k, v in browsers.items():
    print(sorted(ua.data_browsers[k], key=lambda a: grp(v, a))[-1])

脚本的输出是:

^{pr2}$

请注意,grp函数是公然从this answer窃取的

如果您只是像您所要求的那样只寻找一个浏览器,那么它将随机选择,同时遵循project's readme中列出的概率

browser = random.choice(ua.data_randomize)
print(sorted(ua.data_browsers[browser], key=lambda a: grp(browsers[browser], a))[-1])

相关问题 更多 >

    热门问题