【发布时间】:2018-05-03 19:20:03
【问题描述】:
我在 python 中编写了一个与 selenium 相关的脚本,以解析网页中的一些名称,该网页处理延迟加载方法,网页在每次滚动到底部时都会显示其内容。我的脚本无误地做到了。但是,我无法解决的唯一问题是从我的脚本中删除硬编码延迟。我真的不知道如何使用explicit wait 而不是hardcoded delay 保持逻辑(在脚本中应用),因为它可以提高效率。提前感谢您的帮助。
这是我迄今为止尝试过的(正在工作的):
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("find_the_link_above")
last_len = len(driver.find_elements_by_class_name("listing__name--link"))
new_len = last_len
while True:
last_len = new_len
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3) ##I wish to kick out this harcoded delay and use explicit wait in place
items = driver.find_elements_by_class_name("listing__name--link")
new_len = len(items)
if last_len == new_len:break
for item in items:
print(item.text)
driver.quit()
【问题讨论】:
标签: python python-3.x selenium web-scraping selenium-chromedriver