花瓣网图片爬取

1 import urllib.request 2 import re 3 import os 4 import datetime 5 import easygui 6 7 # 获取网页 8 def get_html(url): 9 page = urllib.request.urlopen(url) 10 html = page.read().decode(\'utf-8\') #需要解码 11 return html 12 13 # 下载图片 14 def get_image(path,html): 15 # 获取HTML源码里面的app.page["pins"]部分,主要图片ID位于此部分 16 get_app_page_pins = re.compile(r\'app\.page\["pins"\].*?;\', re.S) 17 get_str = re.findall(get_app_page_pins, html)[0] 18 19 pin_id = r\'"pin_id":(\d+)\' 20 pin_id_re = re.compile(pin_id) 21 22 # 获取图片ID,保存在列表中 23 id_list = re.findall(pin_id_re,get_str) 24 25 x = 0 26 for pinId in id_list: 27 # 获取跳转网页网址 28 url_str = r\'%s/\' % pinId 29 # 获取点击图片时弹出网页的源码 30 pinId_source = get_html(url_str) 31 # 解析源码,获取原图片的网址 32 img_url_re = re.compile(\'main-image.*?src="(.*?)"\', re.S) 33 img_url_list = re.findall(img_url_re, pinId_source) 34 try: 35 img_url = \'http:\' + img_url_list[0] 36 urllib.request.urlretrieve(img_url, path + \'\%s.jpg\' % x) 37 except: 38 print("获取图片:%s失败,跳过,获取下一张。" % img_url) 39 continue 40 print("获取成功!%s" % img_url) 41 x += 1 42 print("保存图片成功!") 43 44 # 创建文件夹路径 45 def createPath(): 46 while True: 47 print(\'选择你要保存的路径\') 48 path = easygui.diropenbox() 49 50 filePath = path + "\\" + str(datetime.datetime.now().strftime(\'%Y-%m-%d %H.%M.%S\')) 51 52 isExists = os.path.exists(filePath) 53 if not isExists: 54 # 创建目录 55 os.makedirs(filePath) 56 print(\'%s创建成功!\' % filePath) 57 break 58 else: 59 print(\'%s已存在重新输入!\' % filePath) 60 return filePath 61 62 if __name__ == \'__main__\': 63 html = get_html("") 64 get_image(createPath(), html) #调用创建文件夹方法并返回文件夹路径和传入网址

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzpgx.html