喜欢逛贴吧的小伙伴,在看到帖子里边有自己想要的图片的时候(特别是多图的那种),如果一张一张的按“另存为”,浪费时间不说,还特别麻烦,所以福利来啦~
由于本博客只是用来记录学习,所以没有写多少说明解释的文字描述,只是添加了必要的注释。
代码如下:
```
# -*- coding:utf-8 -*-
from urllib import request
import chardet
import re
# 获取网页源代码
def getHtml(url):
page = request.urlopen(url)
html = page.read()
return html
# 获取图片地址
def getImg(html):
# 正则匹配
reg = r'src="([.*\S]*\.jpg)" size="\d+" changedsize="true"'
imgre = re.compile(reg);
img_list = re.findall(imgre, html)
# 返回图片地址列表
return img_list
if __name__ == '__main__':
# 帖子地址
url = 'https://tieba.baidu.com/p/5260228738?pn='
# 保存图片地址的列表
imgListSum = []
# 遍历每一页,获取对应页面的图片地址
for i in range(1, 12):
# 拼接网页分页地址
html = getHtml(url + str(i)).decode('utf-8')
# 获取网页源代码
imgList = getImg(html)
# 获取图片地址并添加到列表中
imgListSum.append(imgList)
# 遍历下载图片
# 按顺序自加给图片命名
imgName = 0
for i in imgListSum:
for j in i:
# 验证(打印图片地址)
print(j)
# 合成图片的保存路径和名字,并下载
f = open('pic/' + str(imgName) + '.jpg', 'wb')
f.write(request.urlopen(j).read())
f.close()
# 命名 + 1
imgName += 1
# 结束标志
print('Finish')
为了安全起见,应该加上异常捕捉语句,可以自己加一下哟~