我正在尝试在python中使用selenium构建刮板。Selenium
Webdriver打开窗口并尝试加载页面,但突然停止加载。我可以在本地chrome浏览器中访问相同的链接。
这是我从网络驱动程序获得的错误日志:
{'level': 'SEVERE', 'message': 'https://shop.coles.com.au/a/a-nsw-metro-rouse-hill/everything/browse/baby/nappies-changing?pageNumber=1 - Failed to load resource: the server responded with a status of 429 (Too Many Requests)', 'source': 'network', 'timestamp': 1556997743637}
{'level': 'SEVERE', 'message': 'about:blank - Failed to load resource: net::ERR_UNKNOWN_URL_SCHEME', 'source': 'network', 'timestamp': 1556997745338}
{'level': 'SEVERE', 'message': 'https://shop.coles.com.au/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint - Failed to load resource: the server responded with a status of 404 (Not Found)', 'source': 'network', 'timestamp': 1556997748339}
我的剧本:
from selenium import webdriver
import os
path = os.path.join(os.getcwd(), 'chromedriver')
driver = webdriver.Chrome(executable_path=path)
links = [
"https://shop.coles.com.au/a/a-nsw-metro-rouse-hill/everything/browse/baby/nappies-changing?pageNumber=1",
"https://shop.coles.com.au/a/a-nsw-metro-rouse-hill/everything/browse/baby/baby-accessories?pageNumber=1",
"https://shop.coles.com.au/a/a-nsw-metro-rouse-hill/everything/browse/baby/food?pageNumber=1",
"https://shop.coles.com.au/a/a-nsw-metro-rouse-hill/everything/browse/baby/formula?pageNumber=1",
]
for link in links:
driver.get(link)
HTTP 429太多请求响应状态代码指示用户在给定的时间内发送了太多请求(“速率限制”)。响应表示应包含说明条件的详细信息,并且可以包含Retry- After
指示发出新请求之前要等待多长时间的标头。
当服务器受到攻击或仅从单方接收到大量请求时,以 429
状态码响应每个请求都会消耗资源。因此,不需要服务器使用429
状态码。当限制资源使用时,仅断开连接或采取其他步骤可能更合适。
HTTP 404找不到客户端错误响应代码表明服务器找不到请求的资源。在浏览器中,这意味着无法识别URL。在API中,这也可能意味着端点有效,但是资源本身不存在。服务器也可以发送此响应而不是403,以隐藏来自未授权客户端的资源。由于此响应代码在网络上经常发生,因此可能是最著名的响应代码。
一个404
状态代码并不表示资源是否是暂时或永久丢失。但是,如果资源被永久删除,410 (Gone)
则应使用a代替404
状态。此外,404
如果未找到所请求的资源使用状态代码,是否不存在,或者如果有一个401
或403
说,出于安全原因,该服务要掩盖。
当我尝试使用您的代码块时,我遇到了类似的后果。如果您检查网页的DOM树,您会发现相当多的标签都带有关键字 dist* 。举个例子: *
<link rel="shortcut icon" type="image/x-icon" href="/wcsstore/ColesResponsiveStorefrontAssetStore/dist/30e70cfc76bf73d384beffa80ba6cbee/img/favicon.ico">
<link rel="stylesheet" href="/wcsstore/ColesResponsiveStorefrontAssetStore/dist/30e70cfc76bf73d384beffa80ba6cbee/css/google/fonts-Source-Sans-Pro.css" type="text/css" media="screen">
'appDir': '/wcsstore/ColesResponsiveStorefrontAssetStore/dist/30e70cfc76bf73d384beffa80ba6cbee/app'
术语 dist 的存在明确表明该网站受 Bot Management 服务提供商 Distil
Networks的
保护,并且 ChromeDriver
的导航被检测到并随后 被阻止 。
根据文章“ 确实有关于Distil.it…的东西:”
Distil通过观察站点行为并识别刮板特有的模式来保护站点免受自动内容抓取机器人的攻击。当Distil在一个站点上识别出一个恶意bot时,它将创建一个列入黑名单的行为配置文件,并将其部署到所有客户。像僵尸防火墙一样,Distil会检测模式并做出反应。
进一步,
"One pattern with **Selenium** was automating the theft of Web content"
Distil首席执行官拉米·埃赛伊(Rami Essai)上周在接受采访时表示。"Even though they can create new bots, we figured out a way to identify Selenium the a tool they're using, so we're blocking Selenium no matter how many times they iterate on that bot. We're doing that now with Python and a lot of different technologies. Once we see a pattern emerge from one type of bot, then we work to reverse engineer the technology they use and identify it as malicious".
以下是我从WebDriver获得的错误日志: 我的脚本:
我有angular 6应用程序在我的本地机器上,一切都按照我想要的完美工作,完成项目后我将其部署到heroku,当我运行我的应用程序时,这里是指向heroku中应用程序的链接:测试应用程序 正如您所看到的,我在控制台浏览器中遇到以下错误 加载资源失败:服务器响应状态为404(未找到) 这是我在github中的应用程序结构 github中的应用程序回购 为了快速参考,这里是服务器。js 这是hero
我完全新的ReactJS。 我在YouTube遵循这个教程,遵循每个步骤。 直到我发现我的代码出现了这样的错误 因为我刚开始编程ReactJS,我仍然不明白该做什么,以及如何修复这个问题 本教程展示了如何构建一个简单的CRUD应用程序,内置于ReactJS和PostgreSQL 这里我提供我的应用程序。js代码 这是我的server.js代码: 我该怎么办?任何建议都能帮我解决这个问题 非常感谢。
从web服务加载时出现问题,并得到一个错误: 无法加载资源:服务器以404()的状态响应 如果有任何帮助,我将不胜感激。 您还可以看到具有相同代码的小提琴。 JSFiddle链接:https://jsfidle.net/jakwakwa/laglxpq7/6/ null null
我收到错误:“加载资源失败:服务器响应状态为404(未找到)”,javascript文件中有图标文件。 试图得到一个标记显示在谷歌地图。 我正在使用Visual Studio 2015和Apache Cordova。 文件位于www/scripts/googlemap。js和www/scripts/green。巴布亚新几内亚。 编辑:主要问题是来源。Url应为/scripts/green。png或
我正在学习Lynda关于Javascript和Ajax以及hungup的教程,主题是“使用同步XHR请求”。 html文件基本上是: javascript文件为: data.txt文件上有“Hello World”。 项目文件的路径为 当我打开wampserver上的localhost并执行inspect元素时,我得到了上面的错误:“未能加载资源:服务器响应状态为404(not found)” 不