gpt4 book ai didi

python - 使用scrapy,如何获取部分xpath解析结果?

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

这是我的蜘蛛部分:

def parse(self, response):

titles = HtmlXPathSelector(response).select('//li')
for title in titles:
item = EksidefeItem()
item['favori'] = title.select("//*[@id='entry-list']/li/@data-favorite-count").extract()
item['entry'] = ['<a href=https://eksisozluk.com%s'%a for a in title.select("//*[@class='entry-date permalink']/@href").extract()]
item['yazari'] = title.select("//*[@id='entry-list']/li/@data-author").extract()
item['basligi'] = title.select("//*[@id='topic']/h1/@data-title").extract()
item['tarih'] = title.select("//*[@id='entry-list']/li/footer/div[2]/a[1]/text()").extract()

return item

我从 item['tarih'] 获取日期和时间,但它不是准确的日期和时间,它里面还有另一个值。以下是从中解析数据的示例:

26.01.2017 20:04 ~ 20:07

我只想使用日期部分(左起 10 个字符)作为

26.01.2017

我怎样才能做到这一点?

谢谢

最佳答案

考虑使用item loaders 。您可以扩展 ItemLoader类并编写您自己的自定义项目加载器,如下所示。

from scrapy.loader import ItemLoader
from scrapy.loader.processors import TakeFirst, MapCompose

def tarih_modifier(value):
return value[:10]

class MyCustomLoader(ItemLoader):
default_output_processor = TakeFirst()
tarih_in = MapCompose(tarih_modifier)

您还可以在单​​独的模块中编写此类。现在在解析方法中您可以使用这个加载器类。

def parse(self, response):
l = MyCustomLoader(item=EksidefeItem(), response=response)
l.add_xpath('name', "//*[@id='entry-list']/li/footer/div[2]/a[1]/text()")
# add the rest
return l.load_item()

使用加载器类将为您提供比自定义值更方便的便利。

关于python - 使用scrapy,如何获取部分xpath解析结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934366/

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