【问题标题】:Using Scrapy and xpath to extract text使用 Scrapy 和 xpath 提取文本
【发布时间】:2020-08-13 14:49:29
【问题描述】:

我正在尝试使用 xpath 从以下 html 中提取文本:

<p class="event-meta" xpath="1">Nanizanka / <span itemprop="genre">Akcija</span>,

                        <span itemprop="partOfSeason" itemscope="" itemtype="http://schema.org/CreativeWorkSeason">
                        <span itemprop="seasonNumber">8</span>. sezona,
                        </span>

                        <span itemprop="episodeNumber">9</span>. del,

                United states of America


                    <br><i class="fa fa-clock-o"></i> <span>
                        51
                    </span> min |
                    IMDB: 7,3 |

                        <span>★</span>
                        <span>★</span>
                        <span>★</span>
                        <span>★</span>
                        <span>★</span>
                        <span>★</span>
                        <span>★</span>
                        <span class="hollow-star">★</span>
                        <span class="hollow-star">★</span>
                        <span class="hollow-star">★</span>


                </p>

我在提取美国和 IMDB 分数时遇到问题,因为它们没有任何标签? 我无法超越

response.xpath("//div[@class='row nogutter article']/div[@class='col-10']/main/article/p[@class='event-meta']//text()").extract()

因为我只需要将国家和 IMDB 分数作为两个单独的项目。

您的帮助将不胜感激。

【问题讨论】:

  • 试试//span[@itemprop="episodeNumber"]/following-sibling::text()

标签: xpath scrapy


【解决方案1】:
score = response.xpath('//text()[contains(., "IMDB:")]').re_first(r'IMDB:\s*(\S+)')
country = response.xpath('//span[@itemprop][last()]/following-sibling::text()').get()

【讨论】:

    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多