2015-11-03 72 views
1

我需要處理通過標記添加到其中的腳本文件已損壞的html文件。我打算通過phantomjs刪除網頁中的所有腳本標記。 但是,在通過webpage.open()打開網頁時,會拋出phantomjs解析錯誤,因爲它無法解析腳本標記中的JS內容。 下面是一個例子:Phantomjs:在將它打開爲網頁之前修改html dom

<html> 
<head> 
<script> 
corrupted JS 
if(dadadd 
; 
</script> 
<body> 
some content 
</body> 
</html> 

有人可以幫助我在暗示清潔使用phantomjs此網頁的正確方法?

回答

1

這不(很容易)。您可以下載(不是通過打開頁面,而是在page.evaluate()中發出Ajax請求)靜態HTML,然後根據您的需要進行更改,然後將其分配給page.content

這仍然可能無法正常工作,因爲只要您將其分配給page.content,即表示PhantomJS應將此源解釋爲來自未知域(約:空白)的頁面。由於頁面源代碼包含沒有域名的各種鏈接/腳本/樣式表,您還必須更改這些頁面才能使頁面成功加載各種資源。

使用自定義規則在PhantomJS和互聯網之間建立代理可能會更容易,以根據需要調整頁面源代碼。