文章采集完(释放双眼,带上耳机,听听看~!(本文目录))

优采云 发布时间: 2022-04-15 20:27

  文章采集完(释放双眼,带上耳机,听听看~!(本文目录))

  放开眼睛,戴上耳机,听~!

  本文内容

  本文介绍国家统计局于2019-01-31发布的《2018年统计区划代码和城乡区划代码(截至2018年10月31日)》的采集。

  对比采集2016和2017版本使用的js代码,已经做了很大的优化和调整,我将打开文章来介绍这个V2版本。旧版本 文章。

  19-03-22 2018年新采集城市数据

  资料下载GitHub:

  数据预览

  

  数据源

  国家统计局《2018年统计区划代码和城乡区划代码(截至2018年10月31日)》统计标准为撰写本文时的最新版本。

  

  数据采集

  对于data采集,根据工作需要,一些小的data采集函数有一些联系。因为对html和js比较熟悉,所以用IE浏览器支持本地html文件任意跨域ajax请求数据,并且支持读写Excel文件,所以直接写了一个html文件作为采集工具供他人使用,批量查询人员信息、检测结果等功能。所以采集js主要用于省市数据。

  由于新版chrome有编码问题,统计局使用的是gb2312,会造成乱码。chrome 41的古董版没有问题,所以采集都是在chrome41下完成的。我自己做了一个便携版的Chrome,实现了多个版本的共存。

  1. 抓取原创数据

  涉及源码:1_国家统计局抓取城市信息.js

  进入统计局页面,执行代码完成抓包,打开4个模拟线程,抓包省、市、镇4级数据还是很快的,采集3400+页,第一次跑1个左右分钟 花了几分钟才完成 采集 (我的截图是打开浏览器缓存的,所以有4秒的错觉。写这篇文章的时候,一个url被挂了,我没有'不知道统计局服务器是否有问题)。

  

  采集完成后,会自动弹出保存的文件数据。

  2. 拼音转换

  这就需要找个接口把文字转成拼音。要求只有一个:重庆可以正常翻译成重庆,翻译成中青低。如果满足这个条件,百度上搜索到的99%的翻译网站都会被淘汰。

  另外,Github 上很多高星级开源库的转换性能并不理想。我尝试了hotoo/pinyin并打开了分词。复音词的成绩差不了多少,所以放弃了。最后使用hankcs/HanLP的python库进行转换。地名中对复音词的支持仍然有限。很多地名都转换成斗囧,但都是同类型中最好的。

  之前找到的翻译界面对拼音的转换准确率最高。据说是根据《新华词典》、《现代汉语词典》等规范词典校对的。不过,这个站从去年开始就对IP进行了限制。它曾经是随便转换的。从2017版数据采集开始,一直被克制。整个翻译过程接口调用不超过10次,中间可能需要改1-3次。代理(已实现用js自动切换代理)。

  转换过程

  因为这个采集的数据量比较大,省市级的数据只有3400条,而镇级的数据却有2万多条。转换压力有点大。所以省级和市级使用qqxuizi的高精度接口,镇级使用本地HanLP转换接口。另外,使用全名进行转换,比以前使用缩写短名和多音字更准确。

  使用 HanLP 库进行本地转换,准确率低

  涉及源代码:2_1_ Grab Pinyin.js

  首先打开拼音转换python服务,服务程序在Github.pinyin-python-server目录下,按照介绍运行。

  然后执行刚才抓取的页面中的js代码。当我写手稿时,我又跑了一遍。用了 4 个模拟线程和 5 分钟,完成了所有 4.70,000 条数据的传输。

  

  为什么不用python直接传输,还得通过http请求呢?答:不会写,方便使用其他机器提供的接口,不用在本地搭建服务(我临时搭建了一个拼音接口测试服务器,可以测试)。

  使用qqxiuzi重新转换省市3级,准确率高

  涉及源代码:2_2_ Grab Pinyin.js

  运行代码,然后根据提示导入上一步保存的数据,然后再次运行代码。如果IP被封,需要手动切换代理,或者根据源码中的提示设置SwitchyOmega自动切换代理。

  

  整个转换过程大约需要1分钟,如果找到有效代理的速度较慢,可能需要更长的时间。(缓存拼音结果源代码中部分代码错误,等待下次采集修复,写稿时找到)

  3. 处理数据并导出 CSV

  涉及的源代码:3_format.js

  处理数据相对简单,但由于对数据的分析,花费的时间最多。此外,新增港澳台4个海外数据。此外,去掉民族自治区、州、县、旗的后缀;民族乡镇。还有几个后缀被去掉的,城市|县|乡|镇|街道|街道办事处|地区办事处|社区服务中心,少一些的后缀没有去掉,有些地名可能有歧义。

  代码运行后会自动弹出保存csv文件数据。

  

  终于

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线