python爬虫爬取图片的简单代码


Posted in Python onJanuary 18, 2021

Python是很好的爬虫工具不用再说了,它可以满足我们爬取网络内容的需求,那最简单的爬取网络上的图片,可以通过很简单的方法实现。只需导入正则表达式模块,并利用spider原理通过使用定义函数的方法可以轻松的实现爬取图片的需求。

1、spider原理

spider就是定义爬取的动作及分析网站的地方。
以初始的URL**初始化Request**,并设置回调函数。 当该request**下载完毕并返回时,将生成**response ,并作为参数传给该回调函数。

2、实现python爬虫爬取图片

第一步:导入正则表达式模块

import re # 导入正则表达式模块
import requests # python HTTP客户端 编写爬虫和测试服务器经常用到的模块
import random # 随机生成一个数,范围[0,1]

第二步:使用定义函数的方法爬取图片

def spiderPic(html, keyword):
  print('正在查找 ' + keyword + ' 对应的图片,下载中,请稍后......')
  for addr in re.findall('"objURL":"(.*?)"', html, re.S): # 查找URL
    print('正在爬取URL地址:' + str(addr)[0:30] + '...') 
    # 爬取的地址长度超过30时,用'...'代替后面的内容
    try:
      pics = requests.get(addr, timeout=100) # 请求URL时间(最大10秒)
    except requests.exceptions.ConnectionError:
      print('您当前请求的URL地址出现错误')
      continue
    fq = open('H:\\img\\' + (keyword + '_' + str(random.randrange(0, 1000, 4)) + '.jpg'), 'wb') 
     # 下载图片,并保存和命名
    fq.write(pics.content)
    fq.close()

到此这篇关于python爬虫爬取图片的简单代码的文章就介绍到这了,更多相关python爬虫怎么爬取图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python下Fabric的简单部署方法
Jul 14 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
python实现简单坦克大战
Mar 27 Python
Numpy 多维数据数组的实现
Jun 18 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 #Python
java关于string最常出现的面试题整理
Jan 18 #Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 #Python
python中四舍五入的正确打开方式
Jan 18 #Python
PyQt5中QSpinBox计数器的实现
Jan 18 #Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 #Python
PyQt实现计数器的方法示例
Jan 18 #Python
You might like
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
js身份证判断方法支持15位和18位
2014/03/18 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
常用javascript表单验证汇总
2020/07/20 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python入门篇之字符串
2014/10/17 Python
使用TensorFlow实现SVM
2018/09/06 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
python实现快递价格查询系统
2020/03/03 Python
深入了解NumPy 高级索引
2020/07/24 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
python与js主要区别点总结
2020/09/13 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
领导参观欢迎词
2015/01/26 职场文书
高三物理教学反思
2016/02/20 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python