已经看了那么多基础知识了,下面我们做几个实战项目来挑战一下吧。这次为大家带来,Python爬取校花网美女图片的例子。
首先,校花网大家知道吧,美女一抓一大把,这次我们尝试一下用爬虫把他们抓取下来。
本篇目标
1.抓取校花网美女图片 2.学会正则表达式及其简单应用 3.实现一次爬取多张、多页美女图片并保存到本地。
工具:Windows+pycharm+python2.7
好了废话不多说,我们开始哦
1.确定URL并抓取页面代码
我们先来打开校花网主页:www.xiaohuar.com,我们选择校花排行(要爬美女当然要选排行榜了^_^),然后网站右键选择
审查元素(这里小编用的是极速浏览器,貌似用谷歌的浏览器比较好),小编推荐大家加一下这个群:542110741!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料、爬虫资料!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!欲进从速哦!然后呢左上角点击箭头,在点击一张图片,如下图
ok,我们注意蓝色高亮的那行代码,src="http://www.xiaohuar.com/d/file/20140811101923185.jpg"这里就存放了我们要爬取的图片的地址,我们可以多取几行,然后先写下如下代码
注意第18行和其他行得到的网址不一样哦,不过没关系,我们把其他行的主页地址删掉就可以,如下:
替换高清大图
这些呢,就是我们要获取的图片的名字和存储路径了,然后呢,就是用到今天的第二个知识点,正则表达式来匹配图片名字了:img_urls = re.findall(r'/d/file/.*?.jpg',html),这行代码通俗点讲就是查找html(就是上面的源代码)中的所有'/d/file/.*?.jpg',并把其中(.*?)部分的内容赋值给img_urls。
符号的含义如下: “.” =匹配任意字符 “*” =匹配0次或更多 “?” =是非贪婪模式的意思
合起来呢(.*?)就是匹配任意字符到后面的(.)为止,(.)是(.)的意思,在正则表达式里用转义字符标记。
具体正则表达式的内容呢,大家可以自行百度或者观看小编其他的视频,里面有详细解说哦^_^,小编推荐大家加一下这个群:542110741!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料、爬虫资料!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!欲进从速哦!我们继续下面的内容,上面呢,我们用正则表达式获取到了图片地址,后面在加一个for循环来获取多个图片地址,并将所有的图片下载到本地(py文件所在目录)
然后运行下看看(很多小姐姐就要来小编的硬盘了,很鸡冻哦^_^)
替换高清大图
完全木有问题,在看看目录
总体来说,还是成功了的^_^
源码奉上
是真的不到20行哦,壮哉我大python!
下面是视频奉上!