Python如何爬取北京市所有电子眼名
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,Python如何爬取北京市所有电子眼名,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言今天给大家分享一篇非常实用的文章,用foli
千家信息网最后更新 2024年11月23日Python如何爬取北京市所有电子眼名
Python如何爬取北京市所有电子眼名,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
前言
今天给大家分享一篇非常实用的文章,用folium制作北京市交通电子眼分布地图,再也不怕被隐藏摄像头偷拍了
成果图如下:
此网站可以获取全国各地区的电子眼数据
我们以北京市为例,用python爬取北京市所有电子眼名称,代码如下:
url1='https://www.icauto.com.cn/weizhang/wzd/110000/list_1.html'response=requests.get(url1,headers=header)soup=BeautifulSoup(response.text,'html.parser')results=soup.find('div',class_='cdz-ccotent').find_all('li')for result in results: time.sleep(0.5) name=result.find('a').text index=result.find('span').text.split(':')[1]
经过抓包分析,可以得到根据电子眼名称获取经纬度信息的接口:
https://api.map.baidu.com/?qt=gc&wd=北京西路中坝隧道路段&cn=北京&ie=utf-8&oue=1&fromproduct=jsapi&res=api&ak=s8sS5dBsZ7bLRi3bcVRAaYMAnqlXoyeo
返回结果为:
大家主要看coord参数,刚一看确实有点懵逼,不知道这是啥玩意,我查了半天,才知道这种是百度地图采用的墨卡托平面坐标,利用百度地图api可以转化成经纬度,转化代码如下:
url3='http://api.map.baidu.com/geoconv/v1/?coords={}&from=6&to=5&ak=换成你的ak'.format(str(coord['x'])+','+str(coord['y']))response=requests.get(url3,headers=header)result=json.loads(response.text)['result'][0]lon=result['x']lat=result['y']
最后将结果保存到csv表格中:
with open('dianziyan.csv', 'a+', newline='', encoding='gb18030') as f: f_csv = csv.writer(f) f_csv.writerow([name, index, lon,lat])
2.用folium标点
folium地图标点的方法之前已经有介绍了,可以参考:
python生成广州全市停车场分布地图
代码如下:
import pandas as pddata=pd.read_csv('dianziyan.csv',encoding='gbk')import foliumfrom folium import pluginsCamera_map = folium.Map(location=[data['纬度'].mean(), data['经度'].mean()], zoom_start=10,control_scale=True,)incidents = folium.map.FeatureGroup()for name,row in data.iterrows(): incidents.add_child( folium.CircleMarker( #CircleMarker表示花圆 [row["纬度"], row["经度"]], #每个停车场的坐标 radius=7, #圆圈半径 color='yellow', #标志的外圈颜色 fill=True, #是否填充 fill_color='red', #填充颜色 fill_opacity=0.4, #填充透明度 ) )Camera_map.add_child(incidents)Camera_map.save('Camera_map1.html')
经过放大后可以发现,坐标定位不是很准,有的严重偏离路线,有的甚至定位到湖里了,这是因为底图坐标和电子眼经纬度标准不统一
为了定位更准确,我们把底图和电子眼经纬度统一规范为高德地图
百度经纬度转换成高德经纬度的函数如下:
import mathdef bdToGaoDe(lat,lon): """ 百度经纬度转高德经纬度 :param lon: :param lat: :return: """ PI = 3.14159265358979324 * 3000.0 / 180.0 x = lon - 0.0065 y = lat - 0.006 z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * PI) theta = math.atan2(y, x) - 0.000003 * math.cos(x * PI) lon = z * math.cos(theta) lat = z * math.sin(theta) return lat,lon
读取数据,进行转换:
import pandas as pddata=pd.read_csv('dianziyan.csv',encoding='gbk')for name,row in data.iterrows(): print(bdToGaoDe(row["纬度"],row["经度"]))
将底图换成高德地图,然后将标点转换成电子眼图标:
import foliumfrom folium import pluginsCamera_map = folium.Map(location=[data['纬度'].mean(), data['经度'].mean()], zoom_start=10,zoom_control='False', tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',attr='AutoNavi')incidents = folium.map.FeatureGroup()tooltip ='请点击我查看该点信息'for name,row in data.iterrows(): incidents.add_child( folium.Marker( #CircleMarker表示花圆 [bdToGaoDe(row["纬度"],row["经度"])[0],bdToGaoDe(row["纬度"],row["经度"])[1]], #每个停车场的坐标 icon=folium.Icon(color='green', prefix='fa', icon='bullseye') ) )Camera_map.add_child(incidents)Camera_map.save('Camera_map2.html')
通过tiles可以设置不同的地图瓦片在,这里设置为高德地图瓦片
Folium.Icon类可以设置color, icon_color, icon, angle, prefix这5个参数:
color的可选项包括:['red', 'blue', 'green', 'purple', 'orange', 'darkred', 'lightred', 'beige', 'darkblue', 'darkgreen', 'cadetblue', 'darkpurple', 'white', 'pink', 'lightblue', 'lightgreen', 'gray', 'black', 'lightgray'] ,或者HTML颜色代码icon_color同上icon可以在Font-Awesome网站中找到对应的名字,并设置prefix参数为'fa'angle以度为单位设置
只显示了北京地区的电子眼位置,感兴趣的朋友可以深入研究一下,做一张全国的交通电子眼分布图。
关于Python如何爬取北京市所有电子眼名问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
电子
电子眼
地图
经纬
经纬度
北京
纬度
经度
坐标
高德
北京市
代码
停车场
参数
标点
问题
颜色
定位
交通
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
内部控制审计大数据库
金碟服务器需要单独放一台电脑吗
应天软件开发有限公司
qq服务器挂机
哈尔滨智能语音服务器
北京正规软件开发价钱是多少
服务器怎么变成圣子
知网数据库购买
梦幻西游山东3区服务器云主机
高通基带软件开发
软件开发公司没有进项票
服务器机房管理制度
软件开发工作职责
试讲教案 网络技术
网络安全副局长高林
英国网络安全硕士求职
如何用加密狗管理服务器
药易通软件开发公司
专业软件开发设施有哪些
手机软件开发公司简介
linux切换服务器
网络安全班会主题设计
彩虹6 号围攻服务器怎么样
sqlite数据库驱动
php数据库头像上传
网络技术学校
数据库脱敏 厂家
如何用加密狗管理服务器
花网络安全ppt
qq炫舞服务器正在维护