抓取全国行政区划(PHP)代码
项目需要,简单写了一个抓取全国行政区划的代码。
class AreaCodeCtrl extends Controller{static function getSubstr($str, $leftStr, $rightStr){$llen = strlen($leftStr);$left = strpos($str, $leftStr);$right = strpos($str, $rightStr,$left + $llen);if($left <0 || $right < $left)return "";return substr($str, $left+$llen, $right - $left-$llen);}public function area(){$prv = [['name'=>'湖北省','code'=>'42','cat'=>'000'], // 有字符集问题.];// http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/foreach($prv as $item) {$data = new Area(['code'=>$item['code'].'0000000000','name'=>$item['name'],]);$data->save();Self::GetCode("http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/{$item['code']}.html");}//Self::GetCode("http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/43.html");}private static function GetCode($url){$raw = http_read($url);try {$raw = iconv('gbk','utf-8//IGNORE',$raw);}catch(ErrorException $e){echo "iconv error \n";}$html = Self::getSubstr($raw,'名称</td>','</TD>');$dec = Self::getSubstr($html,"<tr class='","'>");$body = Self::getSubstr($html,"<tr class='{$dec}'><td>","</table>");$body = substr($body, 0, -12);$rows = explode("</td></tr><tr class='{$dec}'><td>",$body);foreach($rows as $row){if($row{0} == '<'){$suburl = substr($url, 0, strrpos($url,"/")+1).Self::getSubstr($row, "<a href='","'>");$cols = explode('</td><td>',$row);try {$data = new Area(['code'=>Self::getSubstr($cols[0],'>','<'),'name'=>Self::getSubstr($cols[1],'>','<')]);$data->save();echo("{$data->code}, {$data->name}\n");}catch(PDOException $e){Log::info("ERROR: {$cols[0]}, {$cols[1]}");}Self::getCode($suburl);}else{$cols = explode('</td><td>',$row);try{if(count($cols)>2) {$data = new Area(['code'=>$cols[0],'name'=>$cols[2],'tcode'=>$cols[1],]);}else{$data = new Area(['code'=>$cols[0],'name'=>$cols[1],]);}echo("{$data->code}, {$data->name}\n");$data->save();}catch(PDOException $e){Log::info("ERROR: {$data->code}, {$data->name}\n");}}}}
}
抓取全国行政区划(PHP)代码相关推荐
- python+ BeautifulSoup抓取“全国行政区划信息查询平台”的省市区信息
全国行政区划信息查询平台地址:http://xzqh.mca.gov.cn/map 检查网页源码: 检查网页源码可以发现: 所有省级信息全部在javaScript下的json中,会在页面加载时加载js ...
- xpath爬虫-抓取全国行政区划和城乡区划数据
数据来源地址:2020年度全国行政区划和城乡划 代码示例:以安徽省合肥市为例 import requests from lxml import etree import pandas as pddef ...
- Python爬虫小记(2) :抓取全国各省市疫情实时数据 绘制2019-nCoV疫情地图
2021/07/15更新: 没有及时看到评论区反馈的问题,属实抱歉,拉下代码看了一下应该是Pyecharts中Map的data_pair数据类型发生了变化,现将dic_items转化 ...
- python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python自动抓取网管软件的数据_python实现scrapy爬虫每天定时抓取数据的示例代码...
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- 淘宝抓取宝贝买家秀核心代码
#淘宝抓取宝贝买家秀核心代码 def getPhoto(self,*comentlist):try:for comments in comentlist:#print(len(comentlist)) ...
- Python多进程抓取全国邮政编码和长途区号
由于Python设计的限制(就是咱们常用的CPython)最多只能用满1个CPU核心.Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其 ...
- Python抓取全国旅游景点以及小吃数据,想做旅游攻略?Python助你事半功倍。
前言 疫情自从来了之后已经很久没有出去旅游过了,蹭着这段疫情好转,那肯定是要出去走一走的,这一篇其实是全国旅游中的一站,因为每个城市能玩的地方太多了,一篇文章下来肯定是写不了的,所以今天就抓取一下-- ...
最新文章
- vim的简单介绍与使用
- Mybatis加入Ehcache支持
- centos 查找nginx_centos7肿么查看已经安装nginx
- CentOS+lighttpd+php+mysql (fastcgi)环境的搭建(转)
- asp.net razor html,从控制台应用程序中的ASP.NET Razor模板生成HTML的当前最佳解决方案是什么?...
- 学C语言办公本和游戏本,为什么不建议买游戏本?入手前须知,别只看中游戏...
- Android 功耗( 21 )---MTK 低功耗1
- [Javascript]史上最短的IE浏览器判断代码
- Linux线程编程之生产者消费者问题【转】
- 信息安全工程师教程学习笔记汇总(思维导图及考试要点)
- 解决tar.bz2解压报错
- ANSYS FLUENT软件基础介绍
- 计算机桌面设置,电脑入门(十一)桌面个性化设置
- 详解从p12证书提取RSA公私钥和序列号(小白向)
- 网易云信 IM 推送保障及网络优化实践
- html的音频在线地址,HTML 音频(Audio)
- CTFshow--常用姿势
- Python实现Excel拆分操作
- iOS启动速度优化实践分享
- 内核空间:kmalloc vmalloc 用户空间:malloc ptmalloc
热门文章
- Unity3D中开发2D游戏——游戏玩家的出生、无敌、死亡方法
- Spring连接Mysql报Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link fai错
- MKVToolNix 修改电影默认音轨
- 安装Android studio时遇到的问题
- Android OTA升级包制作和验证
- 苹果也是纸老虎,其nano-sim标准真是另人精艳
- CC36 不同的子序列
- 思科踏足中国房地产CCRE首次落地大陆社区
- Node.js:Buffer基础
- Dragon Mainland(龙大陆)深度攻略