python-3.x - 即使在 python 中使用 .click()、implicitly_wait() 和 selenium webdriver 后也无法提取数据
问题描述
无法从以下列表中抓取数据:
# Links
links = ['https://www.energymadeeasy.gov.au/plan?id=1ST82937MRE&postcode=2000', 'https://www.energymadeeasy.gov.au/plan?id=1ST82959MRE&postcode=2000', 'https://www.energymadeeasy.gov.au/plan?id=1ST82961MRE&postcode=2000']
我正在尝试在“其他详细信息 > 合同详细信息 > 分销商”下找到分销商名称“Ausgrid”。
在下面找到我的代码并建议需要做什么:
# Importing the library
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r"...chromedriver_win32\chromedriver.exe")
# Links
links = ['https://www.energymadeeasy.gov.au/plan?id=1ST82937MRE&postcode=2000', 'https://www.energymadeeasy.gov.au/plan?id=1ST82959MRE&postcode=2000', 'https://www.energymadeeasy.gov.au/plan?id=1ST82961MRE&postcode=2000']
# Empty List
distributor = []
# Loop to extract the data and append to a list
for ind_lnk in links:
driver.get(ind_lnk)
driver.implicitly_wait(30)
clk = driver.find_elements_by_xpath('//*[@id="content"]/div/section/div/div[1]/div[6]/div/button')
clk[0].click()
driver.implicitly_wait(20)
try:
distributor.append(driver.find_element_by_xpath("//*[@id='content']/div/section/div/div[1]/div[6]/div/div/div[1]/section/div[5]/span").text)
except:
distributor.append("")
期望输出为:['Ausgrid','Ausgrid','Ausgrid']
但变空['','','']
解决方案
它对我的工作WebDriverWait
用于详细信息url
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
# Links
links = ['https://www.energymadeeasy.gov.au/plan?id=1ST82937MRE&postcode=2000', 'https://www.energymadeeasy.gov.au/plan?id=1ST82959MRE&postcode=2000', 'https://www.energymadeeasy.gov.au/plan?id=1ST82961MRE&postcode=2000']
# Empty List
distributor = []
browser = webdriver.Firefox(executable_path='./geckodriver')
browser.maximize_window()
for ind_lnk in links:
browser.get(ind_lnk)
WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, '//*[@id="content"]/div/section/div/div[1]/div[6]/div/button'))).click()
time.sleep(3)
try:
distributor.append(browser.find_element_by_xpath("//*[@id='content']/div/section/div/div[1]/div[6]/div/div/div[1]/section/div[5]/span").text)
except:
distributor.append("")
browser.close()
print(distributor)
推荐阅读
- android - 从 URL 下载私有视频并仅从 React Native App 播放(不是从 Android 文件资源管理器/图库)
- nginx - Nginx 入口控制器类型 ConfigMap 用于 sigs ALB 入口控制器/AWS LB 控制器
- solidity - ERC721。如何使用 erc721 标准添加与属性相关的附加信息
- firmware - 您如何在 EDK2 中构建胶囊,以及如何将 UEFI 图像放入该胶囊中?
- javascript - 时间计数器命令保持整个时间| 不和谐.js
- angular - 使用模型实现扩展地图
- machine-learning - 如何使用 lstm 执行 TEXT_CLASSIFICATION 多类多输出分类
- html - webp/jpg - 仅在 html 文件中预加载所需的类型
- python - 如何使用来自 GitHub 的非打包 Python 代码
- android - 崩溃 - 签名 apk /bundle 但正常调试 apk 工作正常