例1.python抓取图片

2018-08-31  本文已影响0人  Dabbie

import urllib.request

import re

# py抓取页面图片并保存到本地

# 获取页面信息

def getHtml(url):

    html = urllib.request.urlopen(url).read()

    return html

# 通过正则获取图片

def getImg(html):

    reg = r'src="(.+?\.jpg)" pic_ext'

    # 括号表示分组,将括号的内容捕获到分组当中

    # .+表示匹配至少一个任意字符,问号?表示懒惰匹配,也就是匹配尽可能少的字符串。

    # .+?\.jpg合起来表示尽可能少匹配字符的匹配到.jpg,避免匹配范围超出src的范围

    # 这个括号也就可以匹配网页中图片的url了

    # " pic_ext #匹配" pic_ext

    imgre = re.compile(reg)

    imglist = re.findall(imgre, html)

    # 正则 re.findall的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组)

    # findall(pattern, string, flags=0)

    print(imglist)

    return imglist

html = getHtml("http://tieba.baidu.com/p/2460150866")

list = getImg(html.decode())

# 循环把图片存到本地

x = 0

for imgurl in list:

    print(x)

    urllib.request.urlretrieve(imgurl, r'%s.jpg' % x)

# %s意思是字符串参数,就是将变量的值传入到字符串里面,字符串后的'%'后就是写要传入的参数

    x += 1

# for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1

# urllib.urlretrieve()方法,直接将远程数据下载到本地,保存的位置默认为程序的存放目录

print(getImg(html))

上一篇下一篇

猜你喜欢

热点阅读