我正在试图为我的项目填写this website以填充可用的保险产品列表。
但是,该网站有一个内部滚动条,只显示页面上的前10个项目,并且当您向下滚动内部栏时,只会显示新元素。
我如何
Selenium
向下滚动内部栏?似乎无法找到有关周围的信息。Selenium
检索Company Name, Product Name, Paymode, product features (if active)
并返回pandas Dataframe
?答案 0 :(得分:2)
有趣的是,根本不需要滚动容器。所有结果实际上都已加载,但部分结果只是不可见。您只需找到perl -e 'link "/Users/me/Documents", "/Users/me/Google Drive/Documents"'
类的所有sudo perl -U -e 'unlink "/Users/me/Google Drive/Documents"'
元素,即可获得所需的数据。
示例工作代码提取" prod名称":
li
打印:
result_content
请注意,我们必须使用from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome("/usr/local/bin/chromedriver")
driver.maximize_window()
driver.get("http://comparefirst.sg/wap/productsListEvent.action?prodGroup=whole&pageAction=prodlisting")
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.ID, "result_container")))
results = driver.find_elements_by_css_selector("li.result_content")
for result in results:
prod_name = result.find_element_by_id('sProdName').get_attribute("innerText")
print(prod_name)
driver.close()
而不是AIA Gen3 (II)
AIA Guaranteed Protect Plus
AIA Guaranteed Protect Plus
...
DIRECT- TM Basic Whole Life
DIRECT- TM Basic Whole Life (+ Critical Illness)
TM Legacy
TM Legacy (+ Critical Illness)
TM Legacy LifeFlex
TM Legacy LifeFlex (+ Critical Illness)
TM Retirement GIO
TM Retirement PaycheckLife (Single Life)
,因为后者仅在大多数元素不可见时才会返回可见文本。