小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

w39發表於2021-09-09

引言

Python併發的文章還在肝,比較乏味,寫個爬蟲小指令碼玩玩,想起之前 在某部落格站點看到,一個人釋出的渣渣文章,半個小時不到2W訪問量, 還連續幾篇都是,然後一個留言或者點讚的都沒有,比較多人看的鴻洋 的部落格,一篇文章掛了3個月也才1w3的訪問量,想想都知道是爬蟲刷的, 小豬頓時正義感作祟,忍不住向他們的客服進行了舉報,然而石沉大海, 並沒有得到任何的回覆,不禁感嘆,時過境遷,物是人非,唉...

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

最近偶爾有次點出了排行版,看到了這樣的東西???

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

賣優惠券的都沒人管了...臥槽,這還能忍,這樣對得起那些 辛辛苦苦肝出一篇技術文章的大佬和萌新嗎?

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

刷訪問量指令碼誰不會寫,而且這個部落格站點不用登入就算一次 訪問量,寫個無限迴圈,然後換著ip去訪問部落格就行了。 具體的流程:

  • 1.抓取你部落格所有的文章URL存起來;
  • 2.準備一堆代理ip(西刺很多都不行,可以上網買5塊2W個高匿代理ip);
  • 3.while True:換著ip,隨機訪問自己的一篇文章;

是的,就是這麼簡單,沒有任何反爬蟲或者懲罰,之前那個人 已經大搖大擺的刷到每篇文章5W多訪問量。所以我選擇搬到掘金...


1.寫一個自己的常用模組

在寫簡單爬蟲的時候,有一些很常用的程式碼段,比如發起一個 請求,然後獲得一個Response;下載圖片;讀寫檔案等,其實 都可以寫到一個py檔案裡(有點像Android裡的工具類),然後要 用到的時候呼叫下就可以了,使用的時候import下你的這個模組 然後就可以用了。比如小豬隨手寫的一個簡易模組:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

部分程式碼

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

這些都可以自己定製,這樣你在寫爬蟲的時候就方便多了。

另外,小豬閒暇沒事也會爬點小東西練練手,初學者可以也跟著 試試,相關指令碼都丟到我的Gayhub上了,按需自取:

github.com/coder-pig/R…

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量


2.編寫刷訪問量指令碼

Step 1:獲取部落格的所有連結

開啟:blog.csdn.net/coder_pig?v… 滑動到底部,可以發現有這個東西,要做的就是拿到每一頁的 url,然後處理頁面拿到所有的文章連結都存起來,然後隨手 點開第二頁,發現url變成: blog.csdn.net/zpj77987844… 所以我們只需拿到總共有多少頁就可以了,然後自行拼接URL:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

瀏覽器f12開啟Elements,Ctrl+f搜 尾頁,直接就定位到了

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

然後全域性搜下這個papelist,發現也是唯一的,接下來好辦 了,處理下href,拿到最後的頁碼:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

接著就是看下每個列表頁的頁面結構,獲取所有的文章url, 然後寫入到一個檔案裡了:

就選我們剛剛開啟的第二頁吧,同樣開啟:Elements,隨手 搜個:小豬淺談Android螢幕適配,就可以定位到:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

然後點結點,翻上去,不難找到:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

同樣,搜下article_list,同樣是唯一的,拿到這個div,然後 獲取class='link_title'span,然後拿到裡面的a標籤就可以了:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

執行下這個方法,可以看到目錄下生成了csdn_articles_file.txt 點開就可以看到我們所有文章的url了:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

第一步完成~

Step 2訪問網頁

這裡就非常簡單了,換ip,然後給文章發起請求,你連read() 方法都不用執行,另外,這裡還可以新增計數,當返回碼為 200的時候,說明是一次順利的訪問,計數+1,程式碼很簡單:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

Step 3:執行程式碼

這裡很簡單,先判斷文章列表檔案是否存在,不存在遍歷, 然後載入檔案裡所有的資料到列表,接著While無限迴圈, 然後random隨機取出一個訪問即可!

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

執行後開始計數就說明成功了,開啟自己的部落格頁面放著 過一會在兒再重新整理看看訪問量是否增加了就知道了:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量


3.把指令碼丟到伺服器上跑

自己的電腦總不可能24小時開著是吧,費電,比如我一般下班 就會關電腦,如果想你的指令碼可以24小時不間斷執行,可以丟 到伺服器上,一百來塊就可以買個普通的玩玩了,有興趣自行 百度阿里雲,騰訊雲虛擬主機之類的。

一般是通過ssh命令連結到我們的遠端主機終端

ssh root@主機ip,然後輸入下主機密碼即可連結

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

然後你可以通過一些ftp工具把自己的指令碼檔案丟到 伺服器上,然後ssh終端執行下python3 xxx.py就可以了。

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

但是有個問題是,如果你按了ctrl+c或者關閉了這個ssh終端 你的這個指令碼就會停止!所以你需要以後臺程式的方式執行 你的這個Python指令碼,可以使用nobup命令。 鍵入這樣的命令:

nohup python3 -u xxx.py > xxx.out 2>&1 &
複製程式碼

解釋下:

  • nohup 和 最後的& 包著的就是讓命令在後臺執行,比如你直接 寫nohup python3 xxx.py &就可以了
  • > xxx.out 代表將輸出資訊輸出到xxx.out日誌檔案中
  • 2>&1 將資訊變成標準輸出,把錯誤資訊也輸入到日誌檔案中 0代表stdin,1代表stdout,2代表stderr

這樣執行後,會返回一個pid(程式id):

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

然後你可以通過tail命令跟蹤日誌輸出:

tail -f xxx.out
複製程式碼

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

覺得跑得差不多了想停掉程式執行,只需執行下述命令把程式 殺掉,比如kill -9 19267

kill -9 pid
複製程式碼

如果忘記了pid也沒什麼,可以通過下述命令找到:

ps -ef | grep python3
複製程式碼

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

然後kill掉就可以了。另外上面那個執行了8:28分鐘的就是 我昨晚睡覺前執行的指令碼,tail看一波日誌檔案:

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

怒刷31W訪問量,這個就不說了...


4.Python3 ssl模組找不到

把指令碼丟伺服器上,python3執行的時候一直安裝不了ssl模組, 真是莫名其妙,pip3 install ssl,死命就是報錯,後面搜了 下網上的資料, 先執行下面的兩個命令裝點東西:

apt-get install openssl
apt-get libssl-dev
複製程式碼

裝上後還是不行,然後發現是要去改下python3資料夾裡的 程式碼,然後重新make,cd到下面的路徑,vim編輯Setup檔案:

cd ../../usr/lib/python/Python-3.6.4/Modules 
vim Setup
複製程式碼

把對應這個部分的改成下述這個樣子,然後esc,鍵入 :wq儲存。

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

然後一次執行下述命令(如果最後名利提示許可權不夠,可在make前加-H)

cd ..
sudo ./configure
sudo make
sudo make install
複製程式碼

make完後,命令列鍵入python3,進入到python3 ide,import下ssl 沒報錯就說明安裝成功了!

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量


小結

本節學習了編寫自己的模組,編寫刷訪問量指令碼,以及如何把自己的 指令碼丟到伺服器上以後臺程式的方式執行。

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

其實刷那麼多的訪問量又有什麼用,寫部落格的初衷就是分享和記錄 自己的學習歷程,不知何時開始,我們開始熱衷於追求所謂的閱讀量, 點贊數,評論數,然後各種標題黨,雞湯...現在大多數的人對於短平 快結果立竿見影的事情趨之若鶩,而對需要沉下心長時間積澱的事卻 避之而唯恐不及,這可能就是浮躁吧。


本節原始碼下載

github.com/coder-pig/R…


來啊,Py交易啊

想加群一起學習Py的可以加下,智障機器人小Pig,驗證資訊裡包含: PythonpythonpyPy加群交易屁眼 中的一個關鍵詞即可通過;

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量

驗證通過後回覆 加群 即可獲得加群連結(不要把機器人玩壞了!!!)~~~ 歡迎各種像我一樣的Py初學者,Py大神加入,一起愉快地交流學♂習,van♂轉py。

小豬的Python學習之旅 —— 8.爬蟲實戰:刷某部落格站點的訪問量


相關文章