找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 159|回复: 2

[求助] 【新人求助】Python 爬虫求助

2

主题

3

帖子

3

积分

贫民

积分
3
Dexter1203 发表于 2020-8-2 13:09:04 | 显示全部楼层 |阅读模式
我是学爬虫的新人,最近在B站看了一个Python爬虫教程之后,准备自己找个网站练手,图片下载地址找到了,但是发现无法下载下来,Python一爬图片就显示资源不存在
目标网址“https://www.nvshens.net/g/33032/”,我最终的目标是爬取高清大图,点击网页中的图片就能看到高清大图图片的地址我在网页中找到的是下面代码中的url 连接,但是我不知道为啥无法下载,浏览器 和 迅雷等下载器,直接下载该图片地址也无法下载。
求大神帮我分析一下,为啥我这无法下载,是不是图片地址找错了,求告知真正的地址是啥 如何找
  1. # -*- coding = utf-8 -*-
  2. # @time : 2020/7/15 19:29
  3. # @Author : Dexter1203
  4. # @File : test2.py
  5. # @Software : PyCharm

  6. import urllib.request
  7. import urllib

  8. head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
  9.             }
  10. url = 'https://img.onvshen.com:85/gallery/27912/33032/002.jpg'
  11. url2 = 'https://img.onvshen.com:85/gallery/27912/33032/s/0.jpg'
  12. # resource = requests.get(url)
  13. # print(type(resource))
  14. # urlretrieve(url,"2.jpg")
  15. # with open("2.jpg",mode="wb") as fh:
  16. #     fh.write(resource.content)

  17. urllib.request.urlretrieve(url,'1.jpg')
复制代码
错误代码:
urllib.error.HTTPError: HTTP Error 301: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
Moved Permanently





回复

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
QQ
猪不会转弯 发表于 2020-8-6 09:23:05 | 显示全部楼层
重定向的问题的话   可以禁止重定向   
requests的方法是
requests.get(url, allow_redirects=false)
没有使用过urllib
回复 支持 反对

使用道具 举报

2

主题

3

帖子

3

积分

贫民

积分
3
Dexter1203  楼主| 发表于 2020-8-8 09:41:42 | 显示全部楼层
  1. import requests

  2. headers = {
  3. 'Connection': 'keep-alive',
  4. 'Pragma': 'no-cache',
  5. 'Cache-Control': 'no-cache',
  6. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
  7. 'Accept': 'image/webp,image/apng,image/*,*/*;q=0.8',
  8. 'Sec-Fetch-Site': 'cross-site',
  9. 'Sec-Fetch-Mode': 'no-cors',
  10. 'Sec-Fetch-Dest': 'image',
  11. 'Referer': 'https://www.nvshens.net/g/33032/',
  12. 'Accept-Language': 'zh-CN,zh;q=0.9',
  13. }

  14. link = ['https://img.onvshen.com:85/gallery/27912/33032/0.jpg']
  15. print(link[0])


  16. with open('0.jpg','wb') as f:
  17.      f.write(requests.get(url=link,headers=headers).content)
复制代码


贴吧大神给出了解决办法,要在头部里面加一个 Referer,原理还不知道,后面再研究
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表