博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python+requests抓取页面图片
阅读量:5341 次
发布时间:2019-06-15

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

前言:     

学完requests库后,想到可以利用python+requests爬取页面图片,想到实战一下。依照现在所学只能爬取图片在html页面的而不能爬取由JavaScript生成的图片,所以我选取饿了打开下面这个页面http://p.weather.com.cn/2017/06/2720826.shtml#p=7

案例步骤:

1.利用requests库,调用requests库中的get()方法,打开需要爬去的页面url,返回页面内容,下面是自定义的打开页面的方法

def load_page(url):    response=requests.get(url)    data=response.content    return data

2.用正则表达式去匹配页面的图片链接,匹配成功后,把图片下载下来,保存到对应的文件位置,下面是自定义的保存图片方法

def get_image(html):    regx=r'http://[\S]*jpg'    pattern=re.compile(regx)    get_images=re.findall(pattern,repr(html))    num=1    for img in  get_images:        image=load_page(img)        with open('./spider_picture/%s.jpg' % num,'wb') as fb:            fb.write(image)            print("正在下载第%s张图片" %num)            num=num+1    print("下载完成!")

  完整案例源码:

# coding:utf-8# 引入requests包和正则表达式包reimport requestsimport re# 自定义下载页面函数def load_page(url):    response=requests.get(url)    data=response.content    return data# 自定义保存页面图片函数def get_image(html):    regx=r'http://[\S]*jpg'  # 定义图片正则表达式    pattern=re.compile(regx) # 编译表达式构造匹配模式    get_images=re.findall(pattern,repr(html)) # 在页面中匹配图片链接    num=1    # 遍历匹配成功的链接    for img in  get_images:        image=load_page(img) #根据图片链接,下载图片链接        # 将下载的图片保存到对应的文件夹中        with open('./spider_picture/%s.jpg' % num,'wb') as fb:            fb.write(image)            print("正在下载第%s张图片" %num)            num=num+1    print("下载完成!")# 定义爬取页面的链接url ='http://p.weather.com.cn/2017/06/2720826.shtml#p=7'# 调用load_page函数,下载页面内容html = load_page(url)# 在页面中,匹配图片链接,并将图片下载下来,保存到对应文件夹get_image(html)

  

转载于:https://www.cnblogs.com/101718qiong/p/8192199.html

你可能感兴趣的文章
MySQL的 Grant命令权限分配
查看>>
非阻塞的c/s,epoll服务器模型
查看>>
YII框架安装过程总结
查看>>
HDOJ(HDU) 1862 EXCEL排序(类对象的快排)
查看>>
Codeforces Round #381 (Div. 2) 复习倍增//
查看>>
Money类型转化为String去除小数点后0解决方法
查看>>
ArcScene 高程不同的表面无法叠加
查看>>
[ONTAK2010] Peaks
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>
使用 MarkDown & DocFX 升级 Rafy 帮助文档
查看>>
THUPC2019/CTS2019/APIO2019游记
查看>>
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>
POJ 2960 S-Nim 博弈论 sg函数
查看>>
Dijkstra模版
查看>>
一个简单的插件式后台任务管理程序
查看>>