首页 > 解决方案 > 使用 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)

标签: pythoncssseleniumcss-selectors

解决方案


由于网页有多个p标签,因此最好使用该.find_elements_by_class()方法。将代码中的调用替换print为以下内容:

    print(title.text,tim.text)
    for t in tex:
        if t.text == '':
            continue
        print(t.text)

推荐阅读