【问题标题】:Selenium xpath: Trying to get original url from archived linkSelenium xpath:尝试从存档链接中获取原始网址
【发布时间】:2022-01-25 06:19:59
【问题描述】:

我正在做一个项目,试图从存档网站上抓取文章。例如,下面是存档 url 和原始 url。我有存档网址。我想使用 Selenium 来提取原始 url。

存档网址:https://archive.is/xXAoL

原始网址:https://beforeitsnews.com/eu/2021/08/breaking-germany-halts-all-covid-19-vaccines-says-they-are-unsafe-and-no-longer-recommended-2676130.html?fbclid=IwAR3JPcxNHlZ5eQHLyO2teh6_xcrerisBrCNeleOZz7qmxI7_pDJDBlEAIjU

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url = "https://archive.is/xXAoL"
driver = webdriver.Chrome('./chromedriver')
driver.get(url)

关于如何获取原始网址的任何建议?

方法一

可能有用的一件事是规范链接是

https://archive.is/2021.09.07-145059/https://beforeitsnews.com/eu/2021/08/breaking-germany-halts-all-covid-19-vaccines-says-they-are-unsafe-and-no-longer-recommended-2676130.html?fbclid=IwAR3JPcxNHlZ5eQHLyO2teh6_xcrerisBrCNeleOZz7qmxI7_pDJDBlEAIjU

我可以在第二个 https 之前删除一些东西。但是,该方法不起作用,因此寻找另一种不依赖元的方法。

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    要提取原始网址,您需要将WebDriverWait 诱导为visibility_of_element_located(),您可以使用以下任一Locator Strategies

    • 使用CSS_SELECTOR

      driver.get('https://archive.is/xXAoL')
      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input[name='q'][value]"))).get_attribute("value"))
      
    • 使用XPATH

      driver.get('https://archive.is/xXAoL')
      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//input[@name='q'][@value]"))).get_attribute("value"))
      
    • 控制台输出:

      https://beforeitsnews.com/eu/2021/08/breaking-germany-halts-all-covid-19-vaccines-says-they-are-unsafe-and-no-longer-recommended-2676130.html?fbclid=IwAR3JPcxNHlZ5eQHLyO2teh6_xcrerisBrCNeleOZz7qmxI7_pDJDBlEAIjU
      
    • 注意:您必须添加以下导入:

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

    【讨论】:

    • 我收到NameError: name 'EC' is not defined...EC 应该是什么?
    • 好的,进口解决了这个问题。我仍然收到“NameError: name 'by_CSS_SELECTOR' is not defined”
    • 应该是By.CSS_SELECTOR
    • 使用xpath,运行良好,目前刮了大约一百个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多