爬虫代码无误,运行无结果

# 爬虫

import requests

import jsonpath


page_list = [i for i in range(1,4)]

img_list = []

headers = {

        'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'

}

for page in page_list:

         url = 'https://m.huya.com/cache.php?m-Game&do=ajaxGetGameLive&gameId=2168&page={}&pageSize=120'.format(page)

data = requests.get(url,headers=headers).json()

img_url_list = jsonpath(data,'&..screenshot')

for img_url in img_url_list:

        img_list.append(img_url)

        img_url_set = set(img_list)

        for index,img_url in enumerate(img_url_set):

                data = requests.get(img_url,headers).content

                file_path = 'img/' + str(index + 1) + '.jpg'

                with open(file_path,'wb') as f:

                       print('第{}张下载完成'.format((index + 1))

运行后:

Process finished with exit code 1

  • 流芳
  • 流芳     2020-06-08 09:24:184楼

    额,你要这么想的话我也没办法,你把page合成那个链接放在浏览器看能不能打开吧。先试试再说

    +添加回复

  • 流芳
  • 流芳     2020-06-06 17:58:133楼

    你把请求放在for循环里面一个page就有一个请求呀。
    然后你的headers少了一些数据所以网页不给你真实的数据。
    .json报错是json解析失败。你把json()去掉打印data.text看一下获得的数据肯定是错的。
    问题就是headers,如果还不懂建议你去了解一下headers,然后看一下你的headers为什么只有user-agent,你如果是看别人的代码可以理解。但是如果你是抓包的话我觉得你可以把headers的其他参数都加上试试。再有问题直接发你的需求网址,描述清楚我写代码给你。

    +添加回复

  • 回复

    其实没有那么让人恐怖,就只是用这些代码写个爬虫图片下载而已,只是不知道哪里缺漏还是错误了

    爱比钻  作者 · 2020-06-06 23:59:08
  • 爱比钻
  • 爱比钻     2020-06-06 14:54:232楼

    1.png2.png3.png知道错哪了,但却不知道该怎么改,刚接触的一周的小白线上求解

    +添加回复

  • 流芳
  • 流芳     2020-06-06 13:39:051楼

    exit code 1 是报错了,而且左后一行你多了一个左括号。你的数据是抓包得到的数据,我建议你把那个包上面的所有headers都加上试试,特别注意referer这个参数,这是防盗链。你只加ua相当于用浏览器打开,你可以试一试你的浏览器打开你的url一定是没有数据的,所以是反爬了。headers注意,如果再有问题请说出你想爬的内容,和报错内容。

    +添加回复

  • 回复

    在上边,知道错哪了,但不知道该怎么改,请指教....

    爱比钻  作者 · 2020-06-06 14:55:43