我的代码进入一个网站,并刮行信息(标题和时间)。
但是,有一个标记('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 don’t know how to scrape
print(title.text, tim.text, tex.text)
3条答案
按热度按时间agxfikkp1#
我检查了页面,发现有几个p标签,我建议使用find_elements_by_tag_name而不是
find_element_by_tag_name
(以获得所有p标签,包括您想要的p标签),并迭代所有p标签元素,然后加入文本内容并对其进行剥离。sirbozc52#
因为网页有几个
p
标签,所以最好使用.find_elements_by_class()
方法。将代码中的print
调用替换为:ztmd8pv53#
也许可以尝试使用不同的 find_elements_by_class......我不怎么使用Python,但是除非你已经使用了,否则试试这个。