用 selenium 在环网刮刮中卡住

3pmvbmvn  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(169)

我正在尝试使用PYTHON和SIMERE来获取leboncoin
当我注意到他们使用DataDome进行机器人检测时,我才刚刚开始,所以我必须传递验证码,但在尝试自动化之前(这个问题与此无关),我只是在Selify打开的铬浏览器上手动解决了验证码,但它不起作用,每当我解决它时,它只是返回到验证码,我无法访问网站,它陷入循环。
以下是我的代码:

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()

# options.add_argument("--headless")

options.add_argument("--log-level=3")
driver = webdriver.Chrome(executable_path='chromedriver', options=options)

url = "https://www.leboncoin.fr/voitures/2182521551.htm"
driver.get("https://www.leboncoin.fr")
driver.get(url)

time.sleep(100)
svdrlsy4

svdrlsy41#

您的代码没有问题。
问题是,这些类型的防火墙大多可以很好地防御自动浏览器,如PlayWriter、Selify等。(最终,这是他们应该做的,阻止机器人访问网站)
您可以调整您的Selify浏览器配置,使其模仿实际的Chrome配置,并诱使DataDome认为您是真正的用户。
此外,您可以查看发送到防火墙的有效负载(在这种情况下是发送到~/datadome.js)的内容,并尝试复制它们。(通过尝试对构造和发送有效负载的JavaScript进行反向工程。)
请记住,他们还可以通过查看您的TLS配置(例如密码套件)或简单地查看您的IP地址等其他内容来创建您的指纹。一般来说,如果一家公司使用这样的防火墙,这意味着他们不想让你刮他们的网站,所以如果是这样的话就避免这样做。

klsxnrf1

klsxnrf12#

考虑到法国专业数据缓解公司https://datadome.co/部署的强大bot-mitigationleboncoin.fr确实真的很难收集
浏览器指纹识别、IP限制、多验证码、JS挑战。
不过,您可以从lobstr.io使用现成的爬虫程序,可在此处访问:https://lobstr.io/store/33db1ca85160105eeb84d5aa51cfad10/leboncoin-iter-listings
并且希望易于使用API Access:
https://lobstrio.docs.apiary.io/

curl 'https://api.lobstr.io/v1/clusters/save' \
  -H 'Accept: application/json' \
  -H 'Authorization: Token $TOKEN' \
  --data-raw '{"crawler":"33db1ca85160105eeb84d5aa51cfad10","name":"Leboncoin Listings Search Export"}' \
  --compressed

:crab:

相关问题