gpt4 book ai didi

python - 将数据导出到 csv 时,我的输出可能是由于制表符和空格而困惑

转载 作者:太空宇宙 更新时间:2023-11-03 16:13:01 24 4
gpt4 key购买 nike

class Job(Item):
a_title = Field()
b_url = Field()
c_date = Field()
d_pub = Field()

class stage(Spider):
name = 'jobs'
start_urls = ['http://www.stagiaire.com/offres-stages.html/']

def parse(self, response):

for i in response.css('.info-offre'):

title = i.css('.titleads::text').extract()
url = i.css('.titleads::attr(href)').extract()
date = i.css('.date-offre.tip::text').extract()
pub = i.css('.content-1+ .content-1 .date-offre::text').extract()

yield Job(a_title=title, b_url=url, c_date=date, d_pub=pub)

this my output

最佳答案

由于您没有使用 scrapy ItemLoader,因此您将具体列表放入您可能期望单个元素的结果中。要解决此问题,请使用 extract_first() 而不是 extract() 来仅获取第一个 xpath 选择。

在你的情况下应该是:

title = i.css('.titleads::text').extract_first('')  # defaults to ''
url = i.css('.titleads::attr(href)').extract_first('').strip() # get rid of spaces and /n etc.
date = i.css('.date-offre.tip::text').extract_first('')
pub = i.css('.content-1+ .content-1 .date-offre::text').extract_first('')

实际上,您似乎想使用 ItemLoader在这里清理换行符等的所有字段。

from scrapy.loader import ItemLoader
from scrapy import Item, Field
from scrapy.loader.processors import Compose, TakeFirst

class MyItem(scrapy.Item):
title = Field()

class MyItemLoader(ItemLoader):
default_item_class = MyItem
# this will process every field in the item, take first element and remove all newlines and trailing spaces
default_output_processor = Compose(TakeFirst(),
lambda v: v.replace('\n','').strip()) # get rid of new lines

这可能看起来很多,但项目加载器只是项目对象的包装器,当您将值放入其中或将其取出时,它们会执行某些操作。在上面的示例中,它将处理所有值,如果它是列表,则获取第一个元素并删除任何换行符。

然后当创建加载器并加载某些字段时!

loader = MyItemLoader(selector=response)
loader.add_css('title', '.titleads::text')
loader.add_css('url', '.titleads::attr(href)')
loader.add_css('date', '.date-offre.tip::text')
loader.add_css('pub', '.content-1+ .content-1 .date-offre::text')
return loader.load_item()

关于python - 将数据导出到 csv 时,我的输出可能是由于制表符和空格而困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103075/

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