懵懂的菜鸟

Stay hungry,Stay foolish.

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

python 爬取媒体文件(使用chrome代理,启动客户端,有防火墙)

复制代码
#coding = utf-8
'''
中文转经纬度
'''
import time,json
import urllib.request
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np

AK ='C2hKkyF9fHbmzESq6dmSArZIzw8wEiS1'
table = pd.read_csv('./data/test.csv',encoding='utf-8')
outfp = open('./data/result_test.csv','w',encoding='utf-8')
class LoadData:
    def __init__(self):
        print("start")
        self.m_driver = webdriver.Chrome('D:\Program Files (x86)\ChromeDriver\chromedriver.exe')
        self.loc_result = []

    def get_uri(self, addr, city = ''):
        # try:
        server  = 'http://api.map.baidu.com/geocoder/v2/?'
        params = urllib.parse.urlencode({'address':addr,'city':city,'ak':AK,'output':'json'})
        self.m_driver.get(server+params)
        bs = BeautifulSoup(self.m_driver.page_source,'lxml')
        # temp = bs.prefix
        result = json.loads(bs.pre.get_text())['result']

        location = result.get('location')
        if( location != None ):
            lng = location.get('lng')
            lat = location.get('lat')
        return lng,lat
        # except:
        #     print("error addr:",addr)
        #     return np.NAN,np.NAN

    def get_lng_lat(self, addr):
        lng,lat = self.get_uri(addr)
        if((lng == None) or (lat == None)):
            print("error")
        self.loc_result.append([addr,lng,lat])



    def main(self):
        addr_list = table['ADDRESS'].tolist()

        [self.get_lng_lat(addr) for addr in addr_list]

        outfp.write(str(self.loc_result))

if __name__ == '__main__':
    tStart = time.clock()

    LD = LoadData()
    LD.main()

    tEnd = time.clock()
    print("%s s"%(tEnd - tStart))
复制代码

附录:

chromdriver.exe与chrome版本映射及下载链接

https://blog.csdn.net/mmayanshuo/article/details/78962398

 

posted on   懵懂的菜鸟  阅读(726)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2018-05-11 spass按位置编码,进行排序题处理与分析
点击右上角即可分享
微信分享提示