博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
花瓣网图片爬取
阅读量:5119 次
发布时间:2019-06-13

本文共 1939 字,大约阅读时间需要 6 分钟。

 
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 html12 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 = 026     for pinId in id_list:27         # 获取跳转网页网址28         url_str = r'http://huaban.com/pins/%s/' % pinId29         # 获取点击图片时弹出网页的源码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             continue40         print("获取成功!%s" % img_url)41         x += 142     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             break58         else:59             print('%s已存在重新输入!' % filePath)60     return filePath61 62 if __name__ == '__main__':63     html = get_html("http://huaban.com/favorite/beauty/")64     get_image(createPath(), html) #调用创建文件夹方法并返回文件夹路径和传入网址

转载于:https://www.cnblogs.com/lbx6935/p/9618460.html

你可能感兴趣的文章
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
HTML+CSS学习笔记(九)
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>