【问题标题】:How to get selenium web driver on python to find elements on css selectors of a following page?如何在 python 上获取 selenium Web 驱动程序以在下一页的 css 选择器上查找元素?
【发布时间】:2020-07-17 19:30:01
【问题描述】:

我正在尝试让 selenium 使用 CSS 选择器抓取 wiki 页面的第一段。

当我运行这段代码时,它似乎只从原始网页中选择了一些

https://en.wikipedia.org

而不是我要搜索的内容,在本例中为“猫”。

对此的任何帮助都会很棒!


browser = webdriver.Firefox(executable_path='D:\Import Files that I also want backed up\Jupyter Notebooks\Python Projects\Selenium\driverss\geckodriver.exe')
browser.get('https://en.wikipedia.org')

search_elem = browser.find_element_by_css_selector('#searchInput')

search_elem.send_keys('cats')
search_elem.submit()


results_elem = browser.find_element_by_css_selector('p')

print(results_elem.text)

output:

Adventure Time is an American fantasy animated television series created .....

【问题讨论】:

  • 你的预期输出是什么?
  • 我想打印“猫”页的第一段。但是当使用 css 选择器时,我仍然只是刮掉第一个 'wikipedia.com' 页面。即使我在“猫”页面上。本质上,我希望能够在使用 selenium 搜索主题后从网页中抓取。

标签: python css selenium web-scraping webdriverwait


【解决方案1】:

从 wiki 页面获取第一段文本。引入 WebDriverWait()visibility_of_element_located() 并跟随 css 选择器。

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

browser = webdriver.Firefox(executable_path='D:\Import Files that I also want backed up\Jupyter Notebooks\Python Projects\Selenium\driverss\geckodriver.exe')
browser.get('https://en.wikipedia.org')
search_elem = browser.find_element_by_css_selector('#searchInput')
search_elem.send_keys('cats')
search_elem.submit()
results_elem=WebDriverWait(browser,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"div.mw-parser-output p:nth-of-type(3)")))
print(results_elem.text)

【讨论】:

  • 如果我使用搜索栏消除代码,请查看此方法。但是当我通过搜索猫进入猫页面时,它会从访问的第一页中获取 css 选择器'en.wikipedia.org'
  • 如果您的页面需要更多时间来加载。然后在提交页面后提供一些 time.sleep(5)。让我知道这是怎么回事?
猜你喜欢
  • 1970-01-01
  • 2020-05-15
  • 2014-11-30
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多