python - 使用 Python 和 Selenium 按标签获取多个元素
问题描述
我的代码进入一个网站,并抓取信息行(标题和时间)。
但是,有一个标签('p')我不确定如何使用'get element by'。
在网站上,它是每个标题下的信息。
到目前为止,这是我的代码
import time
from selenium import webdriver
from bs4 import BeautifulSoup
import requests
driver = webdriver.Chrome()
driver.get('https://www.nutritioncare.org/ASPEN21Schedule/#tab03_19')
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
eachRow = driver.find_elements_by_class_name('timeline__item')
time.sleep(1)
for item in eachRow:
time.sleep(1)
title=item.find_element_by_class_name('timeline__item-title')
tim=item.find_element_by_class_name('timeline__item-time')
tex=item.find_element_by_tag_name('p') # this is the part i dont know how to scrape
print(title.text,tim.text,tex.text)
解决方案
由于网页有多个p
标签,因此最好使用该.find_elements_by_class()
方法。将代码中的调用替换print
为以下内容:
print(title.text,tim.text)
for t in tex:
if t.text == '':
continue
print(t.text)
推荐阅读
- typescript - Typescript - 默认泛型为另一个泛型的属性
- javascript - 如何根据特定键的值访问数组中的对象?
- javascript - 在 React 组件中使用双箭头函数处理模糊
- python - 如何在 Flask SQLAlchemy 中从具有 2 个主键的表中查询一行?
- javascript - 与 javascript Promise 斗争
- c - 如何跟踪 pthread C
- f# - 在 f# 中发送记录时 Seq.map 错误
- node.js - 开放层 - 将点格式化为多面体
- node.js - 成员计数频道显示为 0 个成员
- python - 以字典为参数的 Python 多处理问题