最近遇到了點麻煩事,各種學習**的不維護或者轉移路線,於是將目標站點定位到了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...