google-chrome-devtools,Python 3.x,Selenium,Web Scraping,Scrapy,Python Requests,google Chrome Devtools" /> google-chrome-devtools,Python 3.x,Selenium,Web Scraping,Scrapy,Python Requests,google Chrome Devtools" />

Python 3.x 网页没有';在python代码中,当通过bot打开或通过任何其他方法请求时,不能加载

Python 3.x 网页没有';在python代码中,当通过bot打开或通过任何其他方法请求时,不能加载,python-3.x,selenium,web-scraping,scrapy,python-requests,google-chrome-devtools,Python 3.x,Selenium,Web Scraping,Scrapy,Python Requests,google Chrome Devtools,我正在尝试刮取而不是非法使用,我只是想制作一个简单的脚本来查找与我的搜索匹配的酒店 但问题是我甚至无法使用任何机器人加载网页。它只是不加载 以下是我已经尝试过的一些方法。 1-使用过的硒 2-使用刮擦式框架获得数据 3-使用的python请求库 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.hyatt.com") driver.close() 我只想

我正在尝试刮取而不是非法使用,我只是想制作一个简单的脚本来查找与我的搜索匹配的酒店

但问题是我甚至无法使用任何机器人加载网页。它只是不加载

以下是我已经尝试过的一些方法。 1-使用过的硒 2-使用刮擦式框架获得数据 3-使用的python请求库

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.hyatt.com")

driver.close()

我只想让页面自行加载。剩下的我会处理。

我对您的代码进行了一些调整,并在我的末尾运行了相同的测试:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
# options.add_argument('disable-infobars')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.hyatt.com")
WebDriverWait(driver, 20).until(EC.title_contains("Hyatt"))
print(driver.title)
driver.quit()
最后我遇到了同样的问题。我甚至无法加载网页。但当我检查控制台时,其中的错误清楚地表明:

加载资源失败:服务器响应状态为404()

快照:


404找不到 客户端错误响应代码表示服务器找不到请求的资源。指向404页面的链接通常被称为断开或死链接,并且可能会受到攻击

404状态代码并不表示资源是暂时丢失还是永久丢失。但是如果一个资源被永久删除,理想情况下应该使用(Gone)而不是404状态


继续前进,同时检查
https://www.hyatt.com/
据观察,一些
标签指的是akam

这清楚地表明,网站受到机器人管理服务提供商的保护,并且WebDriver驱动的浏览器客户端的导航被检测到,随后被阻止


奥特罗 您可以在以下内容中找到一些更相关的讨论:


我对您的代码进行了一些调整,并在最后运行了相同的测试:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
# options.add_argument('disable-infobars')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.hyatt.com")
WebDriverWait(driver, 20).until(EC.title_contains("Hyatt"))
print(driver.title)
driver.quit()
最后我遇到了同样的问题。我甚至无法加载网页。但当我检查控制台时,其中的错误清楚地表明:

加载资源失败:服务器响应状态为404()

快照:


404找不到 客户端错误响应代码表示服务器找不到请求的资源。指向404页面的链接通常被称为断开或死链接,并且可能会受到攻击

404状态代码并不表示资源是暂时丢失还是永久丢失。但是如果一个资源被永久删除,理想情况下应该使用(Gone)而不是404状态


继续前进,同时检查
https://www.hyatt.com/
据观察,一些
标签指的是akam

这清楚地表明,网站受到机器人管理服务提供商的保护,并且WebDriver驱动的浏览器客户端的导航被检测到,随后被阻止


奥特罗 您可以在以下内容中找到一些更相关的讨论:


我认为这个“var\cf=\cf||【】cf.push(['''u setFsp',true]);\cf.push([''u setam',true]);\u cf.push([''u setAu','/resources/2109bf5ef81843cd811083f8338393'])是Akami机器人检测的一部分。他们不希望你破坏网站。。。旋度可能也被检测到。肯定检测到您正在使用机器人。响应代码为您提供429:请求太多。并且不允许您使用bot。有关更多信息和可能的解决方案,您可以参考。感谢您的建议,我将尝试链接上提供的解决方案。如果您负担得起,您可能希望使用智能代理来避免bot检测。我认为这个“var_cf=|cf[];_cf.push([''u setFsp',true]);_cf.push([''u setBm true]);_cf.push([''cf.push([u setAu','/resources/2109bf5ef81843cd811083f8338393']是Akami机器人检测的一部分。他们不希望你抢占网站…可能也检测到了cURL。肯定检测到你正在使用机器人。响应代码给你429:请求太多。并且不允许你使用机器人。有关更多信息和可能的解决方案,你可以参考,谢谢你的建议,我将尝试上提供的解决方案链接如果您负担得起,您可能希望使用智能代理来避免bot检测。错误404可能是错误429的结果。控制台仅提供开发人员决定打印的内容。网络选项卡提供完整跟踪。请参阅对站点的请求返回429。如问题注释中所述,已存在一个此错误的线程@NicLaforge令人惊讶的是,网络选项卡没有注册任何条目:(@DebanjanB它有条目,但您需要在调用
driver.get()之前打开开发人员工具。
。确保已打开录制(默认为)。这是我得到的网络信息:嘿,谢谢你深入了解这一点,看起来我们不能绕过网站安全。我会等着看是否有人能解决这个问题。错误404可能是错误429的结果。控制台只提供开发人员决定打印的内容。网络选项卡提供完整的跟踪。看到了吗他对站点的请求返回了429条。正如问题的评论中所提供的,这个错误已经有了一个线程@NicLaforge令人惊讶的是,网络选项卡没有注册任何条目:(@DebanjanB它有条目,但是你需要在调用
driver.get()
之前打开开发者工具。确保记录已打开(默认设置为).这是我得到的网络信息:嘿,谢谢你深入研究,看起来我们不能绕过网站安全。我会等着看是否有人能解决这个问题。