网上的代码基本上都是python2,这里的代码使用的是python3注意没有urllib2这个库了。
要先做几个个准备工作:
①找到有图片的网站
②指定电脑保存路径
③利用浏览器工具查看网页代码中图片的保存路径(非常重要,如果错误可能抓取不到)
下面给出代码:
注意看注释
import re
import urllib.request # Python2中使用的是urllib2
import urllib
import os
def getHtml(url):
'获取网站地址'
page = urllib.request.urlopen(url)
html = page.read()
return html.decode('UTF-8')
def getImg(html):
'图片地址注意要从浏览器中查看网页源代码找出图片路径'
# 要加括号,作为元组返回
#reg = r'src="(.+?\.jpg)" pic_ext' # 某个贴吧的图片
reg = r'data-progressive="(.+?\.jpg)" ' # Bing壁纸合集抓取地址
# reg = r'src="(.+?\.jpg)" ' # 我的网站图片地址
# reg = r'zoomfile="(.+?\.jpg)" ' # 威锋网手机壁纸
imgre = re.compile(reg)
imglist = imgre.findall(html)
x = 0
path = 'E:\\Temporary\\new' # 输入保存文件的目录地址
if not os.path.isdir(path):
os.makedirs(path) # 检查是否存在地址,如果不存在将自动创建文件夹目录
paths = path + '\\' # 保存在test路径下
for imgurl in imglist:
urllib.request.urlretrieve(imgurl, '{}{}.jpg'.format(paths, x))
x = x + 1
if __name__ == '__main__':
# html = getHtml("http://bbs.feng.com/read-htm-tid-10616371.html") # 威锋网手机壁纸
# html = getHtml("http://www.omegaxyz.com/") # 我的网站图片地址
html = getHtml("https://bing.ioliu.cn/ranking") # Bing壁纸合集抓取地址
# html = getHtml("http://tieba.baidu.com/p/2460150866") # 某个贴吧的图片
getImg(html)
注意以上代码在pycharm python3.6.2环境运行
效果截图: