爬取之后的图片显示不支持此文件格式
import requestsimport 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()
想试着爬取女生网的图片,但是下载之后有一部分可以打开 有一部分打不开,结果如图所示,这是为什么? 可能是文件被损坏或者文件扩展名有误。 你的输入链接发上来,测试下 Twilight6 发表于 2020-7-13 18:28
你的输入链接发上来,测试下
https://www.nvshens.net/gallery/qingxin
运行到后面还会报错 zltzlt 发表于 2020-7-13 18:27
可能是文件被损坏或者文件扩展名有误。
扩展名是没有问题的 为什么会文件损坏呢? zltzlt 发表于 2020-7-13 18:27
可能是文件被损坏或者文件扩展名有误。
离开这个问题{:10_277:}这不是我们该看的 永恒的蓝色梦想 发表于 2020-7-13 18:49
离开这个问题这不是我们该看的
{:10_256:} 永恒的蓝色梦想 发表于 2020-7-13 18:49
离开这个问题这不是我们该看的
纯粹练习 下载完就删 相信我{:10_260:} 今天的我更强了 发表于 2020-7-13 18:43
https://www.nvshens.net/gallery/qingxin
运行到后面还会报错
调试大致看了下你爬到的链接没什么毛病,不清楚到底是什么情况
Twilight6 发表于 2020-7-13 19:01
调试大致看了下你爬到的链接没什么毛病,不清楚到底是什么情况
也就是说 代码应该是没什么为题吗? 今天的我更强了 发表于 2020-7-13 19:03
也就是说 代码应该是没什么为题吗?
嗯,代码应该没毛病
首先jpg的后缀名是你给加上去的,实际上你爬到的图片二进制数据不一定都是jpg格式的数据流(也许是网站的奇怪反爬操作使你访问图片却收到了非图片数据,又或者是网站返回了一些混淆的数据等等,都有可能),所以就算加了jpg后缀它也不是图片,系统显示不支持此格式图片就说得通了 万一是 .png 呢? liuzhengyuan 发表于 2020-7-13 21:07
万一是 .png 呢?
我把所有的地址都打印出来了 是jpg的{:10_266:} hrp 发表于 2020-7-13 19:29
首先jpg的后缀名是你给加上去的,实际上你爬到的图片二进制数据不一定都是jpg格式的数据流(也许是网站的奇 ...
好的 谢谢 所以如何解决?
页:
[1]