Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests

Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象。近期我接触到了爬虫,被小小地震撼一下。总体的感觉就两个词——“强大”和“有趣”。今天就跟大家分享一下两个简易的爬虫案例,大牛们请飞过哈。

先来科普一下啊“爬虫技术”吧。网络爬虫(又被称为网页蜘蛛,网络机器人,网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

它的名字虽然很多,但是过程很明确,就两个部分:一是从网页源代码中爬取有用信息;二是对这些信息进行处理(如分析、下载等)。

下面用两种方法制作批量爬取网络图片的方法。

第一种方法:基于urllib实现

要点如下

1.url_request = request.Request(url)

2.url_response = request.urlopen(url) 或者 url_response = request.urlopen(url_request)

3.data=url_response .read().decode('utf-8')

4.jpglist=re.findall(正则表达式,data)

5.request.urlretrieve(jpgUrl,'%s.jpg' %n)   #下载,第一个参数网址,第二参数名称

第一个案例,我们爬取了猫扑上的一个网页上的图片,案例代码如下。

基于urllib案例完整代码

需要说明的是代码request.urlretrieve(each,'pic2\\%s.jpg'  %n)中“pic2\\”代表下载的图片放置在提前建好的文件夹pic2里。运行代码结束之后IDLE和最后结果如下图所示。

代码运行界面1
案例1结果

第二种实现方法:基于requests实现

要点如下:

1.data=requests.get(url).text

2.jpglist=re.findall(正则表达式,data,re.S)

3.pic=requests.get(pic_url,timeout=10)

4. fp=open(pic_name,'wb')

    fp.write(pic.content)

    fp.close()

在这个案例中我们爬取了一个壁纸网站的网页,预测应该图片质量比较高吧。完整代码如下:

基于requests案例代码

我们来看一下运行代码的结果,如下图所示。真心不错,我们获得了42张壁纸,而且是在短短几秒钟内完成的,很厉害的感觉有木有。

代码运行界面2
案例二结果

改进一下

下面我们进行一个改进,输入关键词直接自动下载相关图片(创意参考了https://www.jianshu.com/p/19c846daccb3)。

需要说明一下原理。这个针对百度图片搜索功能完成的,因为我们发现关键词就在搜索结果页的网址中。我们只需要把网址中的关键词换掉,就是针对新的关键词的结果页网址。

完整代码如下:

改进后代码

这里我输入了“北京”,如下图。结果针对让人振奋,自动下载了59张关于北京的图片,有没有很爽的感觉。

代码运行界面3
案例三结果

参考学习网址:

1.https://blog.csdn.net/appleyk/article/details/78070098

2.https://blog.csdn.net/csdn2497242041/article/details/77170746

3.https://www.cnblogs.com/SneakyCrab/p/5905804.html

4.https://www.jianshu.com/p/19c846daccb3

5.https://www.jianshu.com/p/74b94eadae15


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前一阵子在梳理以前文章的时候,发现自己虽然总结了各种视音频应用程序,却还缺少一个适合无视音频背景人员学习的“最基础...
    视频音频小白阅读 2,119评论 1 3
  • 学习爬虫有一段日子,一直都是看博客学习总是一知半解。面试了一次爬虫工程师,才感觉自己的学习方法出了问题,找到一本书...
    潘雪雯阅读 1,319评论 5 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,332评论 19 139
  • 今天风婆婆发怒了,风超级大,呼呼的仿佛要把人给吹跑,趴在窗户望去,外面的大树已经被吹弯了腰,空中偶尔会飞过被吹起的...
    SummerSL阅读 205评论 0 0
  • 随着社会的发展,科技越来越发达,电脑,智能手机发展的更迅速,给我们的生活带来了很多方便,丰富了我们的生活,让我们足...
    宛茹阅读 289评论 0 1

友情链接更多精彩内容