Python 3 网站在使用用户代理欺骗时检测抓取工具

标签 python python-3.x web-scraping urllib user-agent

我正在尝试使用 urllib 从 Indeed.com 抓取一些信息。有时,工作链接会被重定向到招聘公司的网页。发生这种情况时,Indeed 会抛出一些有关使用不兼容的浏览器或设备的 html,而不是继续访问重定向的页面。环顾四周后,我发现在大多数情况下,欺骗 urllib 的用户代理看起来像浏览器就足以解决这个问题,但这里似乎并非如此。

除了欺骗用户代理之外,还有什么其他建议吗? Indeed 是否有可能意识到 User-Agent 被欺骗了,并且没有办法解决这个问题?

下面是代码示例:

import urllib
from fake_useragent import UserAgent
from http.cookiejar import CookieJar

ua = UserAgent()

website = 'http://www.indeed.com/rc/clk?jk=0fd52fac51427150&fccid=7f79c79993ec7e60'
req = urllib.request.Request(website)
cj = CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-Agent', ua.chrome)]
response = opener.open(req)

print(response.read().decode('utf-8'))

感谢您的帮助!

最佳答案

此 header 通常有效:

HDR = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'}

另一个选项是使用requests包。

关于Python 3 网站在使用用户代理欺骗时检测抓取工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894496/

相关文章:

python - 年到世纪功能

javascript - 使用 Python 抓取并登录 Angular webabb

python - 更新 PyQT 标签

python - 如何使用 Seaborn 使用对数刻度绘制直方图

python - 如何使用 BeautifulSoup 和 Python 仅从相似元素中提取某些文本

python请求: (SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)'))

python - Python sshtunnel-如何验证SSH连接?

python - 替换 Pandas 中的 NaN 值

python - 如何在 Google App Engine 上用 Python 解析 xml

python - 在抽象模型中创建 models.UniqueConstraint