将http://tieba.baidu.com/p/5072919394 里的图片爬到本地。
版本 phthon 3.x
#coding=utf-8
import urllib.request
import re
def getHtml(url):
page=urllib.request.urlopen(url)
#page 是http.client.HTTPResponse object 无法直接读取里面内容,所以调用read方法,得到页面代码,再将bytes转成string类型
Html=str(page.read())
print("succeed in getting html:\n %s" %Html)
return Html
def getImg(Html):
# (?<=pattern) 反向肯定预查,与正向肯定预查类拟,只是方向相反。例如,“(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。
img_re = re.compile(r'(?<=src=")\S+?jpg')
img_list=img_re.findall(Html)
for i in range(len(img_list)):
print("img_list[%d]=%s" % (i,img_list[i]))
#根据图片url地址,用urllib.request.retrieve下载到本地
urllib.request.urlretrieve(img_list[i], '%s.jpg' % i)
if __name__=="__main__":
url="http://tieba.baidu.com/p/5072919394"
html=getHtml(url)
getImg(html)