从一个网页爬取图片已经解决,现在想要把这个用户发的图片全部爬取。
首先:先找到这个用户的发帖页面:
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