小编Ris*_*aga的帖子

你如何使用 EC.presence_of_element_located((By.ID, "myDynamicElement")) 除了指定类而不是 ID

我正在尝试使用 Python 来抓取一个网站,该网站通过使用嵌入的 javascript 文件将数据作为响应呈现到 HTML 中来动态加载它的 HTML。因此,如果我单独使用 BeautifulSoup,我将无法检索我需要的数据,因为我的程序会在 Javascript 加载数据之前抓取它。因此,我将 selenium 库集成到我的代码中,以使我的程序在抓取网站之前等待找到某个元素。

我最初是这样做的:

element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.ID, "tabla_evolucion")))
Run Code Online (Sandbox Code Playgroud)

但我想通过执行以下操作来指定一个类:

element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))  
Run Code Online (Sandbox Code Playgroud)

这是我的其余代码:

driver_path = 'C:/webDrivers/chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
driver.header_overrides = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}
url = "myurlthatIamscraping.com" 
response = driver.get(url)
html = driver.page_source
characters = len(html)
element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))

print(html)
print(characters)
time.sleep(10)
driver.quit()
Run Code Online (Sandbox Code Playgroud)

它对我不起作用,我在任何地方都找不到正确的语法。

python selenium selenium-webdriver webdriverwait expected-condition

6
推荐指数
2
解决办法
3万
查看次数