m0_54686842 2022-05-14 23:53 采纳率: 0%
浏览 46
已结题

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

  • 写回答

1条回答 默认 最新

  • hyh123a 全栈领域新星创作者 2022-05-15 07:44
    关注

    需求
    我想问这个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
    

    如有问题及时沟通

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月18日
  • 创建了问题 5月14日

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)