我wan't更改特定文本一堆的HTML文件,並保存其代碼的其餘部分不變。我發現我會使用Html Agility pack。所以我寫這樣的代碼:停止的Html敏捷包更改源代碼
string Url = @"http://www.example.com";
HtmlWeb web = new HtmlWeb();
web.UserAgent = @"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36";
HtmlDocument doc = web.Load(Url);
doc.Save("a.html");
但問題是,網站的來源保存不同於原來的。有沒有辦法阻止更改源代碼。或者,也許還有另一種方式可以在DOM中移動並更改特定的東西(例如,在Chrome開發人員工具中,您可以稍後將其另存爲HTML,然後自動執行)。
-----------編輯--------
例如,它在eBay上看到。我無法發佈鏈接,因爲它是廣告,但如果您只是在任何商品優惠上嘗試此代碼,就會看到發生了什麼。
---------- EDIT2 --------
看來,eBay正在使用iframe,也和HAP不能處理它。它和裏面的標籤被刪除,所以可能這就是爲什麼保存網站差異如此之大的原因。
你可以舉一個例子的改變其決策? – bdimag
之後你在做什麼「HtmlDocument」?從你發佈的內容看來,你真正需要做的就是對網站做一個「HTTP GET」,並將返回的內容作爲一個字符串保存在磁盤上,而HTML Agility Pack沒有增加任何值,只是導致修改您描述的來源。 –
是否有可能您所請求的服務器正在發送基於'UserAgent'的不同文檔? – Claies