无法使用我的scraper中定义的xpath获取项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用我的scraper中定义的xpath获取项目相关的知识,希望对你有一定的参考价值。

我试图创建两个xpaths来从一些元素中获取两个项目。然而,第一个是伟大的,但在第二个:我无法得到任何想法。任何有关这方面的帮助将不胜感激。

<div class="mdif">
    <ul>
        <li><b>Genre:</b>Thriller</li> 
        <li><b>Quality:</b></li>1080p  
    </ul>
</div>

我试过这样的:

from lxml.html import fromstring   
content="""
<div class="mdif">
    <ul>
        <li><b>Genre:</b>Thriller</li> 
        <li><b>Quality:</b></li>1080p  
    </ul>
</div>
"""
root = fromstring(content)
for items in root.xpath("//div[@class='mdif']"):
    genre = items.xpath(".//li/text()")[0]
    # quality = items.xpath(".//li/text()")[0]
    print(genre,quality)

当我运行上面的脚本时,它获取genre但是在quality的情况下我被卡住了。我想得到的输出是1080p

答案

尝试使用这个来获得质量价值:

quality = items.xpath("./ul/text()[position()=last()]")[0]

这个也可能适用:

quality = items.xpath(".//b[.='Quality:']/following::text()")[0]

以上是关于无法使用我的scraper中定义的xpath获取项目的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 Pythonista URL Scraper

无法使用xpath follow-sibling获取元素

无法使用 XPath 从网页获取价格

使用 Xpath 的 Puppeteer 选择器

如何在 xpath 中获取初始上下文位置和大小?

无法在 xpath 中获取文本(lxml/python)