溫馨提示×

python gui爬蟲如何實現數據導出

小樊
117
2024-12-11 01:55:12
欄目: 編程語言

在Python中,你可以使用Tkinter庫來創建一個簡單的GUI應用程序,并使用requests和BeautifulSoup庫來實現網頁數據的抓取和導出。以下是一個示例代碼,展示了如何創建一個GUI應用程序來抓取網站數據并將其導出到CSV文件:

首先,確保已經安裝了所需的庫:

pip install tkinter requests beautifulsoup4 pandas

然后,創建一個名為web_scraper.py的文件,并將以下代碼粘貼到文件中:

import tkinter as tk
from tkinter import ttk
import requests
from bs4 import BeautifulSoup
import pandas as pd

class WebScraperApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Web Scraper")

        # 輸入框和標簽
        ttk.Label(root, text="URL:").grid(row=0, column=0, padx=10, pady=10)
        self.url_entry = ttk.Entry(root, width=50)
        self.url_entry.grid(row=0, column=1, padx=10, pady=10)

        # 選擇導出文件的按鈕
        self.export_button = ttk.Button(root, text="Export to CSV", command=self.export_data)
        self.export_button.grid(row=1, column=0, columnspan=2, pady=10)

        # 進度條
        self.progress = ttk.Progressbar(root, orient="horizontal", length=300, mode="indeterminate")
        self.progress.grid(row=2, column=0, columnspan=2, pady=10)

    def fetch_data(self):
        url = self.url_entry.get()
        response = requests.get(url, stream=True)
        soup = BeautifulSoup(response.content, "html.parser")
        # 根據網頁結構提取數據,這里需要根據實際情況進行修改
        data = []
        for item in soup.find_all("div", class_="item"):
            title = item.find("h2").text
            description = item.find("p").text
            data.append({"title": title, "description": description})
        return data

    def export_data(self):
        self.progress["value"] = 0
        self.progress["mode"] = "indeterminate"
        self.root.update()

        data = self.fetch_data()
        df = pd.DataFrame(data)
        df.to_csv("output.csv", index=False)

        self.progress["value"] = 100
        self.progress["mode"] = "determinate"
        self.root.update()

if __name__ == "__main__":
    root = tk.Tk()
    app = WebScraperApp(root)
    root.mainloop()

在這個示例中,我們創建了一個簡單的GUI應用程序,用戶可以輸入一個URL,然后點擊"Export to CSV"按鈕來抓取網頁數據并將其導出到CSV文件。請注意,你需要根據你要抓取的網頁的實際結構來修改fetch_data方法中的代碼。

運行這個程序,你將看到一個包含輸入框、按鈕和進度條的簡單GUI。輸入一個URL,然后點擊"Export to CSV"按鈕,程序將抓取網頁數據并將其導出到名為output.csv的文件中。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女