37行代码实现爬取ip地址并显示到GUI上

首先附上一张成品图

ip地址查询

可以看到,当我们输入了一个ip地址以后,界面中可以马上将该ip地址的地理位置、运营商、时区、经纬度信息清楚的显示出来。是不是已经摩拳擦掌了呢?😁😁😁

1.准备工作

在敲代码之前,我们需要确定电脑上已经安装Python。安装Python传送门

还需要用到Pycharm。最新超详细PyCharm安装激活教程

以及爬虫最常用的模块-----requests模块、GUI模块-----tkinter模块、正则模块-----re模块。如何在PyCharm中安装需要的第三方模块

以上都准备好,我们就可以开始愉快的敲键盘了。🤣🤣🤣

2.代码

首先,我们将需要的模块导入。

from tkinter import *

import requests

import re

然后爬取网站信息,这里我们爬取了“www.ipip.net”网站的信息。(因为网站有反爬取机制,所以我们首先需要伪装成浏览器,然后再去访问。headers里面的内容需要到浏览器中打开网址,然后点击F12,在网络选项中寻找)

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'运营商.*?;">(.*?)</span>', html, re.S)

time= re.search(r'时区.*?;">(.*?)</span>', html, re.S)

warp= re.search(r'地区中心经纬度.*?;">(.*?)</span>', html, re.S)

if address:

        ip_info= ['地理位置: ' + address.group(1), '当前IP: ' + ip]

if operator:

            ip_info.insert(0, '运营商: ' + operator.group(1))

if time:

            ip_info.insert(0, '时区: ' + time.group(1))

if warp:

            ip_info.insert(0, '地区中心经纬度: ' + 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, "当前输入IP无效")

然后创建窗口,并把标题、输入框、回显列表以及确认按钮添加进去。

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 = '确认')

ip_input.pack()

display_info.pack()

result_btn.pack()

设置程序入口,并运行窗口

if __name__== '__main__':

    tk.mainloop()

3.大功告成,数一下的确是37行代码哦😁,赶快运行试试吧。(需要源代码私信我哦)


需要代码私信我哦
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1》当我们要声明的变量很长时, 我们可以使用Heredoc结构形式的方法来解决该问题,首先使用定界符表示字符串(<...
    jiegiser阅读 741评论 0 0
  • 1. 你就是动不起来互联网时代,各行业大咖知识方法论分享铺天盖地.英语学习的秘诀,每天进步的秘密,好好学习天天向上...
    007曾瑞英阅读 368评论 0 1
  • 向六六推荐这部电影,她在《101斑点狗》和《忠犬八公》之间纠结良久,最后咬牙同意我们的决定。 当威利飞跃海堤,像一...
    六爸啦啦啦阅读 434评论 0 0