我正在學校項目中編寫一個程序,該程序查看網站,下載該網站所做的所有GET請求,然後將這些下載文件提取到本地文件中。該網站不是靜態的,因爲它不斷變化的信息,所以我不能只通過它運行刮板。有沒有辦法使用Java或C#,以便我可以以編程方式執行此操作?另外,我不能給你網站,因爲它是在我教授的名下,她只希望她的學生將它用於教學目的。正在下載網站獲取請求
p.s.我知道你可以通過檢查頁面的元素並選擇網絡選項卡來手動執行此操作,但我遇到的問題是使用程序執行此操作。
我正在學校項目中編寫一個程序,該程序查看網站,下載該網站所做的所有GET請求,然後將這些下載文件提取到本地文件中。該網站不是靜態的,因爲它不斷變化的信息,所以我不能只通過它運行刮板。有沒有辦法使用Java或C#,以便我可以以編程方式執行此操作?另外,我不能給你網站,因爲它是在我教授的名下,她只希望她的學生將它用於教學目的。正在下載網站獲取請求
p.s.我知道你可以通過檢查頁面的元素並選擇網絡選項卡來手動執行此操作,但我遇到的問題是使用程序執行此操作。
我在一所學校的項目
首先,我不認爲你的教授知道他/她是問真的工作....
簡單的方法是:
一)使用WebClient,HttpWebRequest或HttpClient類下載HTML代碼
B)解析與HTML,爲前,與標籤a
,img
,script
HtmlAgilityPack和提取環節,link
等(Regex不適合這個)...
但是,這種方法將錯過由JavaScript PLUS映射相對URL絕對的那些動態創建的鏈接是一個痛苦的屁股。(寫一個真正的瀏覽器emulater超出你的課程)
另一種方法是使用Webbrowser control
和觀看由它通過FiddlerCore
圖書館提出的要求...
但是,在這種情況下,我不認爲這種做法將如何讓你學習其他的東西比使用一些第三方庫
PS1 :將頁面加載到Webbrowser control
,然後使用DOM對象解析也不是一個解決方案。 Javascript代碼可能會在頁面加載後添加/刪除或修改某些鏈接。所以這個問題比你想象的更廣泛。
PS2:我很好奇你的教授的關於它的答案....
的答案是「是」:有一種方法來在任何你喜歡的語言編程管理。除非你發佈了一個特定的問題,否則沒有人會爲你編寫代碼。 – Matt
BTW:'下載該網站所有的GET請求',我認爲你問**你**作爲客戶提出的所有請求... –
也許你正在尋找[保存頁面](http:// www.chkeuseof.com/tag/save-complete-webpage-offline-reading/)功能在鉻? – Gumbo