我试图刮擦 https://www.hyatt.com,它不是非法使用,我只想做一个简单的脚本来找到酒店,这符合我的搜索。
但问题是,我甚至无法使用任何机器人加载网页。它根本不能加载。
下面是我已经尝试过的一些方法。1-使用selenium 2-使用scrapy框架-获取数据3-使用python请求库
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.hyatt.com")
driver.close()
我只想让页面自动加载。剩下的我会处理的。
发布于 2019-05-31 05:56:03
我采用了你的代码,添加了一些调整,并在我的端运行了相同的测试:
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()
最终我遇到了同样的问题。使用Selenium时,我甚至无法加载网页。但是当我检查控制台错误时
google-chrome-devtools它清楚地表明:
无法加载资源:服务器响应状态为404 () https://www.hyatt.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint
快照:
找不到404
HTTP 404 Not Found
客户端错误响应代码表明服务器找不到请求的资源。通向404页面的链接通常被称为断开链接或死链接,并且可能会受到link rot的影响。
404状态代码不指示资源是暂时还是永久丢失。但如果资源被永久删除,理想情况下应该使用410 (消失)而不是404状态。
接下来,在检查https://www.hyatt.com/
的HTML DOM时,观察到一些<script>
和<noscript>
标签引用了akam
<script type="text/javascript" src="https://www.hyatt.com/akam/10/28f56097" defer=""></script>
<noscript><img src="https://www.hyatt.com/akam/10/pixel_28f56097?a=dD02NDllZTZmNzg1NmNmYmIyYjVmOGFiOGYwMWI5YWMwZmM4MzcyZGY5JmpzPW9mZg==" style="visibility: hidden; position: absolute; left: -999px; top: -999px;" /></noscript>
这清楚地表明网站受到机器人管理服务提供商的保护,WebDriver驱动的浏览器客户端的导航被检测到,并随后获得阻止的。
超外
您可以在以下位置找到一些更相关的讨论:
https://stackoverflow.com/questions/56383944
复制相似问题