B站教學資源爬蟲

2021-10-09 01:18:34 字數 2103 閱讀 7608

最近遇到了點麻煩事,各種學習**的不維護或者轉移路線,於是將目標站點定位到了b站的學習資源

b站是乙個具有大量資源資料的**,但是如何將目標**中資源按照目前我們公司的學習資源庫進行抓取並進行資料清洗,這將是一件非常磨人的事情。

我們庫中的分類主要有學校、專業、老師等字段,於是,需要準備一下內容:

1、學校分類庫,用於進行學校的搜尋及資源名稱的清洗

2、專業分類庫

3、老師分類庫,用於進行資源清洗

通過構建的學校分類庫對每個學校在b站進行搜尋

在b站搜尋學校,分析互動,資料互動url為:

通過變化不同的keyword(搜尋字段),及不同的page(頁數),能得到相關的想要的結果,值得一提的是,b站在這邊有個小反爬機制,必須在請求頭新增相應的referer

url =

''.format

(page, quote(xx)

)headers[

'referer']=

''.format

(quote(xx)

)

做爬蟲永遠不是進行資料抓取的工作最為複雜,反而資料清洗的工作時間可能佔據著相當大的部分。上文說到,我們資料有學校、專業、老師、資源名稱等字段,那怎麼將這部分的資料清洗到能入庫的程度呢?

1、資源名稱中的學校提取

通過搜尋字段去除資源名稱中的學校,同時對比搜尋的學校欄位及資源名稱中的能否找到其他的學校字段,如果有,則跳過該資源(寧缺毋濫)。

2、資源名稱中的老師提取

通過前面所提的老師分類庫,將資源中的老師名稱進行提取。

3、資源名稱的清洗

1)去除學校字段

2)去除老師字段

3)去除無關的字段

通過不斷的反覆抓取及清洗規則的調優,最後清洗的結果如下

:param img:資訊

:return:

"""headers[

'content-type']=

api_key =

'' secret_key =

'' access_url =

''.format

( api_key, secret_key)

r = requests.get(access_url)

access_token = json.loads(r.text)

['access_token'

] data_url =

''+"?access_token="

+ access_token

params =

r = requests.post(data_url, headers=headers, data=params)

return json.loads(r.text)

['words_result'][

0]['words'

].strip(

).strip(

'_')

這次主要提供了乙個抓取髒亂資料的思路,在前期的幾個分類庫的構建中花費了大量的時間(乙個反覆調優的過程),爬蟲的工作並不只是簡單的資料抓取,而是要處理抓取的過程中所遇到的問題,當資料不符合入庫的標準時,需要將之處理成所需的資料,當遇到反爬時,就需要和**做鬥爭。大資料時代,資料就是金錢,怎麼獲取到想要的資料,就是我們爬蟲的職責所在(由於不是私人專案,不方便進行**發布)。

python 爬蟲 b站彈幕爬蟲

coding utf 8 獲取bilibili直播間彈幕 房間號從網頁源 中獲取 開啟直播畫面後,按ctrl u 開啟網頁源 按ctrl f 搜尋 room id 搜到的 room id 1016中,1016就是房間號 獲取不 間的彈幕 修改 第26行的roomid的值為對應的房間號 import ...

爬蟲專欄6 爬取B站彈幕

比如說這裡我隨便開乙個網頁 在xhr標籤裡面可以看到乙個小眼睛圖示的玩意兒,開啟那個url進去之後 就可以直接提取了 ps 1.針對匹配,乙個尖括號結束之後最好用.過渡到另乙個尖括號,不要什麼都不加,可能抓不出來 2.這是針對response.text和response.content.decode...

純前端白嫖b站伺服器資源

叔叔我啊,最討厭白嫖我伺服器資源的人了 最近剛完成自己的部落格系統,然後想辦法白嫖了b站伺服器資源來達到優化前端顯示,又不需要占用自己伺服器的資源。目前自己發現支援jsonp技術的api只有這乙個有用的,其他基本用不著,具體可以自己去找。只需要在img標籤上動一下手腳就可以 src referrer...