市场上到底有多少款手机?(1)
来源:互联网 发布:社员网 知乎 编辑:程序博客网 时间:2024/04/23 16:52
前边的扯淡
最近在接到一个项目,要进行手机兼容性测试,随之而来的一个问题就是,市场上到底有多少款手机?
要想弄清楚有多少款手机,首先要弄清楚什么是手机型号,以锤子手机为例,罗胖子一直鼓吹的锤子手机 ,型号是Snartisan T1,如果你天真的以为锤子手机的型号就是T1,那么你就输了,当你拿到一个锤子手机,打开手机设置中关于手机的部分时,显示的手机型号是SM701。
坑爹么,其实大多数手机都是这样的,三星的Note 2,S4也不是手机型号,他们的型号可能是N9008V之类的,而且一个Note 2有8种型号;
最坑爹的可能就是小米了,打开红米手机或者任意一款小米手机,它的手机型号竟然是2013022之类的;
因此看来(也有很大的可能是我后知后觉),手机型号应该分成两个属性,一个应该叫商用名,比如红米、Note2之类的;另一个才是型号,I9100、2013022;
但是另一个坑爹的问题来了,国内大多数手机网站,什么Zol、什么手机中国,基本上都是以手机的商用名为检索对象的。
官方数据
每当遇到这种众人数据不统一的问题时,习惯上就会想到官方数据,手机的问题也不例外。
在中国上市的所有手机,都要去两个机构进行检测,一个是去质检总局拿3C的证书,另一个就是去工信部拿入网许可证。
其中工信部的入网许可证颁发机构还自己弄了一个网站,就是今天要说的主角:
手机信息网
从手机信息网采集数据有几个好处:
- 信息权威,所有在国内公开销售的手机都在上面;
- 该网站所有的手机都是以型号为索引,而不是以坑爹的商用名;
- 该网站基本上都是静态的Html写成的,特别是关键数据都是Html,抓去方便;
确定了信息来源,就要进行艰苦卓绝的分析整理了。
手机信息网上,每一款手机都有一个独立的静态页面。要抓某一款手机,只要把他相应的网页抓出来就可以了。关键是搞清楚这些网页是如何组织的,以便将他们一网打尽。
经过长时间的分析,我发现有两种组织方式:
一种是几乎每个页面上都有的一个下拉列表;
这种方式有一个问题,上述两个下拉列表是JavaScript,是动态的从数据库种取数据,以我现在的技术水平,还做不到抓取这种动态数据。
另一种方式是通过品牌列表:MobileBrandName.aspx
这个网页列出了所有品牌的列表;其中所有的品牌都是以MobileSelectCellNew开头的,这一点在后面抓取的时候会用到;
进入到某一个品牌的页面,比如三星:MobileSelectCellNew.aspx?code=GodbVIFKVxB5fuw6Wej2UQ%3d%3d
在每一个品牌的页面种列出近三年的手机型号,每一年一个页面,每个页面都是以MobileSelectCellYearNew开头的;
只有近三年,之前的手机也有,但是没有在这里列出来。我还专门就这个事情给手机信息网打过电话,
得到的答复就是,只有三年。
三年前的手机型号可以通过搜索或其它方式找到页面。
进入到三星2014年的页面MobileSelectCellYearNew.aspx?code=GodbVIFKVxDUd5e7T%2fbP2hbkawuDFhkYGwrdzWB3esk%3d
这里面就列了当年所有手机的型号及页面了,只要抓出链接,就好了。
今天就写到这里吧,老婆叫回家吃饭了。
0 0
- 市场上到底有多少款手机?(1)
- 手机到底有多少种传感器?
- 桃子到底有多少
- 3G的市场到底有多大--中国手机上网发展状况调查报告
- Gmail用户到底有多少?
- 人生到底有多少项目?
- CSS-em到底有多少
- Oracle到底有多少数据库?
- java验证1MB到底有多少个汉字
- 2720亿美元到底有多少?(多图)
- 到底有多少种智能指针(smart pointer)
- CSDN到底要多少积分才有排名(图解)
- CSDN到底要多少积分才有排名(图解)
- 对于你自己,你到底有多少认识?
- JVM 到底有多少启动参数?
- 越狱到底有多少别名(暴强!)
- Linux,到底有多少人在使用?
- 陈永杰:中国到底有多少穷人?
- 通配符的匹配很全面, 但无法找到元素 'jdbc:embedded-database' 的声明
- unity3d学习之数组习题
- 在网上找到的一个附件上传功能,自己完善了一下,记录防止忘记
- iOS sqlite3 具体代码粘贴
- ios 简便的提醒管理类 可以当闹钟用
- 市场上到底有多少款手机?(1)
- 23种设计模式(超级简洁)
- 2014年11月份工作日志 模板样例
- 表单验证
- github 常用配置和命令
- myeclipse10注册码
- 成为Java高手的25个学习要点
- 理解iso光盘系统
- Android Bundle类