在 python 或其他方式中获取 Scrapy 的最新 chrome 用户代理

问题描述 投票:0回答:2

最近我开始定期使用 Scrapy 来分析需要最新浏览器(用户代理)才能显示其内容的网站。 现在,这似乎是一个老问题,但最新的问题是相当开放的。为什么?

没有简单的 API 或包来生成/下载最新版本的用户代理(在任何操作系统/平台中)。

许多软件包尝试解决此问题:

  1. shadow-useragent - 但它依赖于自愿服务器,该服务器由于某种原因目前处于不活动状态。
  2. latest-user-agents - 但它也使用托管的 json 文件 + 它还列出了旧的用户代理,并且没有任何文档。

最后有这个网站:www.whatismybrowser.com,它非常有帮助,但不能轻易自动化......

有什么线索可以解决这个问题吗?

scrapy user-agent
2个回答
8
投票

一个旧答案,但我实际上也在寻找这个功能。

您的第二个选项latest-user-agents可以工作,因为它从同一作者的每日更新获取JSON文件。

README.md 包含旧用户代理的原因是存储库未更新,所以这只是一个示例。我今天尝试了它,它有我能看到的所有最新的用户代理。


0
投票

有@jnrbsn的提要https://jnrbsn.github.io/user-agents/user-agents.json@Matteus也推荐)。

  • 这个项目是一个基于 cron 的 GitHub 托管抓取工具,从 Whatismybrowser.com 获取最新的用户代理字符串并将其转储到 json 文件中

  • 包括 Firefox、Chrome、Edge 和 SafariLinux、MacOS 和 Windows 操作系统

    的用户代理字符串排列
  • 🔔 请注意,使用此提要可能会让您面临法律风险,因为 Whatismybrowser.com 通过 API 订阅提供类似的商业产品https://explore.whatismybrowser.com/useragents/explore/


就我个人而言,对于我的一个非营利实验项目,我需要这样的东西,我决定使用@jnrbsn 的提要。我需要将 Python 脚本中的用户代理字符串保持为最新的 Windows 版 Chrome。

分享我编写的简短的 Python 函数来为我提供这个功能:

import requests

def get_latest_user_agent(operating_system='windows', browser='chrome'):
    url = f'https://jnrbsn.github.io/user-agents/user-agents.json'
    r = requests.get(url)
    r.raise_for_status()
    user_agents = r.json()

    for user_agent in user_agents:
        if operating_system.lower() in user_agent.lower() and browser.lower() in user_agent.lower():
            return user_agent

    return None


print(get_latest_user_agent(operating_system='windows', browser='chrome'))
print(get_latest_user_agent(operating_system='linux', browser='chrome'))
print(get_latest_user_agent(operating_system='mac', browser='chrome'))

输出:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
© www.soinside.com 2019 - 2024. All rights reserved.