怎么利用python爬取城市公交站点

技术怎么利用python爬取城市公交站点本篇内容介绍了“怎么利用python爬取城市公交站点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

本文介绍了“如何用python爬城市公交站”的相关知识。很多人在实际办案过程中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

页面分析

https://guiyang.8684.cn/line1

怎么利用python爬取城市公交站点

怎么利用python爬取城市公交站点

爬虫

我们使用请求来解析和获取我们的网站数据,方法是使用美化组。拿到公交站牌后,我们用高德api获取站牌的经纬度坐标,用熊猫分析json文件。接下来,我推荐使用面向对象的方法编写代码。

导入请求

importjson

frombs4importBeautifulSoup

importpandasaspd

classbus_stop:

# #定义一个类来获取站点名称和每辆车的经纬度。

def__init__(self):

self.url=贵阳. 8684.cn/line{} '

self.starnum=[]

forstar _ num range(1,17):

self.starnum.append(start_num)

self.payload={}

self . headers={ 0

cookie ' : ' JSESSIONID=48304 F9 E8 d 55 a9 f2f 8 ACC 14 B7 EC 5a 02d ' }

# #致电高德api获取公交线路的经纬度

# # #每个人都可以自己申请这把钥匙。

defget_location(自身,线路):

URL _ API=' https://restapi . AMAP.com/v3/bus/line name?S=rsv3扩展=all key=559 bdffe 35ee c8c 8 F4 DAE 959451d 705 c输出=JSON城市=贵阳偏移=2关键字={}平台=js '。格式(

行)

res=requests.get(url_api)。文本

#print(res)可用于检查返回的信息是否包含您需要的数据。

rt=json.loads(res)

dicts=rt['总线'][0]

#返回df对象

df=pd。data frame . from _ dict([dict])

返回f

# #获取每个汽车站的名称。

defget_line(self):

forstartisen self . star num :

开始=字符串(开始)

#构建网址

url=self.url.format(开始)

res=requests.request(

' GET ',url,标头=self.headers,数据=self.payload)

soup=美化组(res.text,' lxml ')

div=soup.find('div ',class_='listclearfix ')

list=div . find _ all(' a ')

foriteminlists:

亚麻布

bsp;= item.text  # 获取a标签下的公交线路 
 lines.append(line)
 return lines
if __name__ == '__main__':
 bus_stop = bus_stop()
 stop_df = pd.DataFrame([])
 lines = []
 bus_stop.get_line()
 # 输出路线
 print('一共有{}条公交路线'.format(len(lines)))
 print(lines)
 # 异常处理
 error_lines = []
 for line in lines:
 try:
 df = bus_stop.get_location(line)
 stop_df = pd.concat([stop_df, df], axis=0)
 except:
 error_lines.append(line)
 # 输出异常的路线 
 print('异常路线有{}条公交路线'.format(len(error_lines))) 
 print(error_lines)
 # 输出文件大小 
 print(stop_df.shape)
 stop_df.to_csv('bus_stop.csv', encoding='gbk', index=False)

怎么利用python爬取城市公交站点

数据清洗

我们先来看效果,我需要对busstops列进行清洗。我们的总体思路,分列->逆透视->分列。我会接受两种方法,一是Excel PQ,二是python。

怎么利用python爬取城市公交站点

怎么利用python爬取城市公交站点

Excel PQ 数据清洗

这一方法完全利用PQ,纯界面操作,问题不大,所以我们看看流程就可以了,核心步骤就是和上面一样的。

怎么利用python爬取城市公交站点

python数据清洗

## 我们需要处理的busstops列和ID列
data = stop_df[['id','busstops']]
data.head()

怎么利用python爬取城市公交站点

## 字典或者列表分列
df_pol = data.copy()
### 设置索引列
df_pol.set_index('id',inplace=True)
df_pol.head()

怎么利用python爬取城市公交站点

## 逆透视
### 释放索引
df_pol.reset_index(inplace=True)
### 逆透视操作
df_pol_ps = df_pol.melt(id_vars=['id'], value_name='busstops')
df_pol_ps.head()

怎么利用python爬取城市公交站点

## 删除空行
df_pol_ps.dropna(inplace=True,axis=0)
df_pol_ps.shape

怎么利用python爬取城市公交站点

## 分列
### 设置line_id
df_parse['line_id'] = df_pol_ps['id']
df_parse = df_pol_ps['busstops'].apply(pd.Series)
df_parse

怎么利用python爬取城市公交站点

我这里补充一下,我们一般还要对location列进行分列,把Long,lat分列出来,但是我们这里就不做了,都是重复劳动,而且我用的pq清洗,快很多。

## 写入文件
df_parse.to_excel('贵阳市公交站点分布.xlsx', index=False)</pre>

QGIS坐标纠偏

QGIS基础操作,我就不说了,顺便说一下QGIS对csv格式支持较好,我推荐我们导入QGIS的文件为csv格式的文件。

导入csv文件

怎么利用python爬取城市公交站点

坐标纠偏

以前说了很多,我们高德地图上的坐标是GCJ02坐标,我们需要转成WGS 1984坐标,我们在QGIS里面需要借助GeoHey插件。

怎么利用python爬取城市公交站点

怎么利用python爬取城市公交站点

“怎么利用python爬取城市公交站点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/140958.html

(0)

相关推荐

  • 电脑网卡坏了怎么修复,笔记本的无线网卡坏了,怎么办

    技术电脑网卡坏了怎么修复,笔记本的无线网卡坏了,怎么办如果笔记本的无线网络无法连题和硬件问题两种情况电脑网卡坏了怎么修复: 第一、系统问题 无线网络无法连接的原因有:
    1、网卡驱动不正常;
    2、不小心关闭了系统的无线

    生活 2021年10月30日
  • ivy的配置和使用是怎样的

    技术ivy的配置和使用是怎样的本篇文章给大家分享的是有关ivy的配置和使用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。maven很强大,但也有令人

    攻略 2021年11月10日
  • 个人建设银行账户查询,建设银行个人账户余额查询

    技术个人建设银行账户查询,建设银行个人账户余额查询建行银行卡查询余额的办法有个人建设银行账户查询:1.网点查询:持卡人携带身份证、银行卡前往任一建行营业厅,向工作人员提出查询余额申请,在验证个人身份后即可查询。2.ATM

    生活 2021年10月22日
  • 优化算法之间的关系及各自特点的简单分析

    技术优化算法之间的关系及各自特点的简单分析 优化算法之间的关系及各自特点的简单分析1 优化算法
    https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter0

    礼包 2021年11月25日
  • aabc的四字词语有哪些,aabc含反义词的四字词语

    技术aabc的四字词语有哪些,aabc含反义词的四字词语面面相觑aabc的四字词语有哪些、彬彬有礼、孜孜不倦、侃侃而谈、娓娓道来、惴惴不安、翩翩起舞、栩栩如生沾沾自喜、步步为营、炯炯有神、咄咄逼人研究研究、讨论讨论、商量

    生活 2021年10月22日
  • 眼睫毛,有好用的睫毛增长液有哪些推荐

    技术眼睫毛,有好用的睫毛增长液有哪些推荐1眼睫毛、日本canmake睫毛增长液使用感:透明胶状粘稠液体,刷头很软,刷起来比较舒服~但是使用感一般 ,并没有什么有助睫毛生长的作用,比较鸡肋。但是睫毛有明显变黑。2、日本av

    生活 2021年10月28日