Python爬虫图形界面封装版本
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫图形界面封装版本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
功能
用圖像界面的封裝好的爬蟲
用于爬取網頁的超鏈接和對應的文字(Text)
使用的庫
import tkinter
import requests
from bs4 import BeautifulSoup
運行效果:
點擊查詢
代碼:
# -*- coding: utf-8 -*- import requests import tkinter from bs4 import BeautifulSoupclass 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:returnself.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 = res2else:res2 = requests.get('https://' + self.url)if res2.status_code == 200:self.res = res2self.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 MESSAGEdef main():FL = FindURL()FL.gui_arrange()tkinter.mainloop()passif __name__ == "__main__":main()最后,老套路,宣傳一波自己的公眾號!(求關注哇!)
本人中大一肥宅,歡迎大家關注,請掃下面的二維碼(〃’▽’〃)
總結
以上是生活随笔為你收集整理的Python爬虫图形界面封装版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不一样的随机数生成方法(C/C++)
- 下一篇: 翻译软件(用百度的API实现)Pytho