来自与京东的省市县数据扩展包-内置爬虫可自行更新-Composer 安装
6月9号高考结束后更新
- 加入了乡镇街道
- 可以将本地的资源插入数据库,不需要爬虫抓取。开箱即用
- 优化了一下命令行的显示和插入速度
php artisan pca:refreshData
您选择从本地文件中载入省市县数据
如果您要强制从京东获取,请执行php artisan pca:refreshData -d jd
已从本地加载数据完毕,共48054条
数据最后更新时间:2019-06-08 22:50:30
正在插入数据库
48054/48054 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
数据已更新完成
共插入:48054条数据,其中省级行政区:34,城市:457,区县:5171,乡镇街道:42392
每次做新东西,涉及到地址的时候都要写一遍,或者找一个更新的省市县数据包
试过了很多数据来源(国家统计局、网上其他开发者提供的json等)
发现还是会有小部分省市有遗漏。
于是自己做了个,数据是来自于京东,毕竟做电商的,相对来说会更准确、详尽一些。
哈哈哈,发现京东把钓鱼岛也写入进去了。真棒
可以通过composer安装,
安装好了以后,执行一下爬虫,就能获取到京东那边的数据了。
内部自带京东省市县数据爬虫,用户可以自行运行爬取最新的省市县数据
项目地址
https://github.com/aoxiang594/laravel-prov...
安装
composer require aoxiang/province-city-area
添加provider
将Aoxiang\Pca\ProvinceCityAreaServiceProvider::class
复制到config.php
内providers
数组内
生成数据库迁移文件:
php artisan vendor:publish --provider="Aoxiang\Pca\ProvinceCityAreaServiceProvider" --tag="migrations"
执行数据库迁移
php artisan migrate
从京东获取新的省市县数据
php artisan pca:refreshData
Demo
<?php
namespace App\Http\Controllers;
use Aoxiang\Pca\ProvinceCityArea;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController{
public function getProvinceList()
{
return response()->json(ProvinceCityArea::getProvinceList());
}
public function getCityList()
{
ProvinceCityArea::getCityList(1);
}
public function test()
{
echo ProvinceCityArea::getName(21, 1827, 40847);
//echo "江西南昌市红谷滩新区";
}
}
第一次发帖,第一次写轮子,翻迎拍砖~
本帖已被设为精华帖!
本帖由系统于 4年前 自动加精
已经star 并且fork,优化了两个地方,提了merge request。 :yum:感谢分享
@丁海军 感谢大佬优化,当时写的时候,就一直在想能不能truncate来着。还有其他写的不好的地方,大佬随时指正。感谢.
@aoxiang594 互相学习
已 star , 感觉不错. :+1:
:grin:相互学习
这个 有国外的地址吗?
搭车安利一份来自淘宝菜鸟物流的扩展包:wi1dcard/china-divisions,同样带爬虫,支持省市区县街道最大五级数据。
@gyp719 全球地址可参考来自 Google 的数据:https://github.com/google/libaddressinput/...(英文文档),测试过十分详细。
我在使用php artisan pca:refreshData -d jd命令时发生一个错误:
我的依赖版本是
错误详情
错误原因:id为60398的记录 name 中出现了空格(类似的资源应该有很多加了空格)
解决方案:过滤字符串中的空格
有点粗暴,但是问题解决了
@Liuzhipeng_laravel 我也是 这个报错,你写在了 src 包RefreshData.php 文件下,希望作者能合并呢
这个 composer 包确实很强大,但是 有个确定,我将这个包用到 laravel-admin ,在编辑查看的时候,很慢很慢,安装了 composer require genealabs/laravel-model-caching 和 composer require spatie/laravel-responsecache:^5.0 ,进行缓存查询SQL 和响应,依旧还是很慢。这个 有什么办法解决吗?
6.x 版本已经不支持了哦,6.x 版本的
guzzlehttp/guzzle
现在给我默认安装的是^7.0
版本然后手动换了
guzzlehttp/guzzle ^6.3
安装 "aoxiang/province-city-area": "^1.2", 不能生成迁移文件
楼主,请问可以更新一下扩展吗?已无法适配最新版laravel