【问题标题】:Beautifulsoup - Can't find element (href) in page sourceBeautifulsoup - 在页面源中找不到元素(href)
【发布时间】:2021-06-30 14:14:17
【问题描述】:

我在从页面中抓取一个元素时遇到问题 - 一个 href。该元素位于页面底部,最后一节“Dowiedz się więcej o Pracodawcy:”,然后我们有这个超链接“Zobacz profile pracodawcy”。我尝试通过 id、class、CSS 选择器找到它 - 它不起作用。

有趣的是,当我从我的汤中收集每个 href 时,它不包含这个特定的 url。下面是我的代码并链接到此页面。

Link page

driver = webdriver.Chrome(PATH)
driver.get(url)
btn = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, 'b1cb9caz')))
btn.click()
btn = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, 'bm6u2cu')))
btn.click()

html = driver.page_source
bs = BeautifulSoup(html, "html.parser")
employer_url = bs.find('a', {'data-test': 'button-employer-profile'})

print(employer_url)

【问题讨论】:

  • 您的代码对我来说运行良好,它为我提供了“Zobacz profile pracodawcy”的 href。当你打印employer_url时你看到了什么?
  • 不起作用的原因可能是在加载selenium中的数据之前,第二次点击后加载动态内容尚未完成。在最后一个btn.click() 之后实现time.sleep(5) 为我修复了它。

标签: python selenium web-scraping beautifulsoup


【解决方案1】:

滚动到页面底部并然后提取元素怎么样?

方法如下:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.headless = True
driver = webdriver.Chrome(options=options)

driver.get("https://www.pracuj.pl/praca/mlodszy-pracownik-utrzymania-ruchu-mechatronik-automatyk-walbrzych,oferta,1000823887?s=d8890351#company-details")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

print(driver.find_element_by_css_selector(".employer-profilelnRpod").get_property("href"))
driver.quit()

输出:

https://pracodawcy.pracuj.pl/company/20000293/profile

【讨论】:

  • 好的,谢谢。我看起来很清楚,但是当我修改此代码时发生了一些错误。 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".employer-profilelnRpod"} (Session info: headless chrome=89.0.4389.114)我错过了什么吗?
  • 它说网站上没有这样的元素。你是怎么修改代码的?
  • 我处理好了。我不得不在滚动脚本之后添加 time.sleep :) 非常感谢您的宝贵时间!
  • @Kacper_Te nie ma za co! =]
猜你喜欢
  • 2019-10-21
  • 2016-07-19
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
相关资源
最近更新 更多