思路:先访问网页,获得html,然后将网页中符合图片的地址的正则表达式的图片的下载下来
代码:
import urllib.request
import re
def open_url(url):
req=urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')
page=urllib.request.urlopen(req)
html=page.read().decode('utf-8')
return html
def get_img(html):
p=r'<img class="BDE_Image" src="([^"]+\.jpg)"'
#p=r'<img class="BDE_Image" pic_type="0" width="500" height="375" src="[^"]+\.jpg"'
imglist=re.findall(p,html)
'''
for each in imglist:
print(each)
'''
for each in imglist:
filename=each.split("/")[-1] #得到文件名
urllib.request.urlretrieve(each,filename,None)#获得内容,自动下载地址
if __name__=='__main__':
url="https://tieba.baidu.com/p/3563409202"
#url="https://tieba.baidu.com/p/5137316528"
html=open_url(url)
get_img(html)