node.js 抓取全国区域代码、邮政编码、电话区号
来源:互联网 发布:python 定义矩阵 编辑:程序博客网 时间:2024/04/28 05:52
最近因为有项目需求 需要用到全国各地区的区域代码 网上又不能下载到最新的,正好在一个网站看到可以各个省份去查询,所以就自己用Node.js写了一个简单的抓取程序
var http = require("http");var cheerio = require("cheerio");var BufferHelper = require('bufferhelper');var iconv = require('iconv-lite');var fs = require("fs");var url = "http://www.diqudaima.com/";function download(url, callback) { http.get(url, function (res) { var bufferHelper = new BufferHelper(); res.on('data', function (chunk) { bufferHelper.concat(chunk); }); res.on("end", function () { callback(iconv.decode(bufferHelper.toBuffer(), 'GBK')); }); }).on("error", function (err) { console.log("err"); });}createTxtFile();download(url, function (data) { console.time("Start!"); if (data) { //var str = ""; var $ = cheerio.load(data); $("div.Count>ul>li").each(function (i, e) { var link = $(e).find("a"); var newUrl = url + link.attr("href"); console.log("获取" + link.text() + "Url: " + newUrl); download(newUrl, getCity) }); }});function createTxtFile() { fs.open("code.txt", "w", function (err, fd) { var buf = new Buffer("省份,城市,县/区,地区编码,邮编,电话区号\n"); fs.write(fd, buf, 0, buf.length, 0, function (err, written, buffer) { console.log(err); }); })}function getCity(data) { if (data) { var str = ""; var $ = cheerio.load(data); $("div.all>ul>li").each(function (i, e) { var link = $(e).find("a"); var newUrl = url + link.attr("href"); console.log("获取" + link.text() + "Url: " + newUrl); download(newUrl, getArea) }); }}var num = 0;function getArea(data) { if (data) { var str = ""; var $ = cheerio.load(data); // console.log(data); var provinceName = ""; $("div.title>span").each(function (i, e) { provinceName = $(e).text().split("-->")[1]+","+$(e).text().split("-->")[2]; }); $("ul>li").each(function (i, e) { var link = $(e).find("a"); var infoStr = $(e).text().replace(/:/g," "); var strArr = infoStr.split(" "); var str = provinceName+","+strArr[0]+","+strArr[2]+","+strArr[4]+","+strArr[6]+"\n"; fs.appendFile("code.txt", str, function(err){ if(err) console.log("写入第"+(++num)+"条记失败! " + err); else { console.log("写入第"+(++num)+"条记录成功!"); } }); console.log(provinceName+","+strArr[0]+","+strArr[2]+","+strArr[4]+","+strArr[6]); }); }}
0 0
- node.js 抓取全国区域代码、邮政编码、电话区号
- 行政区划邮政编码身份证号码电话区号
- android国家代码/国际电话区号选择器
- Node.js抓取网页
- 世界各国电话区号定义
- 国家电话区号
- java代码校验手机号,带区号固定电话和400类型的固定电话
- mysql省市区邮政编码和区号级联sql文件
- 中国行政区编码_邮政编码_区号编码
- 026电话区号之争!
- 中国电话区号(CSV)
- Python爬全国邮政编码的程序
- 全国邮政编码规律,及正则表达式
- 能够sqlload到ORACLE的全国区号
- 使用node.js cheerio抓取网页数据
- 使用node.js cheerio抓取网页数据
- 使用node.js cheerio抓取网页数据
- node.js 小爬虫抓取网页数据
- centos php 安装memcached 扩展 支持sasl
- JQuery防止退格键网页后退
- NSString使用整理
- Problem 1
- 洪涝淹没分析输出淹没范围图、深度图及面积体积等信息
- node.js 抓取全国区域代码、邮政编码、电话区号
- 怎么阅读源码
- android学习一---搭建开发环境
- Android Looper详解
- 1《大话操作系统——做坚实的工程实践派》(8.1)(指令集未完待续)
- NSRange 用法
- JavaWeb_JavaEE_命名规则
- Android多线程下载
- nginx中时间的管理