鱼C论坛

 找回密码
 立即注册
查看: 2760|回复: 19

[已解决]如何下载非http开头的jpg文件

[复制链接]
发表于 2018-3-31 01:57:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助,Python 如何保存下载不是以http,https开头的jpg文件,我用了urlretrieve显示unknown url type: 'data/attachment/forum/201704/06/133258rhzwzrmtg2m2pgzr.jpg'
最佳答案
2018-3-31 14:27:37
fan1993423 发表于 2018-3-31 13:16
顺便问一下,这个r是不是一定要把里面的写完,还是只需哟把src=""这里面的写就可以找到图片并下载呢?
  1. import os
  2. import re
  3. import requests
  4. import urllib.request as ur
  5. def openurl(url):
  6.     req=ur.Request(url)
  7.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116')
  8.     response=ur.urlopen(req)
  9.     html=response.read().decode('gbk')
  10.     return html

  11.    
  12. def getimage(html):
  13.    
  14.     r=r'<ignore_js_op>.*?<img.*?file="(.*?)".*?/>.*?</ignore_js_op>'
  15.    
  16.     p=re.findall(r,html,re.S)
  17.     print(p)
  18.     for each in p:
  19.         f=each.split('/')[-1]
  20.         ur.urlretrieve("http://www.cl4.cc/"+each,f)
  21.         


  22.         
  23. if __name__=='__main__':
  24.     url='http://www.cl4.cc/thread-8196-1-1.html'
  25.     getimage(openurl(url))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-31 08:10:51 | 显示全部楼层
我觉得图片既然能在网上用,肯定要满足某个协议的,不知道LL的地址的完整版是什么。不会图片的地址就是
data/attachment/forum/201704/06/133258rhzwzrmtg2m2pgzr.jpg

吧,这个看上去是一个相对地址,前面应该还有协议头之类的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 09:39:49 From FishC Mobile | 显示全部楼层
mgsky1 发表于 2018-3-31 08:10
我觉得图片既然能在网上用,肯定要满足某个协议的,不知道LL的地址的完整版是什么。不会图片的地址就是

...

但是我看不到,这个网站是显示几张图,然后回复就可以看到隐藏的东西(回复要登陆账号,但是要钱才能注册账号)。这个是我看到能显示图片的src
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 09:43:10 From FishC Mobile | 显示全部楼层
mgsky1 发表于 2018-3-31 08:10
我觉得图片既然能在网上用,肯定要满足某个协议的,不知道LL的地址的完整版是什么。不会图片的地址就是

...

那请问怎么查隐藏的地址,我也觉得有隐藏的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 09:58:47 | 显示全部楼层
麻烦上代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 13:14:50 | 显示全部楼层

import os
import re
import requests
import urllib.request as ur
def openurl(url):
    req=ur.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116')
    response=ur.urlopen(req)
    html=response.read().decode('gbk')
    return html

   
def getimage(html):
    r=r'<img id="[^"]+" aid="\d+" src="([^"]+\.jpg)" zoomfile="[^"]+\.jpg" file="[^"]+\.jpg" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" width="600" alt="楚楚可怜的小学生萝莉音波最新高价收购的极品- 淘女吧资源站 " title="楚楚可怜的小学生萝莉音波最新高价收购的极品- 淘女吧资源站 " inpost="1" onmouseover="[^5]+" lazyloaded="true" height="336" initialized="true"'
  
   
    p=re.findall(r,html)
   
    for each in p:
        f=each.split('/')[-1]
        ur.urlretrieve(each,f)
        
        


        
if __name__=='__main__':
    url='http://www.cl4.cc/thread-8196-1-1.html'
    getimage(openurl(url))
        
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 13:16:56 | 显示全部楼层

顺便问一下,这个r是不是一定要把里面的写完,还是只需哟把src=""这里面的写就可以找到图片并下载呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 13:49:10 | 显示全部楼层
本帖最后由 chakyam 于 2018-3-31 13:51 编辑

游客,如果您要查看本帖隐藏内容请回复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 13:57:05 From FishC Mobile | 显示全部楼层
本帖最后由 fan1993423 于 2018-3-31 14:02 编辑
chakyam 发表于 2018-3-31 13:49
**** 本内容被作者隐藏 ****


我也不想,所以我都是问问题,主要是有鱼油问我代码,我才把这个代码贴上来了,你能不能帮我改一下代码,我现在遇到瓶颈了,当然我还刚开始接触这个爬虫,另外这个帖子怎么隐藏,我尽量不让这个帖子在公众出现
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 14:12:41 | 显示全部楼层
  1. [hide]
  2. 要隐藏的内容
  3. [/hide]
  4. 你找到的data/attachment/forum/201704/06/133258rhzwzrmtg2m2pgzr.jpg加上头部就能访问了,我没用python访问过,应该也是可以的
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 14:14:15 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 14:27:37 | 显示全部楼层    本楼为最佳答案   
fan1993423 发表于 2018-3-31 13:16
顺便问一下,这个r是不是一定要把里面的写完,还是只需哟把src=""这里面的写就可以找到图片并下载呢?
  1. import os
  2. import re
  3. import requests
  4. import urllib.request as ur
  5. def openurl(url):
  6.     req=ur.Request(url)
  7.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116')
  8.     response=ur.urlopen(req)
  9.     html=response.read().decode('gbk')
  10.     return html

  11.    
  12. def getimage(html):
  13.    
  14.     r=r'<ignore_js_op>.*?<img.*?file="(.*?)".*?/>.*?</ignore_js_op>'
  15.    
  16.     p=re.findall(r,html,re.S)
  17.     print(p)
  18.     for each in p:
  19.         f=each.split('/')[-1]
  20.         ur.urlretrieve("http://www.cl4.cc/"+each,f)
  21.         


  22.         
  23. if __name__=='__main__':
  24.     url='http://www.cl4.cc/thread-8196-1-1.html'
  25.     getimage(openurl(url))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 14:32:43 | 显示全部楼层

大佬,小弟膜拜一下,我先好好研读一下你的代码和我的代码的区别,另外这个网址隐藏的内容python有办法爬取到吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 14:40:46 | 显示全部楼层

大佬我刚看了下你的的代码,这个好像有非捕获组,这个网址看来对我们萌新还是有不少难度,你能稍微讲解一下吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 14:44:51 | 显示全部楼层
fan1993423 发表于 2018-3-31 14:32
大佬,小弟膜拜一下,我先好好研读一下你的代码和我的代码的区别,另外这个网址隐藏的内容python有办法爬 ...

re.S 换行当普通字符处理
(.*?) 一个组
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 14:48:35 | 显示全部楼层
ba21 发表于 2018-3-31 14:44
re.S 换行当普通字符处理
(.*?) 一个组

哦,为什么我那个不行了,我也是按照小甲鱼老师说的,这个没有双引号就想到用[^"]+,结果一直匹配不出来,另外最主要的是,我们用python有没有办法把网站中隐藏的内容给揪出来,毕竟以后很多重要的东西,那些公司都给保密了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 14:49:24 | 显示全部楼层
ba21 发表于 2018-3-31 14:44
re.S 换行当普通字符处理
(.*?) 一个组

毕竟这几张图片毕竟是现成的,可以点右键另存为。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 15:01:54 | 显示全部楼层
fan1993423 发表于 2018-3-31 14:48
哦,为什么我那个不行了,我也是按照小甲鱼老师说的,这个没有双引号就想到用[^"]+,结果一直匹配不出来{ ...

有办法。先慢慢学
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 15:09:35 From FishC Mobile | 显示全部楼层
ba21 发表于 2018-3-31 15:01
有办法。先慢慢学

好的,大佬,以后我有问题你要多回答我哈,我是萌新,另外我现在越来越感到普通的简单的,比如贴吧里面图片学了小甲鱼的视频后感觉没问题了,那怕网址在变化,但是网站动点手脚我就没法了,大佬有没有什么好的视频或者好的方法系统学习爬虫。求分享,另外大佬能不能发一下福利,把这个王者隐藏的内容爬出来。我现在肯定做不到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-31 17:31:26 | 显示全部楼层
有会的可以试着来写一下爬取这个被隐藏的内容的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-28 02:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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