lxml 忽略部分 HTML 标记

lxml ignore part of HTML tag

提问人:Moder New 提问时间:3/26/2021 更新时间:3/26/2021 访问量:78

问:

好的,所以我有这样的 HTML 代码:

<span class="lista_td_calendar" rel="1617096300">finished</span>

我想使用 lxml 获取它,尽管这个类有很多跨度,并且每个跨度都有不同的属性,我写了这样的东西:rel

from lxml import html
import requests

page = requests.get(link)
tree = html.fromstring(page.content)

series = tree.xpath('//span[@class="lista_td_calendar"]/text()')
print(series)

虽然它没有获取任何东西,但有没有办法让它不依赖于争论?rel

python html 解析 lxml

评论

0赞 sammy 3/26/2021
只是使用而不是怎么样?喜欢这个-.cssselect().xpathtree.cssselect('span.lista_td_calendar')
0赞 Moder New 3/26/2021
@sammy 我应该用 打印它,尽管它为我返回 epty 字符串.text_content()
0赞 sammy 3/26/2021
检查并查看是否有您想要的内容。您可能需要检查网站并使用page.textselenium
0赞 Moder New 3/26/2021
好的,我明白了有什么问题,它是js更改的部分,所以它在初始化时是空的,谢谢你的帮助

答:

1赞 Moder New 3/26/2021 #1

问题是我试图达到的值是由 javascript 生成的,因此无法通过请求模块访问,使用 selenium 解决了这个问题

from selenium.webdriver.chrome.options import Options
from selenium import webdriver


chrome_options = Options()
chrome_options.add_argument("--headless")

driver = webdriver.Chrome(options=chrome_options)
driver.get('https://blackclover.wbijam.pl/pierwsza_seria-170.html')

elements = driver.find_elements_by_class_name('lista_td_calendar')