批量查询经纬度

excel格式
在这里插入图片描述

#数据爬取
import requests
from fake_useragent import UserAgent
import pandas as pd
#import xlrd
import numpy as np
from urllib.parse import quote
import re
from time import sleep
from random import randint
import random

place_name  = pd.read_excel('企业信息获取.xlsx')
#place_name = place_name.iloc[0:10,:]
hangshu = place_name.shape[0]
leishu = place_name.shape[1]



class Url_Mnger:
    # hangshu = place_name.shape[0]
    # leishu = place_name.shape[1]
    def Url_join(self,hangshu):
        all_url = []
        for i in range(hangshu):       #长度
                #宽度
            village_name = place_name.iloc[i,1]
            place_encode = quote(village_name)
            url = 'http://api.map.baidu.com/geocoder?address={}'.format(place_encode)
            print(village_name,url)
            all_url.append(url)
        return all_url
#请求发送类
class Response_Cast(object):
    def Get_response(self,url):
        headers={
        'User-Agent':UserAgent().chrome
        }
        response = requests.get(url=url,headers = headers)
        return  response.text
#数据管理类
class Info_Manger:
    def Parse_html(self,info_text):      #解析
        latitude=re.findall(r'<lat>(.+)</lat>',info_text)
        longitude = re.findall('<lng>(.+)</lng>',info_text)
        latitude = latitude[0]
        longitude = longitude[0]
        print(latitude,longitude)
        return latitude,longitude

    # def Data_join(self,latitude,longitude):
    #     lat.append(latitude)
    #     longi.append(longitude)
    #     return lat,longi

    def Make_dataform(self,lat,longi):
        df = pd.DataFrame({'a_point':place_name.iloc[:,1],'a_lat':lat,'a_longi':longi})
        return df
#数据保存
    def Savedata(self,df):
        df.to_excel('geo_data_gaode_quchong.xlsx')
        # with open('geo.csv','w',encoding = 'utf-8') as f:
        #     f.write(df)
        #     f.close()

class Run_Scrapy:
    def __init__(self):
        url_manger = Url_Mnger()
        url_list = url_manger.Url_join(hangshu)
        url_list_length = len(url_list)
        response_cast = Response_Cast()
        info_manger = Info_Manger()
        lat = []
        longi = []
#        print(url_list)
        for url,j in zip(url_list, range(url_list_length)):
            print(j,'/',url_list_length)
  #          sleep(random.uniform(1,5))
            if (j % 100) == 0 :
                # sleep(random.uniform(3, 10))
                response_info = response_cast.Get_response(url)
                info_latitude, info_longitude = info_manger.Parse_html(response_info)
                lat.append(info_latitude)
                longi.append(info_longitude)
#                print(lat,longi)
            else:
                response_info = response_cast.Get_response(url)
                info_latitude,info_longitude = info_manger.Parse_html(response_info)
                lat.append(info_latitude)
                longi.append(info_longitude)
#                print(lat,longi)
      #      if (j % 100) == 10 :
      #          make_dataform = info_manger.Make_dataform(lat,longi)
       #         info_manger.Savedata(make_dataform)
        make_dataform = info_manger.Make_dataform(lat,longi)
        info_manger.Savedata(make_dataform)

if __name__ == '__main__':
    Run_Scrapy()
http://api.map.baidu.com/lbsapi/getpoint/index.html
### 回答1: Geocoding经纬度批量查询是指通过输入一系列经纬度坐标,批量获取对应的地理信息。这个过程一般通过使用地理编码服务来实现。地理编码服务将经纬度转换为具体的位置描述,如地名、街道地址或邮政编码等。 一般而言,进行经纬度批量查询可以通过以下几个步骤来完成: 1. 收集经纬度数据:需要收集一系列经纬度坐标,可以是以文本或表格形式进行存储。 2. 选择地理编码服务:选择一个可靠的地理编码服务提供商,如百度地图、谷歌地图或高德地图等。 3. 数据格式转换:将收集到的经纬度数据转换为地理编码服务可以识别的格式,如CSV或JSON。 4. 调用地理编码API:通过API接口或SDK调用地理编码服务,并传入经纬度数据。 5. 解析响应数据:接收来自地理编码服务返回的数据,并解析出对应的位置信息。 6. 结果处理和存储:将解析得到的位置信息进行后续处理,如保存到数据库或导出到文件。 需要注意的是,不同的地理编码服务可能提供不同的地理数据准确程度和支持范围。在选择地理编码服务时,需要考虑服务的可用性、准确性和对应地理数据的覆盖范围等因素。 总结起来,geocoding经纬度批量查询是一种通过地理编码服务将经纬度坐标转换为地理位置信息的过程。它可以帮助我们在批量处理经纬度数据时,快速、高效地获取到对应的地理信息。 ### 回答2: Geocoding经纬度批量查询是一种将经纬度坐标转换为地理位置信息的方法。这种查询方法可以高效地处理大量的经纬度数据。 在进行geocoding经纬度批量查询时,首先需要准备好待查询经纬度数据集。然后,我们可以利用现有的地理信息系统或者在线地图服务提供商的API,通过调用相应的接口进行查询查询的过程一般分为以下几个步骤:首先,我们需要将待查询经纬度数据转换为特定的格式,例如JSON格式。然后,我们通过HTTP请求调用API接口,并将转换后的数据作为参数传递给接口。 接下来,API接口会将经纬度数据发送给地理编码服务,进行查询。地理编码服务会根据经纬度信息,在其地理信息数据库中查找对应的地理位置信息。一旦查询完成,地理编码服务会将结果返回给API接口。 最后,我们可以通过解析API接口返回的结果,提取出查询的地理位置信息。这些信息可以包括地址、邮政编码、行政区划、地理坐标等等。我们可以将这些信息保存到数据库中,或者进行进一步的数据处理和分析。 总的来说,geocoding经纬度批量查询是一种高效、方便的方法,可以将大量的经纬度数据转换为对应的地理位置信息。它在各种领域中都有广泛的应用,例如地理信息系统、位置服务、物流管理、地理分析等。 ### 回答3: geocoding经纬度批量查询是一种通过给定的经度和纬度坐标,获取对应的地理位置信息的方法。这种查询方法可以用于各种应用场景,例如地图服务、位置感知应用、物流管理等。 在进行经纬度批量查询时,我们通常会使用地理编码服务提供的API接口来实现。首先,我们需要准备一个包含待查询经纬度信息的数据集,可以是一个Excel表格或者数据库中的表。然后,我们需要访问相应的地理编码API,将待查询经纬度作为参数传入。 地理编码API会将经纬度转换为对应的地理位置信息,如国家、省份、城市、街道等。返回结果可以是JSON或XML格式,包含了每个经纬度的地理位置信息。 对于大规模的经纬度批量查询,我们可能需要进行批量处理。可以将查询任务分批发送,以避免一次性发送过多请求导致服务过载。同时,我们还可以利用并行计算的方法,将查询任务分发给多个处理节点,充分利用计算资源提高查询的效率。 在使用地理编码服务时,我们需要关注数据的准确性和服务的稳定性。由于地理位置数据经常更新,我们需要选择可靠的服务提供商,以获取准确的地理位置信息。为了减少查询的延迟和提高服务的可用性,我们还可以选择将地理编码服务部署在就近的服务器上,以减少网络延迟。 总结而言,geocoding经纬度批量查询是一种利用地理编码服务将经纬度转换为地理位置信息的方法。通过合理的查询策略和稳定可靠的服务提供商,我们可以高效地完成大规模的批量查询任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蜗笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值