用Python爬取指定關鍵詞的微博

2022-09-24 10:54:11 字數 1381 閱讀 8106

目錄

前幾天學校乙個老師在做微博的輿情分析找我幫她搞乙個用關鍵字爬取微博的爬蟲,再加上最近很多讀者問志斌微博爬蟲的問題,今天志斌來跟大家分享一下。

我們此次選擇的是從移動端來對微博進行爬取。移動端的反爬就是程式設計客棧資訊校驗反爬蟲的cookie反爬蟲,所以我們首先要登陸獲取cookie。

登陸過後我們就可以獲取到自己的cookie了,然後我們來觀察使用者是如何搜尋微博內容的。

平時我們都是在這個地方輸入關鍵字,來進行搜尋微博。

我通過在開發者模式下對這個頁面觀察發現,它每次對關鍵字發起請求後,就會返回乙個xhr響應。

我們現在已經找到資料真實存在的頁面了,那就可以進行爬蟲的常規操作了。

在上面我們已經找到了資料儲存的真實網頁,現在我們只需對該網頁發起請求,然後提取資料即可。

通過對請求頭進行觀察,我們不難構造出請求**。

**如下:

keylgkygteybr = input("請輸入爬取關鍵字:")

for page in range(1,10):

params = (

('containerid', f'100103type=1&q='),

('page_type', 'searchall程式設計客棧'),

('page', str(page)),

)response = requests.get('', headers=headers, params=params)

從上面我們觀察發現這個資料可以轉化成字典來進行爬取,但是經過我實際測試發現,用正則來提取是最為簡單方便的,所以這裡展示的是正則提取的方式,有興趣的讀者可以嘗試用字典方式來提取資料。

**如下:

r = response.text

title = re.findall('"page_title":"(.*?)"',r)

comments_count = re.findall('"comments_count":(.*?),',r)

attitudes_count = re.findall('"attitudes_count":(.*?),',r)

for i in range(l程式設計客棧en(title)):

print(eval(f"''"),comments_count[i],attitudes_count[i])

在這裡有乙個小問題要注意,微博的標題是用unicode編碼的,如果直接爬取儲存,將儲存的是unicode編碼,在這裡要感謝大佬—小明哥的幫助,志斌在網上搜了好多解決方法都沒有成功,最後小明哥乙個簡單的函式就給解決了,實在是佩服!

解決方案:用eval()來輸出標題,就可以將unicode轉換成漢字了。

1. 本文詳細介紹了如何用python指定關鍵字爬取微博,有興趣的讀者可以嘗試自己動手練習一下。

2. 本文僅供讀者學習使用,不做其他用途!

根據關鍵詞爬取豆瓣相關書籍資訊

根據書的型別爬取相關資訊並且儲存至csv,這裡以 python 為例。結果可以看到除了書名外,其他都有混雜,因為研究html不太徹底。得到的資料有點錯誤。import sys import time import requests import pandas as pd import re impo...

python關鍵詞大全 python的關鍵字有哪些

在python中若想查詢python中有哪些關鍵字。可以先導入keyword模組import keyword 匯入關鍵字模組 print keyword.kwlist 查詢所有關鍵字 查詢結果 false none true and as assert break class continue de...

python提取關鍵詞

value 34895348587575 value 34895348587575 abababbaba value 1.290934 coding utf 8 created on sun aug 16 20 57 31 2020 author jwy coding utf 8 version p...