爬虫如何用一个循环写出4个变量

https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=28286&from_mid=1&&format=json&ie=utf-8&oe=utf-8&query=%E7%94%B5%E5%BD%B1&sort_key=16&sort_type=1&stat0=%E7%88%B1%E6%83%85&stat1=%E5%A4%A7%E9%99%86&stat2=2017&stat3=&pn=0

这里面 stat0 stat1 stat2 都固定有9种左右
pn是以8的倍数递增

urlbase = "https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=28286&from_mid=1&&format=json&ie=utf-8&oe=utf-8&query=%E7%94%B5%E5%BD%B1&sort_key=16&sort_type=1&stat0=&stat1=&stat2=&stat3=&pn="
urllist =[]
for i in range(1,124):
        url = urlbase+str(8*i)
        urllist.append(url)

现在想写一个循环能够把所有种类都放入一个list 不知道怎么办了= =

1个回答

这里你可以用format来实现,在链接中置入占位符{},后面统一赋值:

urlbase = "https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=28286&from_mid=1&&format=json&ie=utf-8&oe=utf-8&query=%E7%94%B5%E5%BD%B1&sort_key=16&sort_type=1&stat0={0}&stat1={1}&stat2={2}&stat3={3}&pn={4}"

urllist =[]
for i in range(1,124):
    stat0 = i   # 定义值,我不知道你的值是怎么定义的,用i举例
    stat1 = i
    stat2 = i
    stat3 = i
    pn = 8*i
    url = urlbase.format(stat0, stat1, stat2, stat3, pn)
    urllist.append(url)
zhengyajun_email
Yajun-Z 回复woaiyibao: 是的,如果你几个值都是不同的规则,那你就要用多重循环了
大约一年之前 回复
woaiyibao
woaiyibao 回复Yajun-Z: 感觉要用多重for循环 我试试
大约一年之前 回复
woaiyibao
woaiyibao 回复Yajun-Z: 可是这样他的sta1 sta2是不变化的鸭 直接被写死在里面了 不能单独取一个出来 只有pn在变化= =
大约一年之前 回复
zhengyajun_email
Yajun-Z 回复woaiyibao: 你写成stat1 = ' [%%E7%%88%B1%E6%83%85,%E5%96%9C%E5%89%A7,%E5%8A%A8%E4%BD%9C]'就不会了,否则会被认为是列表,所以会报错
大约一年之前 回复
woaiyibao
woaiyibao 直接写成stat0 = [%%E7%%88%B1%E6%83%85,%E5%96%9C%E5%89%A7,%E5%8A%A8%E4%BD%9C]好像会报错 是因为%号吗
大约一年之前 回复
woaiyibao
woaiyibao sta0和sta1都是 stat0=%E7%88%B1%E6%83%85& stat0=%E5%96%9C%E5%89%A7&这样的urldecode码
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐