動態

詳情 返回 返回

【爬蟲工具】2025微博採集軟件,根據搜索關鍵詞批量爬帖子,突破50頁限制! - 動態 詳情

本軟件工具僅限於學術交流使用,嚴格遵循相關法律法規,符合平台內容合法合規性,禁止用於任何商業用途!

一、背景分析

1.1 開發背景

微博是國內非常流行的社交媒體平台,內容主要以文字和圖片為主,在實時性和KOL關注熱度方面尤為突出。廣大網友在微博平台大量輸出自己的觀點、看法,組成了一個活躍度極高的社區羣體。同時,我本人也發現,每次熱點事件爆發的時候,微博熱搜也是所有媒體平台裏最先曝光的平台(其他平台或多或少都有一些延遲)

基於此,我用python開發了一個爬蟲採集軟件,叫【爬微博搜索軟件】,下面詳細介紹。

1.2 軟件界面

軟件界面,如下:

軟件運行界面

1.3 結果展示

爬取結果:(截圖中展示的就是全部字段了)

微博帖子採集結果

1.4 演示視頻

軟件運行演示:原文有。

1.5 軟件説明

幾點重要説明,請詳讀了解:

  1. Windows用户可直接雙擊打開使用,無需Python運行環境,非常方便!
  2. 軟件通過爬蟲程序爬取,經本人專門測試,運行持久,穩定性較高!
  3. 先在cookie.txt中填入自己的cookie值,方便重複使用(內附cookie獲取方法)
  4. 支持多個關鍵詞串行爬取
  5. 支持按時間段範圍採集貼子
  6. 爬取過程中,每爬一頁,存一次csv。並非爬完最後一次性保存!防止因異常中斷導致丟失前面的數據(每條間隔1~2s)
  7. 爬取過程中,有log文件詳細記錄運行過程,方便回溯
  8. 結果csv含11個字段,有:關鍵詞,頁碼,微博id,微博鏈接,用户暱稱,用户主頁鏈接,發佈時間,轉發數,評論數,點贊數,微博內容。

以上是現有功能,軟件版本持續更新中。

二、主要技術

軟件全部模塊採用python語言開發,主要分工如下:

tkinter:GUI軟件界面
requests:爬蟲請求
BeautifulSoup:解析響應數據
pandas:保存csv結果、數據清洗
logging:日誌記錄

出於版權考慮,暫不公開源碼,僅向用户提供軟件使用。

三、功能介紹

3.0 填寫cookie

開始採集前,先把自己的cookie值填入cookie.txt文件。

pc端微博cookie獲取説明:

cookie獲取方法

然後把複製的cookie值填寫到當前文件夾的cookie.txt文件中。

3.1 軟件登錄

用户登錄界面:

用户登錄

3.2 採集微博帖子

根據自己的實際情況,在軟件界面填寫採集條件,點擊開始按鈕:

軟件界面介紹

完成採集後,在當前文件夾生成對應的csv文件,文件名以時間戳命名,方便查找。

四、重要技術棧

軟件全部模塊採用python語言開發,主要分工如下:

tkinter:GUI軟件界面
requests:爬蟲請求
BeautifulSoup:解析響應數據
pandas:保存csv結果、數據清洗
logging:日誌記錄

軟件界面核心源碼實現:

# 創建主窗口
root = tk.Tk()
root.title('微博搜索採集軟件v1.3')
# 設置窗口大小
root.minsize(width=900, height=650)

日誌記錄核心源碼實現:

def get_logger(self):
    self.logger = logging.getLogger(__name__)
    # 日誌格式
    formatter = '[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s'
    # 日誌級別
    self.logger.setLevel(logging.DEBUG)
    # 控制枱日誌
    sh = logging.StreamHandler()
    log_formatter = logging.Formatter(formatter, datefmt='%Y-%m-%d %H:%M:%S')
    # info日誌文件名
    info_file_name = time.strftime("%Y-%m-%d") + '.log'
    # 將其保存到特定目錄
    case_dir = r'./logs/'
    info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
                                            when='MIDNIGHT',
                                            interval=1,
                                            backupCount=7,
                                            encoding='utf-8')
    self.logger.addHandler(sh)
    sh.setFormatter(log_formatter)
    self.logger.addHandler(info_handler)
    info_handler.setFormatter(log_formatter)
    return self.logger

爬蟲部分核心源碼實現:

發送請求模塊:

# 發送請求
r = requests.get(url, headers=h1, params=params)
# 解析數據
soup = BS(r.text, 'html.parser')

保存數據模塊:

# 保存數據
df = pd.DataFrame(
    {
        '關鍵詞': kw,
        '頁碼': page,
        '微博id': id_list,
        '微博鏈接': wb_url_list,
        '用户暱稱': name_list,
        '用户主頁鏈接': user_link_list,
        '發佈時間': create_time_list,
        '轉發數': repost_count_list,
        '評論數': comment_count_list,
        '點贊數': like_count_list,
        '微博內容': text_list,
    }
)
# 數據保存到csv文件
df.to_csv(self.result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')

出於版權考慮,暫不公開完整源碼,僅向用户提供軟件使用。

五、原創聲明

軟件【爬微博搜索軟件】首發於眾公號"老男孩的平凡之路",歡迎交流!!

我是 @馬哥python説 ,一名10年程序猿,持續分享python乾貨.

user avatar chuyang_596e1bd19bf8c 頭像 serein_6100cd5f80ea0 頭像 wangtian_65f943469b2c3 頭像
點贊 3 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.