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
上一篇:智能家居


下一篇:用python 爬取网页图片