【问题标题】:Selenium webdriver does not open the correct url, rather it opens a blank pageSelenium webdriver 没有打开正确的 url,而是打开一个空白页面
【发布时间】:2020-08-13 00:40:57
【问题描述】:

我正在使用 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 () about:blank:1 加载资源失败:net::ERR_UNKNOWN_URL_SCHEME 149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint:1 加载资源失败:服务器响应状态为404()"

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

【问题讨论】:

    标签: python selenium selenium-webdriver scrape


    【解决方案1】:

    我认为您应该尝试在 get 行之前添加driver.implicitly_wait(10),因为这将添加隐式等待,以防页面加载太慢而驱动程序无法拉取站点。此外,您应该考虑试用 Firefox 网络驱动程序,因为此错误似乎只影响 chromium 浏览器。

    【讨论】:

    • 您好,我添加了implicitly_wait(10),并尝试使用firefox,它仍然有同样的问题,我认为这与阻止selenium的Web服务器有关,有什么办法可以通过了吗?
    • 啊,好吧,我的错,你应该检查这个 SO 帖子,似乎是一个非常相似的问题,该网站必须采用一些反刮擦手段,这是解决方案的链接: SO
    • 另外,您是否正在使用这些网络驱动程序的最新版本,因为在我在网上看到的大多数类似问题中,它们都已被修复。
    • 429 错误与“请求过多”有关。我相信服务器正在识别您正在使用 selenium/driver 并借助 javascript 在服务器上连续运行,因为您收到的 blank_page 状态为 429。关注您的帖子以获得答案。
    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多