您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Python通過tkinter實現(xiàn)百度搜索的代碼”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Python主要應用于:1、Web開發(fā);2、數(shù)據(jù)科學研究;3、網(wǎng)絡爬蟲;4、嵌入式應用開發(fā);5、游戲開發(fā);6、桌面應用開發(fā)。
""" 百度搜索可視化 """ import tkinter import win32api from selenium.webdriver import Chrome entry = None def callback(): global entry keywords = entry.get() if not keywords: win32api.MessageBox(0, '請輸入搜索關鍵字', '提示', 0) return chrome = Chrome() chrome.get('https://www.baidu.com/') chrome.find_element_by_id('kw').send_keys(keywords) chrome.find_element_by_id('su').click() # bilibili關鍵字搜索 # chrome.get('https://www.bilibili.com/') # chrome.find_element_by_xpath('//form[@id="nav_searchform"]/input').send_keys(keywords) # chrome.find_element_by_xpath('//div[@class="nav-search-btn"]/button').click() def main(): global entry tk = tkinter.Tk() # tk.resizable(width=False,height=False) # 固定窗體大小?無效 tk.title('百度搜索') # 1.設置窗體居中 # screenwidth = tk.winfo_screenwidth() # 獲取屏幕寬度 # screenheight = tk.winfo_screenheight() # 獲取屏幕高度 # # 計算窗體大小,位置參數(shù),width,height:窗體寬高 # width = 100 # height = 50 # size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) # tk.geometry(size) # 設置窗體位置為屏幕居中 # 2.設置窗體右下角,無效 # screenwidth = tk.winfo_screenwidth() # 獲取屏幕寬度 # screenheight = tk.winfo_screenheight() # 獲取屏幕高度 # print(screenwidth,screenheight) # # 計算窗體大小,位置參數(shù),width,height:窗體寬高 # width = 100 # height = 50 # size = '%dx%d+%d+%d' % (width, height, (screenwidth - width), (screenheight - height)) # tk.geometry(size) # 設置窗體位置為屏幕右下角 # 獲取窗體x,y # tk.update() # print(tk.winfo_x()) # print(tk.winfo_y()) tk.geometry('+0+0') # 固定屏幕左上角 # tk.geometry('+1440+770') entry = tkinter.Entry(tk) entry.pack() button = tkinter.Button(tk, text='百度一下', command=callback) button.pack() tk.mainloop() if __name__ == '__main__': main()
# coding: utf-8 import os import time import requests import urllib.parse from bs4 import BeautifulSoup from urllib.parse import urlparse from fake_useragent import UserAgent from multiprocessing.pool import ThreadPool LOCATIONS = {} GLOBAL_THREAD = 500 GLOBAL_TIMEOUT = 50 def get_links(keyword, generator, pages): links = [] for page in range(int(pages.split("-")[0]), int(pages.split("-")[1]) + 1): for genera in range(int(generator.split("-")[0]), int(generator.split("-")[1]) + 1): links.append( "http://www.baidu.com.cn/s?wd=" + urllib.parse.quote(keyword + str(genera)) + "&pn=" + str(page * 10)) return links def get_page(url): headers = {"user-agent": UserAgent().chrome} req = requests.get(url, headers=headers) req.encoding = "utf-8" soup = BeautifulSoup(req.text, "lxml") for link in soup.select("div.result > h4.t > a"): req = requests.get(link.get("href"), headers=headers, allow_redirects=False) if "=" in req.headers["location"]: root = urlparse(req.headers["location"]).netloc LOCATIONS[root] = req.headers["location"] def baidu_search(): try: os.system("cls") print("-" * 56 + "\n") print("| BaiduSearch Engine By 美圖博客[https://www.meitubk.com/] |\n") print("-" * 56 + "\n") keyword = input("Keyword: ") generator = input("Generator(1-10): ") pages = input("Pages(0-10): ") start = time.time() pool = ThreadPool(processes=GLOBAL_THREAD) pool.map(get_page, get_links(keyword, generator, pages)) pool.close() pool.join() end = time.time() path = r"D:\Desktop\result.txt" save_result(path) print("\nSava in %s" % path) print("Result count: %d" % len(LOCATIONS.values())) print("Running time: %ds" % (end - start)) except: print("\nInput Error!") exit(0) def save_result(path): with open(path, "w") as file: for url in list(LOCATIONS.values()): file.write(url + "\n") baidu_search()
“Python通過tkinter實現(xiàn)百度搜索的代碼”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。