python简单爬虫获取行政边界点坐标

最近刚开始学用python进行简单爬虫,(关于python简单爬虫网易云课堂上有教程,俩小时学会http://study.163.com/course/courseMain.htm?courseId=1003285002),这里用到的工具是教程中提到的jupyter notebook

首先打开chrome浏览器,进入百度地图,点开开发者工具-network:
python简单爬虫获取行政边界点坐标_第1张图片

假设我们要爬取的是成都市双流区的边界点坐标,在搜索栏中输入双流区,点击清空按钮清屏,再点击搜索
python简单爬虫获取行政边界点坐标_第2张图片

可以看到地图中多了一个行政区图层,我们需要做的是观察下方的响应,找到图层对应的链接,通过简单搜寻可以发现在XHR下的某个文件,它的response可能包含了行政点信息:
python简单爬虫获取行政边界点坐标_第3张图片

通过点开链接发现的确如此:
python简单爬虫获取行政边界点坐标_第4张图片

该网址如下:
https://map.baidu.com/?newmap=1&reqflag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=pc4.1&qt=ext&num=1000&l=10&uid=969ab43816104a0cb54f54e4&tn=B_NORMAL_MAP&nn=0&ie=utf-8&b=(11524830.669662053,3523233.4366656514;11632785.714980276,3576021.624079733)&t=1534420430415
观察网址构成,发现uid部分应该是行政编号信息,因此编写程序:
from bs4 import BeautifulSoup
import requests
url=’https://map.baidu.com/?newmap=1&reqflag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=pc4.1&qt=ext&num=1000&l=10&uid={}&tn=B_NORMAL_MAP&nn=0&ie=utf-8&b=(11524830.669662053,3523233.4366656514;11632785.714980276,3576021.624079733)&t=1534420430415’
id=’969ab43816104a0cb54f54e4’
mapurl=url.format(id)
res=requests.get(mapurl)
res.encoding=’utf-8’
soup=BeautifulSoup(res.text,’html.parser’)
print(res.text)
理论上,只要知道各行政区的代码,便可以编写循环遍历所有需要的行政区边界点数据。

你可能感兴趣的:(python简单爬虫获取行政边界点坐标)