gpt4 book ai didi

python - 如何在 Scrapy 中迭代 div?

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:57 25 4
gpt4 key购买 nike

这可能是一个非常微不足道的问题,但我是 Scrapy 的新手。我试图为我的问题找到解决方案,但我看不出这段代码有什么问题。

我的目标是从给定网站上删除所有歌剧节目。每个节目的数据都在一个 div 中,类别为“row-fluid row-performance”。我试图遍历它们以检索它,但它不起作用。它为我提供了每次迭代中第一个 div 的内容(我得到了相同节目的 19 倍,而不是不同的项目)。

import scrapy
from ..items import ShowItem

class OperaSpider(scrapy.Spider):
name = "opera"
allowed_domains = ["http://www.opera.krakow.pl"]
start_urls = [
"http://www.opera.krakow.pl/pl/repertuar/na-afiszu/listopad"

]


def parse(self, response):
divs = response.xpath('//div[@class="row-fluid row-performance "]')
for div in divs:
item= ShowItem()
item['title'] = div.xpath('//h2[@class="item-title"]/a/text()').extract()
item['time'] = div.xpath('//div[@class="item-time vertical-center"]/div[@class="vcentered"]/text()').extract()
item['date'] = div.xpath('//div[@class="item-date vertical-center"]/div[@class="vcentered"]/text()').extract()
yield item

最佳答案

尝试将 for 循环内的 xpath 更改为以 .// 开头。也就是说,只需在双反斜杠前加一个点。您也可以尝试使用 extract_first() 而不是 extract() ,看看是否能获得更好的结果。

关于python - 如何在 Scrapy 中迭代 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47399985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com