python爬取网页图片(二)

从一个网页爬取图片已经解决,现在想要把这个用户发的图片全部爬取。

首先:先找到这个用户的发帖页面:

http://www.acfun.cn/u/1094623.aspx#page=1

然后从这个页面中爬取每个帖子页面的链接

然后重复(一)的过程

源码:

from urllib.request import urlopen
from urllib.request import urlretrieve
from bs4 import BeautifulSoup as da
import re
import os
import shutil
name=0
print('这是一个爬虫程序,爬取的是壁纸,下载地址是:d:/tupianpachongtest')
print('下载图片很多,若要中断:Ctrl+C-----------wanglei')
try:
     os.mkdir(r'd:/tupianpachongtest')#初始化文件夹
except FileExistsError as e:
     shutil.rmtree('d:/tupianpachongtest')
     os.mkdir(r'd:/tupianpachongtest')
def get_urllist():#获取每期的网址
     url0='http://www.acfun.cn'
     urllist=[]
     page=1
     while page <=11:
          url="http://www.acfun.cn/u/1094623.aspx#page="+str(page)
          html= urlopen(url)
          bs0bj=da(html,"lxml")
          imglist = bs0bj.findAll("a",{"href":re.compile("/a/ac")})
     #imgdict=dict(imglist.attrs)
     #imgt=imgdict['herf']
     #print(type(imglist))
          for img in imglist:
               imgdict=dict(img.attrs)
               imgt=imgdict['href']
               urllist.append(url0+imgt)
          page +=1
     return(urllist)#图片网址列表
urllist=get_urllist()
ulist=[]
def getlink(url):#获取图片链接
    html= urlopen(url)
    bs0bj=da(html,"lxml")
    imglist = bs0bj.findAll("img",{"src":re.compile("http://imgs.*?live.*?jpg")})            
    for img in imglist:
        imgdict=dict(img.attrs)
        imgt=imgdict['src']
        ulist.append(imgt)
    return(ulist)
s=1
print('爬取进度:0%')
for url0 in urllist:#对每个网址提取图片链接
     imgurllist=getlink(url0)
     b=len(imgurllist)
     #os.mkdir(r'd:/tupianpachongtest/%s'%s)
     for url in imgurllist:#下载每个链接并保存
          #urlretrieve(url,'d:\tupianpachongtest\%s\%s.jpg'%(s,name))
          urlretrieve(url,'d:\tupianpachongtest\%s.jpg'%name)
          name+=1
          #print(int((name/len(imgurllist))*100),'%')
     print('爬取进度:',end='')     
     print(int((s/len(urllist))*100),'%')
     s=s+1
原文地址:https://www.cnblogs.com/wanglei0103/p/6844242.html