我正在寻找一种简短的方法来将序列的第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)
)
非常感谢任何帮助。
答案 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增加多少。