【问题标题】:How can I make selenium grab this href inside a tag?如何让 selenium 在标签内获取这个 href?
【发布时间】:2021-06-02 09:07:09
【问题描述】:

我目前正在尝试从该网站解析 href:https://jobs.gecareers.com/global/en/search-results?from=0&s=1

如果你打开这个网站,你应该会看到一个职位的标题,点击它上面的检查元素,你应该会在其中看到一个 A 标签和 href,我正在尝试链接并将其放入列表中。

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

PATH = "D:\Criver\chromedriver.exe"
driver = webdriver.Chrome(PATH)

LIST = []

driver.get(f'https://jobs.gecareers.com/global/en/search-results?from=0&s=1')
#links=driver.find_elements_by_tag_name("a.job_click")

elements = WebDriverWait(driver, 10).until(
        EC.presence_of_all_elements_located((By.ID, "a.href"))
    )
for ele in elements:
    LIST.append(ele.text)

print(LIST)

我不是 selenium 方面的专家,但我之前已经使用过它,但由于某种原因,我不能让 selenium 获取标签内的 href 链接。我该怎么办?

【问题讨论】:

    标签: python python-3.x selenium


    【解决方案1】:

    使用PARTIAL_LINK_TEXT

    job_link = driver.find_element_by_partial_link_text('SAVED JOBS')
    job_link.click()
    

    【讨论】:

      【解决方案2】:

      如果你自己的定位器是错误的,它是一个 css_selector,而不是 ID。
      试试这个,应该会更好用

      WebDriverWait(driver, 10).until(
              EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'a[data-ph-at-id="job-link"]'))  
      time.sleep(5)
      elements = driver.find_elements_by_css_selector('a[data-ph-at-id="job-link"]')
      for ele in elements:
          LIST.append(ele.text)
      
      print(LIST)
      

      上面的代码收集了这些元素的文本。如果你想获取 href 值,即链接,你应该在最后的代码部分使用它:

      for ele in elements:
          LIST.append(ele.get_attribute('href'))
      

      【讨论】:

      • 它似乎只附加了 HTML 中的职位文本,尽管我确实对其进行了一些更改,因为它不适合我(我使用 VSCODE)。我在 time.sleep 之前添加了 )。
      • 您需要添加LIST.append(ele.get_attribute('href')) 以获取href 以及其中的文本
      • @cruisepandey 谢谢!目前尚不清楚他想在这里做什么
      • @JustinHoward 我添加了收集链接的代码
      猜你喜欢
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      相关资源
      最近更新 更多