0x00 前言
前段時間一直在抓取一個站點,這個站點非常難爬取,原因如下:
- 第一點,網(wǎng)站Ajax超級多.
- 第二點,所有的API都是js加密后才能訪問.
- 第三點,這也是最最要命的一點,訪問特別特別不穩(wěn)定.有的時候加載時間特別長,70秒請求一個API這點我會告訴你嗎?動不動就404 not found我能和你說?
當(dāng)然,這些都難不倒我,我最后挑選了Phantomjs,編寫Js調(diào)用腳本,從命令行調(diào)用程序,將抓取結(jié)果輸出到標(biāo)準(zhǔn)輸出流中,接著獲取使用beautifulsoup進行基本的解析.剩下的就是入庫了.
這里的技術(shù)點也是蠻多的,以后有機會就介紹一下.(汗,因為畢業(yè)設(shè)計這回事情實在是耽誤了不少梳理博文的時間,攢了不少開了個頭的文章,但自己又不忍心把不好的文章放出來污染大眾視野.)
0x01 事情開始變化了
程序在運行了很長一段時間之后,有一定幾率崩潰.再次開啟的時候,有一些需要人工檢查的參數(shù),所以我并不是很方便的使用supervisor.
0x02 那怎么該如何是好?
公司的電腦上寫了每個小時將自己的抓取情況發(fā)送給我的郵箱,但是糟心的問題是,一旦我在家中,程序崩潰了,我也就只能浪費掉我那接近半天的抓取時間了.我必須要遠程控制公司的電腦.怎么辦呢?
- 第一種,使用ssh,這樣我在家里就可以遠程控制公司的電腦了.
- 第二種,使用遠程控制軟件.
我首先想到的是使用ssh,因為這個比較常用,用起來會習(xí)慣一些.
2.1 在家里配置ssh到公司的電腦上需要哪些方法呢?
請注意:
ssh無法穿透路由器
什么意思?很簡單,對于你在家里這個外網(wǎng)來說,你只能"看到"公司在公網(wǎng)的這臺路由器,無法看到經(jīng)過NAT轉(zhuǎn)換的公司內(nèi)網(wǎng)的服務(wù)器.
于是,我們可以得出遠程方法如下:
公司路由器的公網(wǎng)地址固定,那么可以在路由器上直接做一個端口映射,將路由器的ip的22端口(也可以是其他端口)映射到公司局域網(wǎng)內(nèi)部的一臺機器.這樣你就可以直接ssh公司的路由器,但最終訪問的就是你的mac或者linux機器了.
那如果公司的路由器是撥號上網(wǎng)的呢(比如我現(xiàn)在待得這個小公司,使用的是電信寬帶光纖撥號上網(wǎng))?很簡單,通常情況下你需要及時獲取公司公網(wǎng)的ip地址.所以,你只需要在你的公司電腦上寫個腳本定時把公網(wǎng)的ip地址發(fā)給你的郵箱里就好了.
在操作的時候,直接使用tmux或者screen就可以查看這些耗時軟件的運行情況了.
但,我最后沒有使用這個方案呢?因為電信把路由器的高級功能給閹割掉了,端口映射做不了.并且,由于公司的路由器均為普通網(wǎng)線口,并非光纖接口,唯一有光纖接口的就僅僅只有電信的路由器.
雖然ssh很方便,可是打電話找電信太麻煩,于是這個方案被我否定了.
2.2 那么遠程控制軟件怎么樣呢?
經(jīng)過不斷的搜索,我發(fā)現(xiàn)了一款非常棒的穿透力特別強遠程操作又相對穩(wěn)定的軟件.可能你也聽說過這款軟件teamviewer.
前段時間也用這個軟件給學(xué)弟們操作搭建部署環(huán)境的時候用到的,非常好用.比qq的遠程協(xié)助穩(wěn)定多了.
并且,可以通過注冊賬號,直接把機器分配給賬號.
然后直接登錄賬號進行連接就好了.


╮(╯▽╰)╭所以,我就可以安安心心在家里閱讀抓取情況的郵件,當(dāng)郵件抓取數(shù)量出現(xiàn)異常的時候,我就直接開遠程過去查看了,修整軟件就好了.

0x03 結(jié)論
當(dāng)然,其實最好的方式還是通過ssh配合tmux進行管理,但是如果你沒有路由器的操作權(quán)限(不能做端口映射),或者像我一樣公司的上網(wǎng)環(huán)境比較坑(電信路由器)的話,teamviewer也算是圖形界面中優(yōu)雅的遠控方式.并且,可以使用windows控制mac,也可使用mac控制windows,這點實在讓人非常心動.