gpt4 book ai didi

python - Scrapy 中的项目编号

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:07 25 4
gpt4 key购买 nike

所以我有一个包含以下内容的 items.py:

class ScrapyItem(scrapy.Item):
source = scrapy.Field()
link = scrapy.Field()

json输出为:

[{"source": "Some source", "link":"www.somelink.com"},
{"source": "Some source again", "link":"www.somelink.org"}]

有没有办法将输出更改为:

[{"source1": "Some source", "link1":"www.somelink.com"},
{"source2": "Some source again", "link2":"www.somelink.org"}]

从文档中,我看到您可以操纵项目值,您可以对项目本身做同样的事情吗?

编辑

这是我用于输出带有 article_id item_field 的新代码

article_id = [1]
def parse_common(self, response):
feed = feedparser.parse(response.body)
for entry_n, entry in enumerate(feed.entries, start=article_id[-1]):
try:
item = NewsbyteItem()
item['source'] = response.url
item['title'] = lxml.html.fromstring(entry.title).text
item['link'] = entry.link
item['description'] = entry.description
item['article_id'] = '%d' % entry_n
article_id.append(entry_n)
request = Request(
entry.link,
callback=getattr(self, response.meta['method']),
dont_filter=response.meta.get('dont_filter', False)
)

request.meta['item'] = item
request.meta['entry'] = entry

yield request
except Exception as e:
print '%s: %s' % (type(e), e)
print entry

问题是 entry_n 在更改为另一个 url 时会重新启动。这就是使用该列表的原因。

最佳答案

我不建议您识别不同的项目来更改项目值的键。您可以使用字典来命名响应,例如:

output = [{"source": "Some source", "link":"www.somelink.com"}, {"source": "Some source again", "link":"www.somelink.org"}]
output_dict = {}
for counter, item in enumerate(output):
output_dict['item' + str(counter + 1)] = item
print output_dict

关于python - Scrapy 中的项目编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32859104/

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