scrapy 如何迭代表达式?

vaj7vani  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(158)

这与网页抓取有关,特别是与scrapy有关。我希望能够迭代表达式来创建我的项目。例如,假设我将项目类导入为“item”。为了随后存储项目,我必须编写如下代码:

item['item_name'] = response.xpath('xpath')

我的响应实际上是一个函数,它看起来像这样:

item['item_name'] = eval(xpath_function(n))

这是完美的。但是,我如何迭代创建多个不同名称的项目,而不必手动命名每个项目呢?下面的代码根本不起作用(我也不希望它起作用),但应该给予您了解我试图完成的工作:

for n in range(1, 10):
    f"item['item_name{n}'] = eval(xpath_function(n))"

基本上试图创建10个不同的项目名称item_name1-item_name10。希望这是有意义的,我感谢任何帮助。

whhtz7ly

whhtz7ly1#

如果你只是基于n的值为字典创建键,你可以尝试类似这样的操作:

for n in range(10): 
    item['item_name' + str(n+1)] = eval(xpath_function(n+1))

如果需要格式化数字(例如,包括前导零),可以使用f字符串,而不是像我那样连接字符串。
[NB所写for循环只能从1运行到9,因此我在答案中对此进行了修改。]

相关问题