品易云推流 关闭

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

# 爬虫

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

6 回答  ·  1062 阅读  ·  0 收藏
品易云推流
  • 全部回答 6
  • 流芳
  • 流芳      2020-06-08 09:24:18

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

    • 评论
    • 分享

  • 流芳
  • 流芳      2020-06-06 17:58:13

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

    • 评论
    • 分享

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

  • 爱比钻
  • 爱比钻      2020-06-06 14:54:23

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

    • 评论
    • 分享

  • 流芳
  • 流芳      2020-06-06 13:39:05

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

    • 评论
    • 分享

  • 爱比钻: 在上边,知道错哪了,但不知道该怎么改,请指教....