将序列的第N个数字输入Scrapy Start URL' s

时间:2018-03-05 22:04:06

标签: python scrapy scrapy-spider

我正在寻找一种简短的方法来将序列的第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)
)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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增加多少。