/phone_info_reptile

一个用来获取手机分辨率等信息的爬虫

Primary LanguageJavaScript

说明

项目起源是不想一条条去百度手机信息,所以写了这个爬虫。目前还有不小的缺陷

  • 不能获取别名
  • 不能获取的手机太多,约 23% 拿不到信息
  • 没有进行错误处理 ,崩溃时无法处理
  • 数据源单一
  • 输出格式单一

持续改进中

安装

环境需求

  • git
  • node.js
  • npm

安装过程

git 克隆项目

git clone https://github.com/luchun/phone_info_reptile.git

进入项目目录安装依赖

npm install

执行

npm start

使用

通过npm 执行

 npm start

需要获取的手机型号列表是我从excel中复制列到txt中的,为 stdin 目录下的list.txt 和 400.txt ,默认只获取前400个手机型号的信息。 如果想取得列表中所有手机的型号信息,需要带参数 --all

npm start --all

输出的结果在 stdout 目录下的 info.txt 目前的输出结果并不好,还在改进中

更新

2016 - 05 - 24

  • 修改将 zol 作为第一数据源, 在没有获得准确信息后,转到 手机信息网 查询
  • 修改输出格式,输出SQL语句

错误

  • 一些手机名是市场名,而非在工信部登记的设备名,导致查不到如 iphone 6 的设备名是 A1586
  • 有一些手机在 手机信息网 上登记有误 如 vivo X5M , Lenovo K30-T。
  • 有一些手机,匹配错误,如 A11, X9000。可能会匹配到较老的型号,数据值偏小。

效率

因为查询数据需要大量的http请求,并且在获取到页面数据后进行查找,所以我没有做成异步,而是同步查询,所以效率并不高。

前400条 30分钟 93条未取到 前1000条 1小时30分钟 220条未取到

数据源

当前使用的数据源是 “工业和信息化部电信设备认证中心”下的 手机信息网 使用这个网站的原因是它的技术比较老,返回的结果很简单,匹配度比较高。而其他的网站如中关村在线等,模糊度比较大,搜索返回的结果很多,我的程序无法判断哪个是正确的链接。

缺点是只能匹配准确型号,如查询 iphone 6 是得不到结果的,只有查询准确的型号 A1586 才有结果。 同时查询不到上市型号别名

可参考源

后续可能会改为 中关村在线 作为数据源

后续可能会改为 gsmchoice 作为源来获取别名