上篇我们主要讲述了安装新旧库,定义函数和调用函数;在接下来的下篇里我们将给大家说明如何进行图片提取,执行代码和清理代码。

图片提取

假设上一节里没有遇到任何问题,我们就可以继续到下一步,从网站上下载图片。

我们将使用请求库来获取存储在图片URL中的内容。上面的“for”循环将遍历“结果”列表。

#io manages file-related in/out operations

import io

#creates a byte object out of image_content and point the variable image_file to it

image_file= io.BytesIO(image_content)

到目前为止,还不算完,因为我们上面的“image”还只是一个Python对象。所以需要通过指令进行转换。

#we use Pillow to convert our object to an RGB image

from PIL import Image

image= Image.open(image_file).convert('RGB')

转换成RGB模式的图后,还没有结束,因为我们需要设置一个保存图片的地方。就本教程而言,建一个文件夹“Test”是最简单的方法。

执行

话不多说,让我们结合前面的所有步骤,运行看看。请注意,由于我们未将数据提取到任何表中,因此此时pandas还显示为灰色。为了方便起见,我们将其保留。如果您需要查看或复查输出结果,可以直接使用。

为了提高效率,在检索完所需的URL列表后,可以使用“driver.quit()”退出webdriver。我们不再需要webdriver,因为所有内容都已经存储到了本地。

运行程序将输出以下两个结果之一:通过定义“file_path”变量,将图片输出到我们选择的文件夹中。

Python输出403 HTTP访问报错。

很显然,获得第一个结果就意味着我们已经完成。当然如果我们爬取我们自己的博客页面,我们将收到第二个结果。大多数情况下,要让第二个结果变成第一个结果将花费一些时间,而且有时甚至可能会出现更困难的情况。

每当我们使用请求库将请求发送到目标服务器时,都会分配给我们一个默认的user-agent“Python-urllib / version.number”。某些网络服务商可能会特地去阻止这些user-agent,因为它们肯定是机器人。幸运的是,请求库使我们能够分配所需的任何user-agent(或整个header):

image_content= requests.get(b, headers={'User-agent': 'Mozilla/5.0'}).content

在大多数情况下,添加user-agent就足够了。也有更复杂的情况,服务器可能会尝试检查HTTP header文件的其他部分以确认它是真实用户。

清理代码

虽然任务已完成,但是代码仍然很混乱。通过将所有内容置于已定义的函数下,可以使我们的程序更具可读性,也方便二次调用:

现在,所有内容都嵌套在明确定义的函数下,并且可以在导入时调用。这样比之前更方便。

总结

通过使用上面概述的代码,您现在应该能够完成基本的图片抓取任务了,例如一次性从网站上下载所有图片。可以通过多种方式来升级图片抓取器,其中大多数方法已在上一部分进行了概述。请查看我们的文章,以获取有关数据采集如何入门或如何高效采集数据的更多详细信息。

python 抓图_教程|Python抓图教程(下)相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. python字符串_(Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  3. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  4. python 标准差_标准差python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 方差是每个值与均值的差值的平方的平均值,标准差是方差的平方根(这是有用的,因为取 ...

  5. python遗传算法_基于Python的遗传算法特征约简(附代码)

    导言 在某些情况下,使用原始数据训练机器学习算法可能不是合适的选择.该算法在接受原始数据训练时,必须进行特征挖掘,以检测不同组之间的差异.但这需要大量的数据来自动执行特征挖掘.对于小数据集,数据科学家 ...

  6. 日本python教材_自学python:完整入门python书单!

    小伙伴总在询问Python的书,哎呀,动力所致,书单来了.9本,涵盖范围蛮大的.Python热持续中,入门计算机首选语言... 1.<父与子的编程之旅> 关注威信工宗号:程序员大牛,即可领 ...

  7. python重构_重构Python应用程序以简化操作

    python重构 Do you want simpler Python code? You always start a project with the best intentions, a cle ...

  8. 如何用python赚钱_利用python能怎么挣钱

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 6年python,期间写了各种奇葩爬虫,挣各种奇葩的钱,写这篇文章总结下几种爬虫 ...

  9. 经典兔子问题python视频_【Python】【demo实验14】【练习实例】【斐波那契数列】【经典兔子生小兔子问题】...

    古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 每个月的兔子数量 1:2 2:2 3:4 2+2 4:6 ...

  10. 郑州python编程_郑州python班

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

最新文章

  1. join,和循环删除,fromkeys,集合,拷贝
  2. HDU2425:Hiking Trip(简单bfs,优先队列实现)
  3. (2.4)备份与还原--WAL与备份原理
  4. 【数学与算法】牛顿法的两种应用:求根和最优化
  5. AB1601编译优化参数引发的问题
  6. php远程连接403,php中出现“ HTTP 异常 403 - 禁止访问”解决方法 总结
  7. 【Transformer】DETR: End-to-End Object Detection with Transformers
  8. python下载文件传到服务器_python实现FTP文件传输的方法(服务器端和客户端)
  9. [HNOI2011]XOR和路径
  10. 进击的爱奇艺文学:如何成为苹果园生态的重要一环?
  11. 【Vue指令】—v-if、v-show二者用法及区别
  12. java2月天数_java根据当前日期+指定天数(月份...)得到相应日期,计算两日期之差...
  13. 如何利用javascript获取表单中select下拉列表中所选中项的值value
  14. Ubuntu各文件夹功能说明
  15. Linux账号和权限管理
  16. 联机侠控制台JAVA_我的世界MultiMc启动器
  17. 光盘文件格式-udf、iso9660、Joliet、Romeo
  18. 川土微电子 | CA-IS3050U隔离式CAN收发器
  19. html背景颜色渐变代码
  20. 如何提高自己的工作能力 高效工作方法是绝效

热门文章

  1. 人撒娇地撒基督教扫ID祭扫我京东is啊单间
  2. 工程效能部门如何讲好故事做好事
  3. 从原子结构,半导体,PN结到MOS管和CMOS
  4. Bash shell语言学习
  5. 工作后,同学关系渐渐疏远了,心里莫名有些失落,怎么办?
  6. 单一世界架构初探之世界地图
  7. 图片突出显示(图片高亮显示)-jQuery实现-案例
  8. nodejs入门之数据爬虫
  9. A2-02-24.DML- Inserting Data into A Table Using MySQL INSERT Statement
  10. Kubernetes 1.25 发布!博云带你玩转新特性