上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看:

我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里。

图1 目标网页

还是按爬虫4流程:发出请求——获得网页——解析内容——保存内容

1、发出请求

1)找到网页地址:

在网页上右键单击“审查元素”,弹窗里选中Network面板,从左侧name列表里逐个选择项目,观察右侧Preview面板下的内容,发现出现下图2中的样式时,就是我们要的第一小步目标。

在图3所示的Headers面板下找到网页地址URL

图3

Request URL:

https://m.gmw.cn/toutiao/2020-02/16/content_123107586.htm?tt_group_id=6793905493262729736

2)找到网页中图片地址:

由于网页上的图片都是有单独网址的,与网页的网址不同,所以我们需要在网页代码里找到图片的网址信息。继续查找Preview面板下的网页代码,图4红框内所示即为网页里插图图片的地址,这就是我们爬取图片真正要用的地址

图4, 红方框内为图片地址

所以,从网页里批量爬取图片,实际步骤是:

发出请求(网页地址)——获得网页——解析内容(得到图片地址)——向图片地址发出请求(循环)——获得网页——解析内容(得到图片)——保存内容

获得图片地址的代码为:

url = 'https://m.gmw.cn/toutiao/2020-02/16/content_123107586.htm?tt_group_id=6793905493262729736'rep = requests.get(url)# 发出访问请求,获得响应res = BeautifulSoup(rep.content, 'lxml')# 解析响应,获得网页内容img_url = res.find_all('p', style='text-align:center;')# 解析网页内容,获得全部图片网址

此时,我们试着检验一下获得的图片地址:for im in img_url: jpgurl = im.find('img')['src'] print(jpgurl)

结果为图5所示:

图5 网页中所有图片地址

2、批量获得网页

在上面的for循环里,向图片地址发生请求:

for im in img_url: jpgurl = im.find('img')['src'] r = requests.get(jpgurl)

3、解析获得图片

由于图片地址里没有其他内容,只有图片,解析很简单:直接取r.content就能得到图片。for im in img_url:......r = requests.get(jpgurl)jpg = r.content

4、保存图片

for im in img_url: ...... jpg = r.content nam = jpgurl[-23:]# 从图片网址里提取最后23个字符,当图片名称,也可以自己定义,不要重复即可 f = open(set_path() + nam, 'wb')# 从set_path()函数返回一个文件夹路径,与图片名称组合成文件的保存地址 f.write(jpg)# 将图片写入文件

set_path()函数返回一个预设保存文件的文件夹,如果预设的文件夹不存在,就自动创建。def set_path(): path = r'e:/python/jpg' if not os.path.isdir(path): os.makedirs(path) paths = path+'/' return(paths)

运行后打开对应文件夹,图片已经完成下载,如图6:

图6 爬取到的图片

至此,批量爬取网页图片就完成了。

总结:

本文的爬取过程,比常说的爬虫4步骤多了好几步,其实,本质上还是万变不离其宗的4步流程。本例只不过是相当于把两套爬取流程进行了嵌套,少了一次保存内容的过程而已。关键是通过爬取获得网址后,再次爬取新网址里的内容,真正的爬取大多是通过这种嵌套实现的。

python怎么批量爬取图片_python批量爬取网络图片相关推荐

  1. python爬取图片_python批量爬取网络图片

    上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看: 我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里 ...

  2. 循环爬取图片_Python爬虫爬取小姐姐照片!

    哔哩哔哩上有一个相簿板块,里面有很多绘画和摄影,自己动手一张一张保存太慢,于是想到了python爬虫. 今天就用python来写个爬虫,爬取每月月榜上的小姐姐,一劳永逸. 爬虫步骤: 1.在bilib ...

  3. python怎么批量爬取图片_Python制作批量爬取网络图片的方法

    Python制作批量爬取网络图片的方法 发布时间:2020-11-17 11:14:24 来源:亿速云 阅读:86 作者:小新 这篇文章给大家分享的是有关Python制作批量爬取网络图片的方法的内容. ...

  4. python 爬取图片_Python实现千图成像:从图片爬取到图片合成

    千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...

  5. python网络爬图_Python爬虫爬图片需要什么

    Python爬虫爬图片需要什么?下面用两种方法制作批量爬取网络图片的方法: 第一种方法:基于urllib实现 要点如下: 1.url_request = request.Request(url) 2. ...

  6. python批量新建文件_python批量处理

    python opencv图像二值化批量处理 from skimage import data_dir,io,transform,color,filters import numpy as np im ...

  7. python修改xml保留注释_Python批量修改XML,附源码,需要安装PY 3.7.2

    本帖最后由 fenrir 于 2019-11-7 00:27 编辑 XML干啥的? 360截图20191106214044006.jpg (23.15 KB, 下载次数: 0) 2019-11-6 2 ...

  8. python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件

    原标题:Python批量导入图片生成PowerPoint 2007+文件 说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为P ...

  9. 如何用python批量下载数据_Python批量下载地理空间数据云数据!Python无所不能!...

    模拟登录 这里要用到两个包:requests和json.requests使用前得先安装:pip install requests. In [3]: 进群:548377875 即可获取数十套PDF哦! ...

最新文章

  1. 一次非常有意思的 SQL 优化经历!
  2. UbuntuKylin技巧
  3. wordpressPHP实现ajax评论,AJAX_wordpress 为主题添加AJAX提交评论功能的php代码,首先需要在主题的function.php文 - phpStudy...
  4. wxWidgets:基于 XML 的资源系统 (XRC)
  5. python列表的append/entend/insert
  6. 对Canvas的研究
  7. [react] 说出几点你认为的React实践
  8. html5饼图的制作方法,html5制作饼图
  9. 8月22日见!iQOO Pro跑分曝光:近50万得分 无对手
  10. ubuntu 上安装mysql
  11. 嘘,iPhone 正在监听你!
  12. 考研英语一和英语二的区别
  13. 東京タワー初めてphoto
  14. 4.7 Observer(观察者)
  15. 服务器装系统怎么显示盘符,安装双系统如何实现各系统盘盘符均显示为C盘
  16. 台达PLC开发笔记(二):台达PLC设置主机通讯参数为RTU并成功通讯
  17. 所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
  18. ROS2安装时出现Connection failed [IP: 91.189.91.39 80]
  19. 新数据库必须要做一次完全备份之后才能保留日志,在做备份之前还原模式就是简单,不管你选什么!
  20. ibm最早的个人计算机,个人计算机竞争者分析:IBM.pdf

热门文章

  1. 使用KMS激活软件导致浏览器呗篡改解决办法
  2. 超几何分布与二项分布及其期望
  3. iphone红外传感器
  4. win7系统下 安装anaconda时报错“failed to create menus”的解决方案
  5. git fetch - git merge - git pull 指令
  6. Dockerfile制作容器--ssh容器,详细步骤与指令介绍
  7. 火锅尝后感,桌面虚拟化服务真的很重要
  8. linux测试dvi接口,支持Linux系统的高清DVI采集卡推荐
  9. Office2016 Excel的VBA打开显示内存溢出
  10. contest 12.31