摘要:由于個人需要國內(nèi)所有省市區(qū)的地址段和經(jīng)緯度的對應(yīng)關(guān)系,最好是數(shù)據(jù)庫可以直接使用的數(shù)據(jù)源,經(jīng)調(diào)研發(fā)現(xiàn)可以使用百度來實現(xiàn)這個功能,主要是找到所有的地址段然后調(diào)用查詢,主要是用做異步爬蟲來實現(xiàn)的,你可以使用百度開發(fā)者賬號申請并發(fā)數(shù)從下載段,節(jié)約時
由于個人需要國內(nèi)所有省市區(qū)的ip地址段和經(jīng)緯度的對應(yīng)關(guān)系,最好是數(shù)據(jù)庫可以直接使用的數(shù)據(jù)源,經(jīng)調(diào)研發(fā)現(xiàn)可以使用百度API來實現(xiàn)這個功能,主要是找到所有的ip地址段然后調(diào)用api 查詢,
主要是用Tornado 做異步爬蟲來實現(xiàn)的,</>復(fù)制代碼
import time
import json
from datetime import timedelta
from bs4 import BeautifulSoup
import os
from tornado import httpclient, gen, ioloop, queues
from api import map_ip_region_provice
AK = "umG08TkpEwmRWkUPx4MaM0FGW3h4i4L" # 你可以使用百度開發(fā)者賬號申請
base_url = "http://api.map.baidu.com/location/ip?ak={1}&ip={0}"
IP_URL = "https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt"
concurrency = 20 # 并發(fā)數(shù)
def is_file_exist(result=None):
if result:
result = result
else:
result = []
with open("iplist.txt", "w+") as ipfile:
for i in result:
ipfile.write(i)
ipfile.write("
")
return result
def get_iplist():
"""
從github 下載ip 段
"""
# check ip is exist, 節(jié)約時間
result = list()
flag = is_file_exist()
if flag:
return flag
else:
http_client = httpclient.HTTPClient()
try:
response = http_client.fetch(IP_URL)
respone = response.body
except httpclient.HTTPError as e:
print("Error: " + str(e))
except Exception as e:
# Other errors are possible, such as IOError.
print("Error: " + str(e))
http_client.close()
respone = BeautifulSoup(respone, "lxml")
div = respone.find("table",
attrs={"class",
"highlight tab-size js-file-line-container"})
trs = div.find_all("td", attrs={"class": "blob-code blob-code-inner js-file-line"})
for tr in trs:
temp = tr.string
result.append(temp)
print("fetch ip .....")
is_file_exist(result)
具體可以查看
https://fizblog.cn/blog?title...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41182.html
摘要:需求從手工填寫的地址中,解析出省市區(qū)信息方法使用百度地圖正逆地理編碼雖然百度地圖提供地點檢索,但是是需要傳入行政區(qū)信息的根據(jù)正地理編碼服務(wù)接口將地址轉(zhuǎn)換為經(jīng)緯度,然后根據(jù)經(jīng)緯度調(diào)用逆地理編碼服務(wù)接口,得到結(jié)構(gòu)化的行政區(qū)信息代碼你的百度地圖返 需求: 從手工填寫的地址中,解析出省市區(qū)信息 方法 使用百度地圖api正/逆地理編碼PS: 雖然百度地圖提供地點檢索,但是是需要傳入行政區(qū)信息的 ...
摘要:極致的插件機(jī)制,系統(tǒng)內(nèi)的系統(tǒng),安裝和卸載不會對原來的系統(tǒng)產(chǎn)生影響強(qiáng)大的功能完全滿足各階段的需求,支持用戶多端訪問后臺微信前臺等,系統(tǒng)中的系統(tǒng)。多入口模式,多入口分為后臺前端,微信,對內(nèi)接口,對外接口,不同的業(yè)務(wù),不同的設(shè)備,進(jìn)入不同的入口。 RageFrame 2.0 為二次開發(fā)而生,讓開發(fā)變得更簡單 項目地址:https://github.com/jianyan74/... 前言 這...
摘要:極致的插件機(jī)制,系統(tǒng)內(nèi)的系統(tǒng),安裝和卸載不會對原來的系統(tǒng)產(chǎn)生影響強(qiáng)大的功能完全滿足各階段的需求,支持用戶多端訪問后臺微信前臺等,系統(tǒng)中的系統(tǒng)。多入口模式,多入口分為后臺前端,微信,對內(nèi)接口,對外接口,不同的業(yè)務(wù),不同的設(shè)備,進(jìn)入不同的入口。 RageFrame 2.0 為二次開發(fā)而生,讓開發(fā)變得更簡單 項目地址:https://github.com/jianyan74/... 前言 這...
摘要:為了方便廣大的開發(fā)者,特此統(tǒng)計了網(wǎng)上諸多的免費,為您收集免費的接口服務(wù),做一個的搬運工,以后會每月定時更新新的接口。將長段中文切詞分開。 為了方便廣大的開發(fā)者,特此統(tǒng)計了網(wǎng)上諸多的免費API,為您收集免費的接口服務(wù),做一個api的搬運工,以后會每月定時更新新的接口。有些接口來自第三方,在第三方注冊就可以成為他們的會員,免費使用他們的部分接口。 百度AccessToken:針對HTTP ...
閱讀 2570·2021-11-23 09:51
閱讀 3365·2021-11-22 15:22
閱讀 1878·2021-11-18 13:22
閱讀 2273·2021-09-24 09:48
閱讀 1319·2019-08-29 13:58
閱讀 1310·2019-08-26 13:39
閱讀 2453·2019-08-26 10:48
閱讀 3042·2019-08-26 10:21