Selenium webdriver 无法打开正确的 url,而是打开一个空白页面

问题描述 投票:0回答:2

我正在使用 selenium webdriver 尝试从 realestate.com.au 抓取信息,这是我的代码:

从 selenium.webdriver 导入 Chrome 从 bs4 导入 BeautifulSoup

path = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'
url = 'https://www.realestate.com.au/buy'
url2 = 'https://www.realestate.com.au/property-house-nsw-castle+hill-134181706'
webdriver = Chrome(path)
webdriver.get(url)
soup = BeautifulSoup(webdriver.page_source, 'html.parser')
print(soup)

它可以很好地处理 URL,但是当我尝试执行相同的操作来打开 url2 时,它会打开一个空白页面,我检查了控制台,得到以下信息: “无法加载资源:服务器响应状态为 429 () 关于:空白:1 无法加载资源:net::ERR_UNKNOWN_URL_SCHEME 149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint:1 无法加载资源:服务器响应状态为 404 ()"

在打开 URL 时,我尝试搜索任何内容,这也导致像 url2 这样的空白页面。

python selenium-webdriver web-scraping
2个回答
1
投票

看起来 www.realestate.com.au 网站正在使用 Akamai 安全工具。

快速 DNS 查找显示 www.realestate.com.au 解析为 Dualstack.realestate.com.au.edgekey.net。

他们最有可能使用 Bot Manager 产品 (https://www.akamai.com/us/en/products/security/bot-manager.jsp)。我最近在另一个网站上遇到过这个。

通常轮换用户代理和 IP 地址(最好使用住宅 代理)应该可以解决问题。您希望每次都使用“新鲜”的浏览器配置文件加载网站。您还应该查看 https://github.com/67-6f-64/akamai-sensor-data-bypass


0
投票

我认为您应该尝试在 get 行之前添加

driver.implicitly_wait(10)
,因为这会添加隐式等待,以防页面加载速度太慢而导致驱动程序无法拉取站点。此外,您还应该考虑尝试 Firefox Webdriver,因为此错误似乎只影响 chromium 浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.