前言
五一假期无聊,当然是学爬虫了。这次我们将爬取2000多个明星的照片,然后通过百度云的人脸识别api对他/她们进行颜值评测,不知道你心目中的男/女神能得多少分呢?
本文仅供娱乐,请勿对结果较真。
准备和分析
首先我们要获取明星的图片,这里我爬取的网站是http://www.yue365.com/mingxing/zimu/a.shtml,下面我们对网页中的元素进行分析:
![d4a45bfaf99bbce39302ea4464ce2f25.png](https://i-blog.csdnimg.cn/blog_migrate/c66e1ebab2e4f8fa6b0123bbd9ae29ea.jpeg)
我们打开上述网址可以发现,域名中a的变化指的就是明星名字开头的字母的变化,因此我们只要爬取26个页面(a-z)就可以获取全部的明星信息。然后我们再对单个页面进行分析:
![0f71566e3f3653365c8631a416267c90.png](https://i-blog.csdnimg.cn/blog_migrate/981dc376d4e334d3c73a173e08eb766a.jpeg)
观察页面可知明星的分布,前10个以图片形式显示,然后56个以文字显示,而剩余的需要点击‘加载更多’来显示。F12打开检查界面:
![45f7b93fe45f619027adc4ed9eb395ee.png](https://i-blog.csdnimg.cn/blog_migrate/d68528f5ef116d3e9e17a4e4cb8ae9d2.jpeg)
我们点击a标签中的url链接可以打开明星的个人界面:
![f7e7524e597626479d05761406f195c4.png](https://i-blog.csdnimg.cn/blog_migrate/157697b94bd3691e713abf1a85968d7a.jpeg)
该页面中的图片就是我们想要的,所以我们的思路是先获取明星的名字和个人界面的网址,再通过个人界面网址爬取明星的图片(页面中前十个明星的图片可以直接获取,但为尽量统一,我们也通过该方法获取)。
人脸识别api使用
在进行核心代码前,我们先把人脸识别api的调用搞定,很多云都提供人脸识别api服务,这里我采用的是百度智能云提供的(调用方式简单,调用次数不限),百度智能云中的人脸识别api网址:https://cloud.baidu.com/product/face 开通服务很容易,这里不做赘述,接下来打开人脸检测的技术文档:https://cloud.baidu.com/doc/FACE/Face-Detect.html#.E8.B0.83.E7.94.A8.E6.96.B9.E5.BC.8F,查看调用方式:
![db4e2853d6c372d3b888c6f1aa42446a.png](https://i-blog.csdnimg.cn/blog_migrate/91d20de3cd76fdf506b6e754fe271eb4.jpeg)
请求参数和返回参数(我们只需要颜值):
![8a883b254184a038815ee10e13a145f7.png](https://i-blog.csdnimg.cn/blog_migrate/4c6f15435f909cf1c989211fbc255ca3.jpeg)