心血來潮搞了一個簡單的爬蟲,主要是想知道某我的的b站帳號,可是你知道,b站在搜索一個用戶時,若是這個用戶沒有投過稿,是搜不到的,,,這時就只能想方法搞到對方的mid,,就是 space.bilibili.com/9444976
後面的那一串數字。偶然看到這我的關注了某個主播,,想到可能這我的會回覆主播的視頻,因而想着爬到全部up下的視頻的評論對應的用戶,這樣我就能夠在數據庫裏檢索暱稱獲得mid,,,嘿嘿嘿(然而失敗了,,不是全部人都像我這麼無聊,,,,有些人真的看視頻不會回覆,,python
項目地址: https://github.com/31415926535x/CollegeProjectBackup/tree/master/BilibiliSpidersmysql
這個爬蟲的主要功能是爬取某個指定up主下的全部視頻中的評論(不包括評論的回覆,固然能夠實現,可是感受都差很少,就沒考慮這塊),最後將爬到的用戶數據存到數據庫裏。整個項目只是抱着學習相關內容的心態來完成,不要作大批量的爬取網站(DDOS)及其敏感數據的事,也不要用做商業用途,,(雖然寫的很醜,,,)git
整個項目的分爲三個部分,首先是爬取指定mid up的全部視頻的av號,即 CrawlAllVideosOfAUP.py
這個腳本,使用的api是 https://api.bilibili.com/x/space/arc/search?mid=mid&ps=30&tid=0&pn=pn&keyword=&order=pubdate&jsonp=jsonp
具體的說明見腳本內註釋。github
以後有了全部的av號,使用 CrawlCommentUsersByVideo.py
爬取指定av號下的全部評論,使用的api是 https://api.bilibili.com/x/v2/reply?pn=**&type=1&oid=***&sort=2
爬取av號爲 oid 下第 pn 頁的評論的信息(sort對應的應該是評論的展現順序用不到沒管。能夠爬取到不少的信息,根據本身需求來修改腳本計科。sql
最後將這兩個整合,加一點點細節就好了,,大體是一個能用的腳本(雖然最後沒有找到我想要的一個信息,,,,數據庫
具體看註釋吧,,很簡單的一些東西吧,,長見識爲主,留印象。。。。json
以前很早就接觸了Python爬蟲,,可是隻是用一下就扔了,沒有本身徹底的編寫一個,,因此心血來擦寫一個練練手,,說不定之後還會遇到這樣相似的事,,,windows
這個腳本最後將爬取到的數據扔到了數據庫裏,,由於以前看別人的代碼,他是獲取一條寫入一條,,數據量一大就很慢,,(尤爲是用了線程一邊獲取一遍寫入時,由於爬蟲一次會得到不少的數據,可是若是保存數據庫時一條一條的 commit
些磁盤的io瓶頸就會顯露出來,,因此能夠加一個 flag ,寫入到1000或者某個值時再 commit
這樣就頗有效率了,,跑偏了)api
大概瞭解了一下python下的線程的寫法,思路都是那個思路,,算是簡單的見識一下,,,ide
關於windows下的mysql數據庫:咱們一般會備份一個數據庫的某些表的結構到一個文件中,例如 233.sql
,使用的命令多是 mysqldump -uroot -p databases > 233.sql
等等相似的,,可是這個命令在windows的 PowerShell
會有bug,,具體緣由沒有深究(猜想是編碼的鍋),導出的文件不能使用 source 233.sql
導入,,會爆什麼 '\0'
等 ASCII錯誤,,這時的解決方法就是換 cmd
,,這個錯誤第一次見,,並且很差解決,,迷惑性太大,,容易帶偏QAQ,,,太浪費時間了,,,
好像沒啥了。。。(end)
哦對,加個參考。。。