Python 请求 - “要继续,您的浏览器必须接受 cookie,并且必须启用 JavaScript。”

ldr*_*vic 8 python cookies web-scraping python-3.x python-requests

我想从 mobile.de 上抓取一些供个人使用的广告。

我正在使用 python 3.6 和 requests lib,但我面临一些机器人检查的问题。我怎样才能从他们的网站通过这个网关?

import requests
from bs4 import BeautifulSoup

r = requests.get("https://www.mobile.de/?lang=en")
bs = BeautifulSoup(r.content, 'lxml')
print(bs)
Run Code Online (Sandbox Code Playgroud)

这部分代码向我显示以下内容:

<p>To continue your browser has to accept cookies and has to have JavaScript enabled.</p>
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到我需要解决的逻辑才能通过这个问题?

KC.*_*KC. 6

您收到意外内容的原因是您没有有效的标头。正如@afit 所说。但这To continue your browser has to accept cookies and has to have JavaScript enabled.是有道理的,因为如果您不启用 JavaScript,您将无法加载完整的内容。

注意:我建议您使用selenium这样做。requests_html由于渲染时缺少合适的标头,无法成功访问网站。顺便说一句,如果你想访问 JavaScript 中的 url 并抓取内容,这将是一项艰巨的工作。

from bs4 import BeautifulSoup
from selenium import webdriver

dr = webdriver.Chrome()
dr.get("https://www.mobile.de/?lang=en")
bs = BeautifulSoup(dr.page_source,"lxml")
Run Code Online (Sandbox Code Playgroud)