美文网首页大数据 爬虫Python AI Sql我爱编程趣Python
Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于

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

作者: 一石匠人 | 来源:发表于2018-07-31 22:48 被阅读31次

    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


    相关文章

      网友评论

        本文标题:Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于

        本文链接:https://www.haomeiwen.com/subject/qgxnpftx.html