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

引言python

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

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

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

刷訪問量腳本誰不會寫,並且這個博客站點不用登陸就算一次 訪問量,寫個無限循環,而後換着ip去訪問博客就好了。 具體的流程:瀏覽器

  • 1.抓取你博客全部的文章URL存起來;
  • 2.準備一堆代理ip(西刺不少都不行,能夠上網買5塊2W個高匿代理ip);
  • 3.while True:換着ip,隨機訪問本身的一篇文章;

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


1.寫一個本身的經常使用模塊

在寫簡單爬蟲的時候,有一些很經常使用的代碼段,好比發起一個 請求,而後得到一個Response;下載圖片;讀寫文件等,其實 均可以寫到一個py文件裏(有點像Android裏的工具類),而後要 用到的時候調用下就能夠了,使用的時候import下你的這個模塊 而後就能夠用了。好比小豬隨手寫的一個簡易模塊:服務器

部分代碼併發

這些均可以本身定製,這樣你在寫爬蟲的時候就方便多了。dom

另外,小豬閒暇沒事也會爬點小東西練練手,初學者能夠也跟着 試試,相關腳本都丟到個人Gayhub上了,按需自取:ssh

github.com/coder-pig/R…


2.編寫刷訪問量腳本

Step 1:獲取博客的全部連接

打開:blog.csdn.net/coder_pig?v… 滑動到底部,能夠發現有這個東西,要作的就是拿到每一頁的 url,而後處理頁面拿到全部的文章連接都存起來,而後隨手 點開第二頁,發現url變成: blog.csdn.net/zpj77987844… 因此咱們只需拿到總共有多少頁就能夠了,而後自行拼接URL:

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

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

接着就是看下每一個列表頁的頁面結構,獲取全部的文章url, 而後寫入到一個文件裏了:

就選咱們剛剛打開的第二頁吧,一樣打開:Elements,隨手 搜個:小豬淺談Android屏幕適配,就能夠定位到:

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

一樣,搜下article_list,一樣是惟一的,拿到這個div,而後 獲取class='link_title'span,而後拿到裏面的a標籤就能夠了:

執行下這個方法,能夠看到目錄下生成了csdn_articles_file.txt 點開就能夠看到咱們全部文章的url了:

第一步完成~

Step 2訪問網頁

這裏就很是簡單了,換ip,而後給文章發起請求,你連read() 方法都不用執行,另外,這裏還能夠添加計數,當返回碼爲 200的時候,說明是一次順利的訪問,計數+1,代碼很簡單:

Step 3:執行代碼

這裏很簡單,先判斷文章列表文件是否存在,不存在遍歷, 而後加載文件裏全部的數據到列表,接着While無限循環, 而後random隨機取出一個訪問便可!

運行後開始計數就說明成功了,打開本身的博客頁面放着 過一會在兒再刷新看看訪問量是否增長了就知道了:


3.把腳本丟到服務器上跑

本身的電腦總不可能24小時開着是吧,費電,好比我通常下班 就會關電腦,若是想你的腳本能夠24小時不間斷運行,能夠丟 到服務器上,一百來塊就能夠買個普通的玩玩了,有興趣自行 百度阿里雲,騰訊雲虛擬主機之類的。

通常是經過ssh命令連接到咱們的遠程主機終端

ssh root@主機ip,而後輸入下主機密碼便可連接

而後你能夠經過一些ftp工具把本身的腳本文件丟到 服務器上,而後ssh終端執行下python3 xxx.py就能夠了。

可是有個問題是,若是你按了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):

而後你能夠經過tail命令跟蹤日誌輸出:

tail -f xxx.out
複製代碼

以爲跑得差很少了想停掉程序運行,只需執行下述命令把進程 殺掉,好比kill -9 19267

kill -9 pid
複製代碼

若是忘記了pid也沒什麼,能夠經過下述命令找到:

ps -ef | grep python3
複製代碼

而後kill掉就能夠了。另外上面那個執行了8:28分鐘的就是 我昨晚睡覺前運行的腳本,tail看一波日誌文件:

怒刷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保存。

而後一次執行下述命令(若是最後名利提示權限不夠,可在make前加-H)

cd ..
sudo ./configure
sudo make
sudo make install
複製代碼

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


小結

本節學習了編寫本身的模塊,編寫刷訪問量腳本,以及如何把本身的 腳本丟到服務器上之後臺程序的方式運行。

其實刷那麼多的訪問量又有什麼用,寫博客的初衷就是分享和記錄 本身的學習歷程,不知什麼時候開始,咱們開始熱衷於追求所謂的閱讀量, 點贊數,評論數,而後各類標題黨,雞湯...如今大多數的人對於短平 快結果立竿見影的事情趨之若鶩,而對須要沉下心長時間積澱的事卻 避之而惟恐不及,這可能就是浮躁吧。


本節源碼下載

github.com/coder-pig/R…


來啊,Py交易啊

想加羣一塊兒學習Py的能夠加下,智障機器人小Pig,驗證信息裏包含: PythonpythonpyPy加羣交易屁眼 中的一個關鍵詞便可經過;

驗證經過後回覆 加羣 便可得到加羣連接(不要把機器人玩壞了!!!)~~~ 歡迎各類像我同樣的Py初學者,Py大神加入,一塊兒愉快地交流學♂習,van♂轉py。

相關文章
相關標籤/搜索