我需要獲取網站(所有鏈接)中所有網頁的列表。我必須使用Phantomjs,但我以前從未使用它。任何人都可以解釋我,我可以如何使用它?如何在Phantomjs的幫助下解析html代碼以獲取所有鏈接?如何使用Phantomjs獲取URI
1
A
回答
1
PhantomJS是一款帶JavaScript API的無頭WebKit腳本。它被重新描述爲一個單一的可執行文件。
- 從官方網站下載phantomJS
有針對Windows,Mac OU Linux的正式發佈,但如果你願意,你也可以建立自己的版本。
- 創建一個腳本
PhantomJS通過本身並沒有什麼,它只是一個可執行文件。你必須編碼/編寫你的動作。它由JavaScript或咖啡腳本完成。
- 運行腳本
在命令提示符下鍵入,您只需要編寫
> phantomjs yourscript.js
有時候,你必須創造一個phantomjs的包裝。特別是在WPF中,使用Process
/ProcessStartInfo
類來管理腳本執行。
- 如何編寫腳本?
如果您熟悉Javascript,特別是Node.js開發,學習曲線很小。 quick start可能是寶貴的,不要猶豫,用available examples練習自己。這是最困難的部分,但在幾個腳本之後它會更容易。
要回答你最初的問題,這裏是一個可能的腳本
var page = require('webpage').create();
var system = require('system');
if (system.args.length != 2) {
console.log('Usage: so20189669.js <URL> ');
phantom.exit(1);
} else {
var url = system.args[1];
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
var links = page.evaluate(function() {
return [].map.call(document.querySelectorAll('a'), function (link) { return link.getAttribute('href') });
});
console.log(JSON.stringify(links));
phantom.exit();
}
});
}
在命令提示符:
>phantomjs.exe so20189669.js http://stackoverflow.com/questions/20189669/how-to-get-uri-with-phantomjs
有沒有神奇的答案,你將有它根據自己的需要來改變!
相關問題
- 1. 獲取與PhantomJS
- 2. 如何從URI獲取sp_track *?
- 3. 如何使用phantomjs?
- 4. 如何使用Phantomjs
- 5. 獲取URI VAR
- 6. 獲取URI
- 7. 如何使用sparql查詢提取URI
- 8. 使用PrettyFaces獲取原始請求URI
- 9. 使用Uri獲取Exif數據
- 10. 使用accessToken獲取Dynamics組織Uri
- 11. 使用Uri獲取文件的路徑
- 12. 如何讓Flash使用PhantomJS?
- 13. 如何使用ES6和PhantomJS
- 14. 如何使用jQuery與phantomjs
- 15. 如何使用與phantomjs
- 16. 如何使用PHP獲取給定URI的DirectoryIndex文件名?
- 17. 如何獲取位圖uri在Android移動設備使用java
- 18. 如何使用intent.action.VIEW打開文件時獲取文件URI?
- 19. 如何使用promise獲取失敗的ajax請求的URI?
- 20. Ruby - 如何使用open-uri獲取文件的名稱?
- 21. 如何獲取正在使用REST API(ServiceStack)的URI
- 22. 如何使用Glide獲取imageview上的URI
- 23. 如何獲取使用mp3存儲的元數據的URI?
- 24. 如何獲取首頁的URI?
- 25. 如何從URI獲取文件名
- 26. 如何從uri獲取圖像ID?
- 27. 如何獲取聯繫人照片URI
- 28. 如何獲取拋出WebException的URI?
- 29. 如何從MediaLibrary獲取歌曲的URI?
- 30. 如何從Symfony 1.4獲取當前URI?