鱼C论坛

 找回密码
 立即注册
查看: 4587|回复: 16

[已解决]爬取之后的图片显示不支持此文件格式

[复制链接]
发表于 2020-7-13 18:26:37 | 显示全部楼层 |阅读模式

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

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

x
import requests
import bs4
import os
import re
def open_url(url):
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
    response=requests.get(url,headers=headers)
    return response
def get_url(url):
    resp=targ=open_url(url)
    soup=bs4.BeautifulSoup(resp.text,'html.parser')
    targets=soup.find_all("li",class_="galleryli")
    uu=[]
    for each in targets:
        uu.append('https://www.nvshens.net'+each.div.a['href'])
    return uu
        
def get_pages(response):
    soup=bs4.BeautifulSoup(response.text,'html.parser')
    page1=soup.find_all('div',id="dinfo")
    # print(page1)
    for each in page1:
        pa=int(each.span.text[:-3])
        if pa%3:
            pag=pa//3+1
        else:
            pag=pa//3
    print(pag)
    return pag
def down_pages(url):
    req=open_url(url)
    # print(req.text)
    # soup=bs4.BeautifulSoup(req.text,'html.parser')
    # page1=soup.find_all('ul',id="hgallery")
    # print(page.text)
    p=r"img src='(.+?\.jpg)' alt="
    tar=re.findall(p,req.text)
    return tar
        
   
   


def main():
    os.mkdir('ll')
    os.chdir('ll')
    u=input('请输入网址:')
    tt=get_url(u)
    list1=[]
    for url in tt:
        res=open_url(url)
        pages=get_pages(res)
        for i in range(1,pages+1):
            ur=url+r'/'+str(i)+'.html'
            tar=down_pages(ur)
            for each in tar:
                list1.append(each)
    i=0
    print(list1)
    for n in list1:
        i+=1
        headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
        nn=requests.get(n,headers=headers,allow_redirects=False)
        with open(str(i)+'.jpg','wb') as f:
            f.write(nn.content)
            
   
if __name__=='__main__':
    main()
想试着爬取女生网的图片,但是下载之后有一部分可以打开 有一部分打不开,结果如图所示,这是为什么?
最佳答案
2020-7-13 19:29:38
首先jpg的后缀名是你给加上去的,实际上你爬到的图片二进制数据不一定都是jpg格式的数据流(也许是网站的奇怪反爬操作使你访问图片却收到了非图片数据,又或者是网站返回了一些混淆的数据等等,都有可能),所以就算加了jpg后缀它也不是图片,系统显示不支持此格式图片就说得通了
1594635874(1).png
1594635883(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-13 18:27:54 | 显示全部楼层
可能是文件被损坏或者文件扩展名有误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 18:28:54 | 显示全部楼层
你的输入链接发上来,测试下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 18:43:03 | 显示全部楼层
Twilight6 发表于 2020-7-13 18:28
你的输入链接发上来,测试下

https://www.nvshens.net/gallery/qingxin
运行到后面还会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 18:43:55 | 显示全部楼层
zltzlt 发表于 2020-7-13 18:27
可能是文件被损坏或者文件扩展名有误。

扩展名是没有问题的 为什么会文件损坏呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 18:49:17 | 显示全部楼层
zltzlt 发表于 2020-7-13 18:27
可能是文件被损坏或者文件扩展名有误。

离开这个问题这不是我们该看的

点评

哈哈  发表于 2020-7-13 19:02
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 18:49:55 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-13 18:49
离开这个问题这不是我们该看的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 19:00:36 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-13 18:49
离开这个问题这不是我们该看的

纯粹练习 下载完就删 相信我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 19:01:34 | 显示全部楼层




调试大致看了下你爬到的链接没什么毛病,不清楚到底是什么情况

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 19:03:21 | 显示全部楼层
Twilight6 发表于 2020-7-13 19:01
调试大致看了下你爬到的链接没什么毛病,不清楚到底是什么情况

也就是说 代码应该是没什么为题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 19:05:16 | 显示全部楼层
今天的我更强了 发表于 2020-7-13 19:03
也就是说 代码应该是没什么为题吗?



嗯,代码应该没毛病


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 19:29:38 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
首先jpg的后缀名是你给加上去的,实际上你爬到的图片二进制数据不一定都是jpg格式的数据流(也许是网站的奇怪反爬操作使你访问图片却收到了非图片数据,又或者是网站返回了一些混淆的数据等等,都有可能),所以就算加了jpg后缀它也不是图片,系统显示不支持此格式图片就说得通了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 21:07:57 | 显示全部楼层
万一是 .png 呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 21:11:57 | 显示全部楼层

我把所有的地址都打印出来了 是jpg的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 21:12:32 | 显示全部楼层
hrp 发表于 2020-7-13 19:29
首先jpg的后缀名是你给加上去的,实际上你爬到的图片二进制数据不一定都是jpg格式的数据流(也许是网站的奇 ...

好的 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 15:27:03 | 显示全部楼层
所以如何解决?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 21:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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