将序列的第N个数字输入到Scrapy Start URL中

问题描述 投票:1回答:1

我正在寻找一种简短的方法来将序列的第N项输入到Scrapy start URL中。例如,这是添加第24个版本的较长版本:

   start_urls = ['https://www.example.com/us/shopping?items=24' ,
                 'https://www.example.com/us/shopping?items=48' ,
                 'https://www.example.com/us/shopping?items=72']

我发现这些网址模式对于电子商务网站来说很常见。对于顺序中的每个数字,以下工作正常,但是我无法为第N个数字更改它:

start_urls = (
    "https://www.example.com/us/shopping?items=%s" % page for page in xrange(0,20)
)

任何帮助将不胜感激。

python scrapy scrapy-spider
1个回答
4
投票

xrange中的第三个参数允许你提供一个step,它增加了多少。

我想这就是你要找的东西:

start_urls = [
    "https://www.example.com/us/shopping?items=%s" % page for page in xrange(24, 73, 24)
]

上面的代码将生成您在示例中给出的相同列表。

第一个参数(24)是从哪里开始,第二个参数(73)是停止的位置(独占,因此73停止在72),第三个参数(24)告诉xrange增加多少。

© www.soinside.com 2019 - 2024. All rights reserved.