前言

“自古美女出苏杭”,“川渝盛产美女”,究竟哪里才是中国最盛产美女的地方,为此,本文采用网页自动化抓取的方法,调取了中国大型偶像乐团SNH48的成员介绍,找到成员出生地一览进行汇总统计!

概要

网页信息采集可以使用的工具众多,本次博主采用casperJS自动化采集的方式,采集了SNH48官网成员介绍页面。casperJS能够方便地实现网页截图,网页元素查找等方面的功能,特别值得一提的是其对于选择器的较好支持,能够基于选择器查找所需元素,这样就大大简化了提取关键信息的步骤,从而避免了以往数据采集通过正则表达式查找元素的麻烦。casperJS的简介及使用方法详见其官网:http://casperjs.org/

步骤

1、登录SNH48官网的成员介绍主页:http://www.snh48.com/member_list.php;

2、随意点击某一成员的信息主页,可以发现其URL格式形如:http://www.snh48.com/member_detail.php?sid=xxx

可以看到,sid后面的数字即为成员的编号;查看整个页面,可以发现其取值范围为1~150,但某些取值可能没有页面,即编号不连续,不过好在这个问题的存在不影响采集,稍后详细介绍。

3、查找成员的出生地,如下图所示红框所示

4、最关键一步,查找该出生地对应的选择器。

打开chrome,选择“检查”,再点击“元素选择器”并选中上面第3步的出生地元素,如下图所示:

可以看出,出生地放在了一个无序列表项li当中,该列表项的class名为12,且有多个同名的class,故不能采用li.12的形式定位。那么,我们向上寻找其父元素

看到其父元素为div,类名mem_w,为了验证类名为mem_w的div的唯一性,在chrome的console中输入:document.querySelectorAll(".mem_w"),如下图所示:

由此可见该元素具有唯一性,那么通过它再找到出生地对应的li即可找到元素,观察发现,显示出生地的li位于该div下的第22个元素,采用document.querySelectorAll(".mem_w li:nth-child(22)")验证,结果如下:

        至此,我们就找到了网页采集的关键元素,从而可以编写采集代码了

5、编写casperJS代码采集信息(拿走不谢):

var casper = require('casper').create();
var fs=require('fs');
casper.start();
fs.write("snh48.html",'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">','a+')
for (var i = 1; i <=180; i++) {(function (arg) {casper.then(function () {var url = "http://www.snh48.com/member_detail.php?sid=" + arg;casper.page = casper.newPage();casper.open(url).then(function () {fs.write("snh48.html",arg,"a+");if(casper.getHTML(".mem_w li:nth-child(22)")){fs.write("snh48.html",casper.getHTML(".mem_w li:nth-child(22)")+"<br>",'a+');}});});})(i)
}
casper.run();

代码部分解读:

(1)引入fs模块用于将采集到的数据输出到文件,在写入数据前,为了避免出现乱码,需要给文件指定编码格式UTF-8;

(2)第6行起,引入闭包,否则for循环内采集的结果将永远是最后一个,即sid为180的网页。不熟悉闭包的同学,可以阅读相关书籍和文档。

6、其他

类似的,我们再次抓取SNH48姐妹团BEJ48(http://www.bej48.com/member.html)和GNZ48(http://www.gnz48.com/member/member_list.php)的数据,脚本仍然采用上述框架,只是URL和选择器需要重新调整,在此不再赘述。

结论

本次采集共获得了169个数据,汇总如下:
省份 美女数量
上海 21
四川 19
广东 13
江苏 12
浙江 11
湖南 11
湖北 10
河南 9
福建 7
山东 7
重庆 6
辽宁 6
北京 5
陕西 4
安徽 4
贵州 4
云南 3
江西 3
黑龙江 2
台湾 2
海南 2
内蒙古 1
吉林 1
香港 1
河北 1
广西 1
甘肃 1
内蒙 1
天津 1

绘制柱状图如下:

可以看出,SNH48成员多来自上海及周边,此外来自四川、湖南、湖北也为数不少,与传统意义上大家认同的盛产美女的地方基本保持一致。当然,由于SNH48地处上海,来自上海的成员可能也有一定程度的地域优势,但基于网页信息的抓取和统计分析,就暂时不考虑此种因素。

大数据告诉你,中国哪里出美女相关推荐

  1. BigData之matplotlib:爬虫2018年福布斯中国富豪榜进行数据统计分析,大数据告诉你一些不可思议的事情

    BigData之matplotlib:爬虫2018年福布斯中国富豪榜进行数据统计分析,大数据告诉你一些不可思议的事情 目录 数据统计分析 1.2018年福布斯中国富豪榜(资产≥60亿美元)财富地区分布 ...

  2. 大数据告诉你何时何地买手机最划算!

    文章讲的是大数据告诉你何时何地买手机最划算, 你想知道一年之中哪一天手机最便宜吗? 你想知道手机在哪家电商买最便宜吗? 你想知道哪些品牌的手机卖的最好吗? 品类包含:手机 平台包含:天猫.京东.1号店 ...

  3. python 干什么工作具有明显优势-科多大数据告诉你Python为什么这么牛?学习python有什么优势?...

    原标题:科多大数据告诉你Python为什么这么牛?学习python有什么优势? 选择要学习的技术和选择要上的大学一样重要,如果选错了,你将来不仅得不到自己喜欢的高薪工作,反而会弄得一堆麻烦.如果你打开 ...

  4. 大数据告诉你绩优的银行柜员长啥样!

    你心中的优秀银行柜员,是长这样吗? 喂,醒醒,该起床了! 智鼎大数据告诉你,看脸是不靠谱的,接下来用行为数据为你揭晓真正的绩优柜员到底长啥样. 智鼎公司在银行领域深耕近15年,收集了数以万计的行为数据 ...

  5. 大数据专业考研书_必看|大数据告诉你考研趋势

    原标题:必看|大数据告诉你考研趋势 根据各省级管理部门官网数据,2018年7月30日"中国研究生招生信息网"发布了<2015-2018年全国硕士研究生报考数据分析报告> ...

  6. 养宠物还是养主人?大数据告诉你究竟是谁孤独寂寞冷?

    就算大雨让这座城市颠倒 打车软件让出租车变小船 本程序猿 还是要淌过西二旗的海 来!上!班! 所以 无论你现在 是在加班 还是已经下班 请体会本猿今天 用白素贞水漫金山寺的心情 推送的内容-- 养宠物 ...

  7. 大数据告诉你怎么做征信

    大数据告诉你怎么做征信 2016-11-01 02:38 | 新庄里 近年来国内个人信贷市场迅速发展,传统金融机构.P2P.电商.小额贷款公司等纷纷将目光投向个人消费领域,随着越来越多的金融业务互联网 ...

  8. 学习、恋爱、交朋友 大数据告诉你大学真相

    学习.恋爱.交朋友 大数据告诉你大学真相 作者:潘海东  互动百科创始人 在北京科技大学2014级新生开学典礼上,互动百科创始人潘海东讲了三个大实话:(1)大学所学的专业90%是没有用的.(2)大学所 ...

  9. 大数据告诉你哪部电影最有影响力

    史上哪部电影最有影响力? 是票房大热的漫威英雄,还是号称影响了一代人的<星球大战>,或者是具有浪漫主义色彩的黑帮史诗<教父>? 其实都不是. " 历史上最具影响力的电 ...

  10. 分析了100份大数据岗位要求,总结出这4点

    分析了100份大数据岗位要求,总结出这4点 随着大数据应用在生产生活中的普及,大数据人才的需求越来越多,据<中国经济的数字化转型:人才与就业>的报告显示,目前我国大数据技术人才缺口超过15 ...

最新文章

  1. Confluence 6 用户目录图例 - 连接 Jira 和 Jira 连接 LDAP
  2. 【算法】一个简单的K近邻(KNN)原理
  3. 【pwnable.tw】 death_note
  4. SAP UI5 应用开发教程之十七 - 聚合绑定在 UI5 复合控件中的使用
  5. Google十大真理带给中国网络公司的启示
  6. 《MPLS在Cisco IOS上的配置》一第 1 章 MPLS概述1.1 IP转发过程概述
  7. 传统的主从复制的概念和要点
  8. 罗永浩、戴威的 C 位消亡史
  9. iOS开发:为什么你的学习效率如此低,为什么你很迷茫?
  10. gnuradio上怎么使用python文件_使用Python下载文件的简单示例
  11. 身份证号校验、身份证照片解析(百度API)
  12. 数字图像处理(六)——Matlab实现频域图像分析、FFT实现4:1的图像压缩
  13. 计算机视觉和模式识别领域企业论坛,第三届中国模式识别与计算机视觉大会(PRCV 2020)圆满举办...
  14. UG NX 工程图视图概述
  15. Echarts柱状图柱子上“画线”
  16. 手淘抓包、 x-sign的签名算法和api接口
  17. PgAdmin中的数据库查询功能
  18. Python 计算MD5值 图片查重去重
  19. 「趣小面」寻融资:前景美好,“钱”景难说
  20. SAP顾问生涯闲记:2016年越南鞋厂项目回忆

热门文章

  1. 激荡三十年——互联网的崛起
  2. UE4 WebBrowser插件清除浏览器缓存
  3. 深度学习目标检测模型汇总(论文,源码,数据集,推荐收藏)
  4. VMWare虚拟机最新版的下载与安装(详细教程)
  5. Word插入脚注只占左下角一栏的方法
  6. 入职薪酬谈判技巧_如何谈判你的薪水
  7. Eclipse设置护眼豆沙绿
  8. 8.4 不能外包的解谜算法
  9. 什么软件可以让头发变黑_震惊!这几招,能让你的头发变黑变多
  10. python3出现TypeError: can only concatenate str (not bytes) to str的错误,大一刚上手python的学习,望大神解决。感激不尽