#getjpg.py
#之前是urllib,3之后是urllib.request
import urllib.request
import re
#得到html页面的所有数据
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
return html;
#获取得到的html页面里面的图片
def getImg(html):
#reg=r'src="(.*?\.jpg)"'
reg = r'src="(.+?\.jpg)" pic_ext'
#re.compile 将正则表达式转换为模式对象,可以实现更有效率的匹配。
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
#将页面筛选的数据保存到本地
x = 0
for imgurl in imglist:
urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
return imglist
#原因为Python3 findall数据类型用bytes类型,因此在正则表达式前应添加html = html.decode('utf-8')
html = getHtml("http://tieba.baidu.com/p/2460150866").decode('utf-8')
print(getImg(html))
#之前是urllib,3之后是urllib.request
import urllib.request
import re
#得到html页面的所有数据
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
return html;
#获取得到的html页面里面的图片
def getImg(html):
#reg=r'src="(.*?\.jpg)"'
reg = r'src="(.+?\.jpg)" pic_ext'
#re.compile 将正则表达式转换为模式对象,可以实现更有效率的匹配。
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
#将页面筛选的数据保存到本地
x = 0
for imgurl in imglist:
urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
return imglist
#原因为Python3 findall数据类型用bytes类型,因此在正则表达式前应添加html = html.decode('utf-8')
html = getHtml("http://tieba.baidu.com/p/2460150866").decode('utf-8')
print(getImg(html))