python封装界面_Python爬虫图形界面封装版本

文章转自我自己的CSDN(所以肯定还是原创啦!)

功能

用图像界面的封装好的爬虫

用于爬取网页的超链接和对应的文字(Text)

使用的库

import tkinter

import requests

from bs4 import BeautifulSoup

运行效果:

初始界面

输入情况

点击查询

[图片上传失败…(image-806b75-1513053987110)]

代码:

# -*- coding: utf-8 -*-

import requests

import tkinter

from bs4 import BeautifulSoup

class FindURL(object):

def __init__(self):

# 创建主窗口

self.root = tkinter.Tk()

self.root.minsize = (600, 400)

self.frame = tkinter.Frame(self.root)

self.frame.pack()

# 设置标题

self.root.title("URL查找")

# 创建一个输入框

self.url_input = tkinter.Entry(self.frame, width=30)

self.display_info = tkinter.Listbox(self.root, width=50)

# 创建一个查询按钮

self.result_button = tkinter.Button(self.frame, command=self.find_URL_a, text="查询")

self.url_input.focus()

def gui_arrange(self):

self.url_input.pack(side=tkinter.LEFT)

self.display_info.pack()

self.result_button.pack(side=tkinter.RIGHT)

def find_URL_a(self):

self.url = self.url_input.get()

self.url_input.delete(0, tkinter.END)

self.display_info.delete(0, tkinter.END)

if len(self.url) <= 7:

return

self.res = requests.get('http://www.baidu.com') # 设置default值

if ('.cn'in self.url or '.com' in self.url) and self.url[0:6] != 'http:/':

if self.url[0:7] != 'https:/':

res2 = requests.get('http://' + self.url)

if res2.status_code == 200:

self.res = res2

else:

res2 = requests.get('https://' + self.url)

if res2.status_code == 200:

self.res = res2

self.res.encoding = 'utf-8'

self.soup = BeautifulSoup(self.res.text, 'html.parser')

MESSAGE = []

for line in self.soup.find_all('a'):

if line.find(text=True) and line.has_attr('href'):

self.display_info.insert(tkinter.END, line.find(text=True) + " : " + line['href'])

MESSAGE.append(line['href'])

elif line.has_attr('href'):

self.display_info.insert(tkinter.END, line['href'])

MESSAGE.append(line['href'])

else:

self.display_info.insert(tkinter.END, "No Expect Message!!!")

return MESSAGE

def main():

FL = FindURL()

FL.gui_arrange()

tkinter.mainloop()

pass

if __name__ == "__main__":

main()

作者:肥宅_Sean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值