37行代碼實(shí)現(xiàn)爬取ip地址并顯示到GUI上

首先附上一張成品圖

ip地址查詢

可以看到,當(dāng)我們輸入了一個(gè)ip地址以后,界面中可以馬上將該ip地址的地理位置、運(yùn)營商、時(shí)區(qū)、經(jīng)緯度信息清楚的顯示出來。是不是已經(jīng)摩拳擦掌了呢???????

1.準(zhǔn)備工作

在敲代碼之前,我們需要確定電腦上已經(jīng)安裝Python。安裝Python傳送門

還需要用到Pycharm。最新超詳細(xì)PyCharm安裝激活教程

以及爬蟲最常用的模塊-----requests模塊、GUI模塊-----tkinter模塊、正則模塊-----re模塊。如何在PyCharm中安裝需要的第三方模塊

以上都準(zhǔn)備好,我們就可以開始愉快的敲鍵盤了。??????

2.代碼

首先,我們將需要的模塊導(dǎo)入。

from tkinter import *

import requests

import re

然后爬取網(wǎng)站信息,這里我們爬取了“www.ipip.net”網(wǎng)站的信息。(因?yàn)榫W(wǎng)站有反爬取機(jī)制,所以我們首先需要偽裝成瀏覽器,然后再去訪問。headers里面的內(nèi)容需要到瀏覽器中打開網(wǎng)址,然后點(diǎn)擊F12,在網(wǎng)絡(luò)選項(xiàng)中尋找)

def get_requests():

? ? ip= ip_input.get()

? ? headers= {

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"

? ? }

html= requests.get("https://www.ipip.net/ip/{}.html".format(ip), headers = headers).text

address= re.search(r'地理位置.*?;">(.*?)</span>', html, re.S)

operator= re.search(r'運(yùn)營商.*?;">(.*?)</span>', html, re.S)

time= re.search(r'時(shí)區(qū).*?;">(.*?)</span>', html, re.S)

warp= re.search(r'地區(qū)中心經(jīng)緯度.*?;">(.*?)</span>', html, re.S)

if address:

? ? ? ? ip_info= ['地理位置: ' + address.group(1), '當(dāng)前IP: ' + ip]

if operator:

? ? ? ? ? ? ip_info.insert(0, '運(yùn)營商: ' + operator.group(1))

if time:

? ? ? ? ? ? ip_info.insert(0, '時(shí)區(qū): ' + time.group(1))

if warp:

? ? ? ? ? ? ip_info.insert(0, '地區(qū)中心經(jīng)緯度: ' + warp.group(1))

? ? ? ? display_info.delete(0, 5)

? ? ? ? for itemin ip_info:

? ? ? ? ? ? display_info.insert(0, item)

else:

? ? ? ? display_info.delete(0, 5)

display_info.insert(0, "當(dāng)前輸入IP無效")

然后創(chuàng)建窗口,并把標(biāo)題、輸入框、回顯列表以及確認(rèn)按鈕添加進(jìn)去。

tk= Tk()

tk.title("ip地址查詢")

ip_input= Entry(tk, width = 40)

display_info= Listbox(tk, width = 50, height = 10)

result_btn= Button(tk, command = get_requests, text = '確認(rèn)')

ip_input.pack()

display_info.pack()

result_btn.pack()

設(shè)置程序入口,并運(yùn)行窗口

if __name__== '__main__':

??? tk.mainloop()

3.大功告成,數(shù)一下的確是37行代碼哦??,趕快運(yùn)行試試吧。(需要源代碼私信我哦)


需要代碼私信我哦
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1》當(dāng)我們要聲明的變量很長時(shí), 我們可以使用Heredoc結(jié)構(gòu)形式的方法來解決該問題,首先使用定界符表示字符串(<...
    jiegiser閱讀 798評論 0 0
  • 1. 你就是動(dòng)不起來互聯(lián)網(wǎng)時(shí)代,各行業(yè)大咖知識方法論分享鋪天蓋地.英語學(xué)習(xí)的秘訣,每天進(jìn)步的秘密,好好學(xué)習(xí)天天向上...
    007曾瑞英閱讀 424評論 0 1
  • 向六六推薦這部電影,她在《101斑點(diǎn)狗》和《忠犬八公》之間糾結(jié)良久,最后咬牙同意我們的決定。 當(dāng)威利飛躍海堤,像一...
    六爸啦啦啦閱讀 483評論 0 0

友情鏈接更多精彩內(nèi)容