永不秃头的ssf
2019-02-16 20:38
采纳率: 50%
浏览 2.0k

爬虫爬取图片时爬取的不完整的相关问题

我想要爬取lol官网的一些特定图片,不管是英雄图标还是活动图标:

图片说明

图片说明

由于电脑截图出了点问题,所以只能手机拍照,不好意思。

可以看到这个网页里面有很多这种图片,而且sec都是有类似的格式,以//ossweb-img.qq.com开头

我想爬取这些图片

我的代码:

import os
from urllib.request import urlopen
from urllib.request import urlretrieve
from bs4 import BeautifulSoup
import re

baseURL="http://lol.qq.com/main.shtml?ADTAG=lolweb.v3.index"

html=urlopen("https://lol.qq.com/main.shtml?ADTAG=lolweb.v3.index")

bsobj=BeautifulSoup(html,"lxml")

downloadlist=bsobj.findAll(src=re.compile(".*ossweb-img.qq.com.*png"))

print(downloadlist)
a=1
def cbk(a,b,c):        下载进度函数
    per=100.0*a*b/c
    if per>=100:
        per=100
    print ('%.2f'%per)

for download in downloadlist:
    fileURL=download['src']
    if fileURL is not None:
        fileURL="http:"+fileURL
        print(fileURL)
        urlretrieve(fileURL,"download"+str(a)+".png",cbk) 
        a=a+1

但是它只下载了该网页第一个div容器里的图片,其他的都没下载,这时为什么

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • HuaCode 2019-02-16 22:24
    已采纳

    图片说明
    我运行了出来了一些,但是还是没有出来完全,主要是你这个写的我感觉有点摸不着头脑^_^,我发现的一个问题就是你的匹配过程中没有匹配完全,因为你的网站中的图的类型有三种:png,jpg和gif,**(downloadlist=bsobj.findAll(src=re.compile('.*ossweb-img.qq.com/.*(png|jpg|gif)'**))
    )我建议你用一个框架,这样写起来会很容易,scrapy框架,对于初学者也很容易,给你推荐一篇博文:https://blog.csdn.net/HuaCode/article/details/79094541

    打赏 评论

相关推荐 更多相似问题