python3怎么實(shí)現(xiàn)簡(jiǎn)單的ip提取功能

這篇文章主要講解了“python3怎么實(shí)現(xiàn)簡(jiǎn)單的ip提取功能”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python3怎么實(shí)現(xiàn)簡(jiǎn)單的ip提取功能”吧!

創(chuàng)新互聯(lián)建站,為您提供成都網(wǎng)站建設(shè)、網(wǎng)站制作公司、網(wǎng)站營(yíng)銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)成都銅雕雕塑等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

準(zhǔn)備環(huán)境python3,win10系統(tǒng),當(dāng)然linux更好,win下需要安裝reuqests模塊(調(diào)用第三方接口進(jìn)行ip歸屬地查詢需要發(fā)起請(qǐng)求)

\Users\\Desktop>pip install requests
Collecting requests
  Downloading requests-.-py2.py3-none-any.whl (kB)
%  kB kB/s
Collecting chardet<.,>=. (from requests)
  Downloading chardet-.-py2.py3-none-any.whl (kB)
%  kB kB/s
Collecting idna<,>= (from requests)
  Downloading idna--py2.py3-none-any.whl (kB)
%  kB MB/s
Collecting urllib3<,>=. (from requests)
  Downloading urllib3--py2.py3-none-any.whl (kB)
%  kB kB/s
Collecting certifi>=. (from requests)
  Downloading certifi-.-py2.py3-none-any.whl (kB)
%  kB MB/s
Installing collected  chardet, idna, urllib3, certifi, requests
Successfully installed certifi-. chardet-. idna- requests-. urllib3-

我這里調(diào)用阿里的第三方接口進(jìn)行IP歸屬地查詢,接口地址http://ip.taobao.com/instructions.php

接口描述
1. 請(qǐng)求接口(GET):
/service/getIpInfo.php?ip=[ip地址字串]
2. 響應(yīng)信息:
(json格式的)國(guó)家 、?。ㄗ灾螀^(qū)或直轄市)、市(縣)、運(yùn)營(yíng)商
3. 返回?cái)?shù)據(jù)格式:
{:0,:{:,:,:,
:,:,:,:,
:,:,:,:,
:,:}}
其中code的值的含義為,0:成功,1:失敗。

這里大概介紹一下思路,讀取文件,定義函數(shù),進(jìn)行循環(huán),發(fā)起請(qǐng)求,接收參數(shù),判斷,篩選并寫入文件,完成。

運(yùn)行python文件先寫頭文件格式,告訴系統(tǒng)運(yùn)行python3的代碼,并且以u(píng)tf-8編碼

#!usr/bin/python3#-*-coding:utf-8-*-
 requests
 requests


 requests

    URL =  + ip
    r = requests.get(,timeout=) 
    print() 
ip = 
checkip(ip)

運(yùn)行代碼結(jié)果如下,初步判斷代碼應(yīng)該沒問題

C:\Users\92039\Desktop>python 2.py
test

 requests

    URL =  + ip
    r = requests.get(,timeout=)
    print() 
ip = 
checkip(ip)
 requests

    URL =  + ip
    r = requests.get(,timeout=)
    json_data = r.json() 
    region = json_data[][] 
    print()  
ip = 
checkip(ip)

region = json_data[u'data'][u'region']

此處代碼是按照接口返回的json的格式來寫的

 requests

    URL =  + ip
    r = requests.get(,timeout=)
    json_data = r.json()
    region = json_data[][]
    print(region)  
ip = 
checkip(ip)

C:\Users\92039\Desktop>python 2.py
山西省

測(cè)試成功

即便Python程序的語法是正確的,在運(yùn)行它的時(shí)候,也有可能發(fā)生錯(cuò)誤。運(yùn)行期檢測(cè)到的錯(cuò)誤被稱為異常。大多數(shù)的異常都不會(huì)被程序處理,而是以錯(cuò)誤形式展現(xiàn)

這時(shí)候就要進(jìn)行異常處理

引入try/except

:
        x = /
 ZeroDivisionError  err:
        print(, err)
yichang()
   

C:\Users\92039\Desktop>python 5.py
異常: division by zero

如果未做異常處理將直接報(bào)錯(cuò),導(dǎo)致程序無法繼續(xù)執(zhí)行部

 requests

:
        URL =  + ip
        r = requests.get(URL,timeout=)
        json_data = r.json()
        region = json_data[][]
        print(region)
:

ip = 
checkip(ip)

C:\Users\92039\Desktop>python 2.py

山西省

接下來加入if判斷

 requests

:
        URL =  + ip
        r = requests.get(URL,timeout=)
        json_data = r.json()
        region = json_data[][]
 region == :

:

:

ip = 
checkip(ip)

然后需要加入打開文件部分的代碼

當(dāng)做文件處理時(shí),需要獲取一個(gè)文件句柄,從文件中讀取數(shù)據(jù),然后關(guān)閉文件句柄。

file = open()
data = file.read()
file.close()
   

這里有兩個(gè)問題。一是可能忘記關(guān)閉文件句柄;二是文件讀取數(shù)據(jù)發(fā)生異常,沒有進(jìn)行任何處理

然而with可以很好的處理上下文環(huán)境產(chǎn)生的異常

= f.read()

 open()  f:       
    ips = f.read().split()   
 ip  ips:               
        print(ip)

ips.txt中寫入了3個(gè)ip

222.31.41.253 #山西省
202.12.15.52  #日本
61.135.169.12 #北京

運(yùn)行結(jié)果

C:\Users\92039\Desktop>python 3.py

222.31.41.253
202.12.15.52
61.135.169.121

將該模塊加入到代碼中

 requests

:
        URL =  + ip
        r = requests.get(URL,timeout=)
        json_data = r.json()
        region = json_data[][]
 region == :
            print(ip)
:

:

 open()  f:
    ips = f.read().split()
 ip  ips:
        print(ip)
        checkip(ip)

C:\Users\92039\Desktop>python 2.py
222.31.41.253  
222.31.41.253  
202.12.15.52
61.135.169.121

因?yàn)橛袃纱屋敵觯瑢儆谏轿魇〉膇p會(huì)打印兩次,由運(yùn)行結(jié)果可知只有第一個(gè)ip屬于山西省

接下來要加入寫入文件的模塊,將屬于山西省的ip全部寫入一個(gè)文件

 open(,)  fw:   
 i  range():
        fw.write()
原有數(shù)據(jù)
1
2
3
4

運(yùn)行腳本后

1
2
3
4
a
a
a
a
a

補(bǔ)充一下文件操作的知識(shí)
文件打開模式    
  • r ,只讀模式【默認(rèn)模式,文件必須存在,不存在則拋出異常】

  • w,只寫模式【不可讀;不存在則創(chuàng)建;存在則清空內(nèi)容】

  • x, 只寫模式【不可讀;不存在則創(chuàng)建,存在則報(bào)錯(cuò)】

  • a, 追加模式【可讀;   不存在則創(chuàng)建;存在則只追加內(nèi)容】,文件指針自動(dòng)移到文件尾。

"+" 表示可以同時(shí)讀寫某個(gè)文件    
  • r+, 讀寫【可讀,可寫】

  • w+,寫讀【可讀,可寫】,消除文件內(nèi)容,然后以讀寫方式打開文件。

  • x+ ,寫讀【可讀,可寫】

  • a+, 寫讀【可讀,可寫】,以讀寫方式打開文件,并把文件指針移到文件尾。

"b"表示以字節(jié)的方式操作,以二進(jìn)制模式打開文件,而不是以文本模式。    
  • rb  或 r+b

  • wb 或 w+b

  • xb 或 w+b

  • ab 或 a+b

    注:以b方式打開時(shí),讀取到的內(nèi)容是字節(jié)類型,寫入時(shí)也需要提供字節(jié)類型,不能指定編碼

將寫入文件的2行代碼加入

 requests

:
        URL =  + ip
        r = requests.get(URL,timeout=)
        json_data = r.json()
        region = json_data[][]
 region == :
 open(,)  fw:
                fw.write( + ip)
:

:

 open()  f:       
    ips = f.read().split()
 ip  ips:
        checkip(ip)

運(yùn)行腳本

:\\92039\> 2

會(huì)在桌面創(chuàng)建一個(gè)a.txt文檔,結(jié)果為

222.31.41.253

感謝各位的閱讀,以上就是“python3怎么實(shí)現(xiàn)簡(jiǎn)單的ip提取功能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)python3怎么實(shí)現(xiàn)簡(jiǎn)單的ip提取功能這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站題目:python3怎么實(shí)現(xiàn)簡(jiǎn)單的ip提取功能
文章來源:http://m.kartarina.com/article29/jdhjch.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、ChatGPT、移動(dòng)網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站設(shè)計(jì)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
主站蜘蛛池模板: 久久亚洲精品无码aⅴ大香| 无码精品人妻一区二区三区免费| 久久午夜无码鲁丝片秋霞| 国产精品毛片无码| 无码国产精品一区二区免费式影视 | 国产精品无码亚洲一区二区三区 | 惠民福利中文字幕人妻无码乱精品| 国模无码人体一区二区| 亚洲AV无码精品国产成人| 国产午夜无码精品免费看| 成年男人裸j照无遮挡无码| 久久精品aⅴ无码中文字字幕重口 久久精品国产亚洲AV无码娇色 | 亚洲日韩欧洲无码av夜夜摸| 久久久久久亚洲av无码蜜芽| 久久亚洲精品成人无码网站| 亚洲精品无码不卡在线播HE| 无码人妻精品一区二区三区99不卡| 久久综合精品国产二区无码| 亚洲精品高清无码视频| 国模无码人体一区二区| 精品无码久久久久久久动漫| 国产av无码久久精品| 色国产色无码色欧美色在线| 亚洲国产av高清无码| 久久午夜无码鲁丝片秋霞| 久久久久久久无码高潮| 无码免费一区二区三区免费播放| 亚洲免费日韩无码系列 | 伊人久久精品无码av一区| 亚洲?V无码乱码国产精品| 无码乱码观看精品久久 | 亚洲AV无码乱码在线观看性色扶| 亚洲AV综合色区无码一二三区| 精品欧洲av无码一区二区14| 人妻av无码一区二区三区| 久久水蜜桃亚洲av无码精品麻豆| 久久青青草原亚洲av无码app| 久久午夜无码鲁丝片秋霞| 一本色道久久综合无码人妻| 人妻av中文字幕无码专区| 色综合久久久无码中文字幕波多|