文章目錄
- 一、背景分析
- 1.1 開發背景
- 1.2 軟件界面
- 1.3 結果展示
- 1.4 軟件說明
- 二、主要技術
- 2.1 模塊分工
- 2.2 部分代碼
- 三、使用介紹
- 3.0 填寫cookie
- 3.1 軟件登錄
- 3.2 采集wb帖子
- 四、演示視頻
- 五、軟件首發
本工具僅限學術交流使用,嚴格遵循相關法律法規,符合平臺內容的合法及合規性,禁止用于任何商業用途!
?
一、背景分析
1.1 開發背景
微博是國內非常流行的社交媒體平臺,內容主要以文字和圖片為主,在實時性和KOL關注熱度方面尤為突出。廣大網友在平臺上大量輸出自己的觀點、看法,組成了一個活躍度極高的社區群體。同時,我本人也發現,每次熱點事件爆發的時候,熱搜也是所有媒體平臺里最先曝光的平臺(其他平臺或多或少都有一些延遲)
基于此,我用python開發了一個爬蟲采集軟件,叫【爬微博搜索軟件】,下面詳細介紹。
1.2 軟件界面
軟件界面,如下:
1.3 結果展示
爬取結果:(截圖中展示的就是全部字段了)
1.4 軟件說明
幾點重要說明,請詳讀了解:
1. Windows用戶可直接雙擊打開使用,無需Python運行環境,非常方便!
2. 軟件通過爬蟲程序爬取,經本人專門測試,運行持久,穩定性較高!
3. 先在cookie.txt中填入自己的cookie值,方便重復使用(內附cookie獲取方法)
4. 支持多個關鍵詞串行爬取
5. 支持按時間段范圍采集貼子
6. 爬取過程中,每爬一頁,存一次csv。并非爬完最后一次性保存!防止因異常中斷導致丟失前面的數據(每條間隔1~2s)
7. 爬取過程中,有log文件詳細記錄運行過程,方便回溯
8. 結果csv含11個字段,有:關鍵詞,頁碼,圍脖id,圍脖鏈接,用戶昵稱,用戶主頁鏈接,發布時間,轉發數,評論數,點贊數,圍脖內容。
以上是現有功能,軟件版本持續更新中。
二、主要技術
2.1 模塊分工
軟件全部模塊采用python語言開發,主要分工如下:
tkinter:GUI軟件界面
requests:爬蟲請求
BeautifulSoup:解析響應數據
pandas:保存csv結果、數據清洗
logging:日志記錄
出于版權考慮,暫不公開源碼,僅向用戶提供軟件使用。
2.2 部分代碼
部分代碼實現:
發送請求并解析數據:
# 發送請求
r = requests.get(url, headers=h1, params=params)
# 解析數據
soup = BS(r.text, 'html.parser')
解析鏈接:
# weibo鏈接
wb_url = 'https:' + item.find('div', {'class': 'from'}).find('a').get('href')
wb_url_list.append(wb_url)
保存結果數據到csv文件:
# 保存數據
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')
self.tk_show('結果保存成功:{}'.format(self.result_file))
軟件界面底部版權:
# 版權信息
copyright = tk.Label(root, text='@馬哥python說 All rights reserved.', font=('仿宋', 10), fg='grey')
copyright.place(x=290, y=625)
日志模塊:
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')
三、使用介紹
3.0 填寫cookie
開始采集前,先把自己的cookie值填入cookie.txt文件。
pc端cookie獲取說明:
然后把復制的cookie值填寫到當前文件夾的cookie.txt文件中。
3.1 軟件登錄
用戶登錄界面:需要登錄。
3.2 采集wb帖子
根據自己的實際情況,在軟件界面填寫采集條件,點擊開始按鈕:
完成采集后,在當前文件夾生成對應的csv文件,文件名以時間戳命名,方便查找。
四、演示視頻
軟件使用過程演示:
live.csdn.net/v/473850
五、軟件首發
“爬微博搜索軟件"首發公號"老男孩的平凡之路”,歡迎技術交流、深入探討。