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
案例二结果
改进一下
需要说明一下原理。这个针对百度图片搜索功能完成的,因为我们发现关键词就在搜索结果页的网址中。我们只需要把网址中的关键词换掉,就是针对新的关键词的结果页网址。
完整代码如下:
改进后代码
这里我输入了“北京”,如下图。结果针对让人振奋,自动下载了59张关于北京的图片,有没有很爽的感觉。
代码运行界面3
案例三结果
参考学习网址: