好玩系列之python爬取图片
2017-07-20 23:27
288 查看
环境:python3.6+PyCharm2017
主要模块:re(正则表达式)、urllib.request(读取web页面数据接口)
需要爬去图片的地址:http://699pic.com/zhuanti/hangpai.html
实现效果:
1、直接先上代码
#urllib模块提供了读取Web页面数据的接口
import urllib.request
#re模块主要包含了正则表达式
import re
#定义一个getHtml()函数
def get_Html(url):
page = urllib.request.urlopen(url) # urllib.urlopen()方法用于打开一个URL地址
html = page.read() # read()方法用于读取URL上的数据,返回的是byte
# print(type(html))
html = html.decode('utf-8')
with open("file", 'w',encoding='utf-8') as new:# 将html保存为file文件
new.write(html)
return html
def get_Image(html):
reg = r'data-original="(http.*?.jpg)"'# 正则表达式,得到图片地址
#匹配data-original="http://img95.699pic.com/photo/50013/7645.jpg_wh300.jpg"
print(reg)
imgre = re.compile(reg) # re.compile() 可以把正则表达式编译成一个正则表达式对象.
imglist = re.findall(imgre, html) # re.findall() 方法读取html 中包含 imgre(正则表达式)的数据
x = 0
for imgurl in imglist:
#把筛选的图片地址通过for循环遍历并保存到本地
urllib.request.urlretrieve(imgurl, 'E:\pytupian\%s.jpg' % x)
#核心是urllib.urlretrieve()方法,直接将远程数据下载到本地,图片通过x依次递增命名
x += 1
html = get_Html("http://699pic.com/zhuanti/hangpai.html")
get_Image(html)
2、简单分析和提示
其实非常简单就是两个函数:get_html(得到html文件)、get_Image(下载文件)
第一步:用浏览器查看源代码,找到图片地址,一般以“.jpg”结尾,比如我爬的网址源代码
第二步:就是用正则匹配这个地址
这里教大家一个小秘诀,大家都知道正则表达式比较绕,有一个文本工具Notepad++,查找一下,简单方便!
第三步:就是去这个地址下载下来就好
其实非常简单就是两个函数:get_html(得到html文件)、get_Image(下载图片)
主要模块:re(正则表达式)、urllib.request(读取web页面数据接口)
需要爬去图片的地址:http://699pic.com/zhuanti/hangpai.html
实现效果:
1、直接先上代码
#urllib模块提供了读取Web页面数据的接口
import urllib.request
#re模块主要包含了正则表达式
import re
#定义一个getHtml()函数
def get_Html(url):
page = urllib.request.urlopen(url) # urllib.urlopen()方法用于打开一个URL地址
html = page.read() # read()方法用于读取URL上的数据,返回的是byte
# print(type(html))
html = html.decode('utf-8')
with open("file", 'w',encoding='utf-8') as new:# 将html保存为file文件
new.write(html)
return html
def get_Image(html):
reg = r'data-original="(http.*?.jpg)"'# 正则表达式,得到图片地址
#匹配data-original="http://img95.699pic.com/photo/50013/7645.jpg_wh300.jpg"
print(reg)
imgre = re.compile(reg) # re.compile() 可以把正则表达式编译成一个正则表达式对象.
imglist = re.findall(imgre, html) # re.findall() 方法读取html 中包含 imgre(正则表达式)的数据
x = 0
for imgurl in imglist:
#把筛选的图片地址通过for循环遍历并保存到本地
urllib.request.urlretrieve(imgurl, 'E:\pytupian\%s.jpg' % x)
#核心是urllib.urlretrieve()方法,直接将远程数据下载到本地,图片通过x依次递增命名
x += 1
html = get_Html("http://699pic.com/zhuanti/hangpai.html")
get_Image(html)
2、简单分析和提示
其实非常简单就是两个函数:get_html(得到html文件)、get_Image(下载文件)
第一步:用浏览器查看源代码,找到图片地址,一般以“.jpg”结尾,比如我爬的网址源代码
第二步:就是用正则匹配这个地址
这里教大家一个小秘诀,大家都知道正则表达式比较绕,有一个文本工具Notepad++,查找一下,简单方便!
第三步:就是去这个地址下载下来就好
其实非常简单就是两个函数:get_html(得到html文件)、get_Image(下载图片)
相关文章推荐
- python_opencv应用系列1:图片读写
- Python+Django+SAE系列教程15-----输出非HTML内容(图片/PDF)
- 【Python爬虫系列】使用requests爬取图片
- (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
- (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
- Python初学者好玩案例(一):最短的抓取网页图片代码,只有10行
- python网络爬虫系列(四) --- 批量抓取并保存图片
- 从零学python系列之教你如何根据图片生成字符画
- 纯代码系列:Python实现验证码图片(PIL库经典用法用法,爬虫12306思路)
- 10 行代码判定色*情*图片——Python 也可以系列之二 (转载)
- 关于出现错误:_tkinter.TclError: couldn't open "E:\Python系列\Python程序\Python安装.gif"tkinter中不能打开GIF格式图片的解决办法
- Python爬虫入门系列之——爬取图片
- python好玩的项目—色情图片识别代码分享
- python 学习系列(3) 读取并显示图片的两种方法
- Python+Django+SAE系列教程15-----输出非HTML内容(图片/PDF)
- (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
- Python爬虫系列(六)外国图库Unsplash图片自动化下载
- python爬虫系列Selenium定向爬取虎扑篮球图片详解