scrapy框架技术:构造start_urls

#start_urls = ['http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-year-2018-0-1-%7B%7D'.format(i) for i in
range(1, 26)]
#以下是数据解析
def parse(self, response):
li_list = response.xpath('//ul[@class="bang_list clearfix bang_list_mode"]/li')
for li in li_list:
booknum = '2018第' + li.xpath('./div[1]/text()').extract_first()
bookname = li.xpath('./div[3]/a/text()').extract_first()
author = li.xpath('./div[5]/a/text()').extract_first()

问题:我想问这个start_url的2018这里,增加2019,2020和2021,然后booknum这里对应2019第、2020第、2021第,怎么构造呢?

img

需求
我想问这个start_url的2018这里,增加2019,2020和2021,然后booknum这里对应2019第、2020第、2021第,怎么构造呢?

解决方法
1、start_urls这里自己手动添加对应的2019、2020、2021urls值,或者加个循环来添加
2、修改这两行代码

for li in li_list:
    booknum = '2018第' + li.xpath('./div[1]/text()').extract_first()

改为:

i = 0 
for li in li_list:
    booknum = str(2018+i)+ '第' + li.xpath('./div[1]/text()').extract_first()
    i + =1

如有问题及时沟通