動態內容_PyV8安裝之路
在開始這次內容前,先來整理一下思路吧!
上次的初級爬蟲之後,已經能確實的發送HTTP要求,也能成功得到html檔了,但是這個靜態文檔最關鍵的資源(我想要的圖片),居然消失了!
沒錯!就是一片空白,解析不到東西。
疑惑之餘,開始去網路讀更多資料,
然後更徹底的觀察整個要求發生的過程。
然後更徹底的觀察整個要求發生的過程。
上次的這張截圖就告訴我們了
真正發送圖片要求,是經過對話框的四個過程!
看到這邊就知道接下來要邁向取得動態內容了。
關PyV8何事? 為了表現我當初走很久才知道他,現在還不能請他出來。
為了取得圖片URL,可以看出答案就藏在js裡
這邊我知道能前進的方向有:
觀察.JS:
- 可以自己觀察.JS設計規則後模擬取得
- 直接帶回原程式.JS得到到答案
不觀察.JS:
3. 直接用模擬瀏覽器的方式將整個生成結果都抓回來!
selenium + PhantomJS
最後我決定採用2 (時間成本最低)
因此我需要新的環境
也就是讓Python能嫁接JavaScript
終於回到正題了
- 安裝PyV8
PyV8是一個可以在Python用的JS引擎。
基本上由於我的環境是
Win8 +Python3.4
所以安裝過程中一整個不順利到不行。
以下的過程原版呈現(有一種完全可以去PO笨版的感覺)-----------------------------------------------------------------------------------------------------------------------------------
下載安裝包,需先安裝Sublime text3
--> 不知道在幹嘛 為什麼沒反應…
/*
* 這時候的我還不知道:
* Sublime text3其實是雙環境運行
* 分成 系統環境 跟 內建環境(裡面console就是使用這個)
* 至於其他的插件是可以自訂路徑,看要選用哪一種環境
*/
所以又手動安裝了
git clone https://github.com/buffer/pyv8.git
/*
* 這時候的我還不知道:
* 首先google釋出來,事先編譯過的只有提供到Python2.7
* 然後是手動安裝,依稀記得一堆問題,回到當時的思緒
*/
結果還是慘敗了 各種嘗試ˊ~ˋ 決定回去土法煉鋼QQQQ
/*
* 這時候的我:
* 認真地考慮了轉換路線的事
*/
求完大神之後 還是決定再回鍋試試
目前的狀態:
Sublime text3 內已經安全的安裝完畢
在裡面的環境已經可以使用-->python3.3
外部使用import時,還是不能使用
-->有可能是因為原本編譯的就是給sublime使用的
-->現如經和昨天一樣 找不到_PyV8.pyd該模塊
-->CMD上嘗試 出現 ImportError: DLL load failed: 找不到指定的模組。
索性先安裝看看Boost
直接用pip install pyv8的最新只支援python2.7
/*
* 這時候的我:
* 終於開始意識到win8的不友善←明明就是固執要用Python3.4
*/
pyd無法import的原因可能 :
It's typically because of one or more of the following:
|
-->覺得應該是版本衝突 導致無法載入
-->sublime text based on python 3.3 but I used the python3.4
WTF = = I think it needs the python33.dll.
So what's next step? QQQQQ
/*
* 這時候的我:
* 已經忍不住開始亂假設了,其實就是版本問題而已。
*/
-->確定是版本問題了
參考別人的其他情況
There's only dlls built for Python-2.6 in the site.
You cannot use dll built for Python2.6 in Python 2.7.
Find the dll built for your system (platform, python version should match). Or build it yourself.
來自 <http://stackoverflow.com/questions/18585090/python-install-pyd-file-importerror-dll-load-failed>
-->真的需要重建照一個跟sublime text3相同的python環境
(看了一堆 問題 文章 自己的問題卻一直解不了 頭好痛ˊ~ˋ)
/*
* 之所以是版本問題其實很明顯,
* 畢竟在sublime下安裝得到的pyd是編譯給python3.3用的。
*/
終於那啥啥啥啥啥 太感動了!!!!
終於與世界相逢!
/*
* 最後我還是屈服了
* 在Win8底下,人還是不要太鐵齒!
* 分分鐘的事也能搞兩天XD
*/
再不行虛擬機真的是好夥伴:
docker image for p3+PyV8: https://github.com/malikoth/pyv8-python3/blob/master/Dockerfile
我還是覺得編譯程式碼在linux底下做會比較友善。
其他選擇:
(好像還有很多)
後記: 這一篇在實際實作的時候,是我卡最久速度進行最慢的時候,那時候一整個覺得很沮喪,記憶體也是在這時候壞的,反正就是壞事接二連三ˊ~ˋ
上一篇靜態分析BeautifulSoup 下一篇開始使用PyV8
上一篇靜態分析BeautifulSoup 下一篇開始使用PyV8
你好,看你的文章很有幫助,請問如何可以跟你多請教?
回覆刪除我的line : aminwhite5168