python - 使用 Selenium 从多个同名类中提取标签的所有第一个实例
问题描述
我正在运行一个 Selenium 脚本来从多个同名类中抓取所有第一个 h3 实例,使用索引 [0] 来提取第一个 h3(共 4 个)。我的脚本似乎运行良好,但它返回一个空数组。我试过 WebDriverWait 解决方案无济于事。
这是我目前所拥有的:
url = 'https://www.riversidemedgroup.com/riverside-urgent-care/'
data = []
driver = webdriver.Chrome(executable_path='/Library/Frameworks/Python.framework/Versions/3.9/bin/chromedriver')
driver.get(url)
centers = driver.find_elements_by_xpath("//h3[contains(@class,'elementor-widget-container')][0]")
for center in centers:
data.append({
"Center Name": center
})
print(data)
driver.close()
无法弄清楚我哪里出错了。非常感谢任何建议!
解决方案
为了简单起见,我从 XPath 切换到 CSS 选择器。下面的代码应该可以正常工作。
from bs4 import BeautifulSoup
from selenium import webdriver
import time
url = 'https://www.riversidemedgroup.com/riverside-urgent-care/'
data = []
driver = webdriver.Chrome()
driver.get(url)
centers = driver.find_elements_by_css_selector(".elementor-widget-container > h3:first-of-type")
for center in centers:
data.append({
"Center Name": center.text
})
print(data)
driver.close()
输出:
[{'Center Name': 'Bloomfield, NJ Urgent Care'},
{'Center Name': 'Cedar Knolls, NJ Urgent Care'},
{'Center Name': 'Cherry Hill, NJ Urgent Care'},
{'Center Name': 'Cinnaminson, NJ Urgent Care'},
{'Center Name': 'East Brunswick, NJ Urgent Care'},
{'Center Name': 'Ewing, NJ Urgent Care'},
{'Center Name': 'Hackettstown, NJ Urgent Care'},
{'Center Name': 'Hamilton, NJ Urgent Care'},
{'Center Name': 'Hazlet, NJ Urgent Care'},
{'Center Name': 'Howell, NJ Urgent Care'},
{'Center Name': 'Ledgwood, NJ Urgent Care'},
{'Center Name': 'Linden, NJ Urgent Care'},
{'Center Name': 'Lodi, NJ Urgent Care'},
{'Center Name': 'Mount Ephraim, NJ Urgent Care'},
{'Center Name': 'Nutley, NJ Urgent Care'},
{'Center Name': 'Pennsville, NJ Urgent Care'},
{'Center Name': 'Rockaway, NJ Urgent Care'},
{'Center Name': 'Runnemede, NJ Urgent Care'},
{'Center Name': 'Springfield, NJ Urgent Care'},
{'Center Name': 'Totowa, NJ Urgent Care'},
{'Center Name': 'Vineland South, NJ Urgent Care'},
{'Center Name': 'Vineland, NJ Urgent Care'},
{'Center Name': 'Wall, NJ Urgent Care'},
{'Center Name': 'Watchung, NJ Urgent Care'},
{'Center Name': 'Willingboro, NJ Urgent Care'},
{'Center Name': 'Woodbury, NJ Urgent Care'},
{'Center Name': ''},
{'Center Name': 'Derby, CT Urgent Care'},
{'Center Name': 'Meriden, CT Urgent Care'},
{'Center Name': 'Middletown, CT Urgent Care'}]
推荐阅读
- reactjs - 在反应板编辑器中移动光标
- python - 如何使用 Python 请求模块上传一堆文件
- amazon-web-services - 比较 AWS CloudSearch 域中日期字段的年份部分
- google-apps-script - 谷歌表格:激活多项选择,其中范围基于数据长度
- optimistic-locking - Tarantool 有没有办法在执行更新之前检查元组的状态(乐观锁检查/CAS 模式)?
- java - 在 KCL 2.x ( Kinesis ) 下使用来自特定分片的记录
- ansible - 使用带有 ansible 的 SSH 密钥将文件从一个远程服务器复制到另一个
- calculated-columns - Spotfire:计算列以查找同一列中是否在 1 小时内发生不同事件
- sql - 使用相同的唯一标识符更新重复数据
- visual-studio-code - 可以为不受支持的语言的用户定义函数扩展 Visual Studio Code Intellisense/代码建议吗?(LISP/AutoLISP)