我需要編寫一個簡單的C#應用程序,該應用程序應接收當前在Firefox中打開的網頁的全部內容。有沒有辦法直接從C#做到這一點?如果沒有,是否有可能開發某種可以傳輸頁面內容的插件?由於我是Firefox插件編程的全新手,我非常感謝讓我快速啓動的任何信息。也許有一些我可以用作參考的來源?文件鏈接?建議?從C#程序中獲取Firefox中的網頁內容
UPD:其實我需要一個Firefox實例進行通信,而不是從給定的URL
我需要編寫一個簡單的C#應用程序,該應用程序應接收當前在Firefox中打開的網頁的全部內容。有沒有辦法直接從C#做到這一點?如果沒有,是否有可能開發某種可以傳輸頁面內容的插件?由於我是Firefox插件編程的全新手,我非常感謝讓我快速啓動的任何信息。也許有一些我可以用作參考的來源?文件鏈接?建議?從C#程序中獲取Firefox中的網頁內容
UPD:其實我需要一個Firefox實例進行通信,而不是從給定的URL
如果您詳細說明您試圖實現的內容,將會有所幫助。可能是已經在那裏的插件,如螢火蟲可以幫助。
Anways,如果你真的想同時開發插件和C#應用程序:
看看這個教程Firefox擴展: http://robertnyman.com/2009/01/24/how-to-develop-a-firefox-extension/
否則,您可以使用WebRequest類或HttpWebRequest類在.NET請求獲取任何URL的HTML源代碼。
我想你幾乎肯定需要寫一個Firefox插件爲獲得一個網頁的內容。然而,當然有辦法請求一個網頁,並在C#中接收它的HTML響應。這取決於你的要求是什麼?
如果您的要求只是從任何網站收到的來源,留下評論,我會指出你的代碼。
對不起模糊的問題,我澄清了一下。我需要與Firefox實例進行通信。 – 2010-12-23 11:50:41
在這種情況下,您需要下載Firefox插件路徑 – 2010-12-23 11:52:56
Uri uri = new Uri(url);
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri.AbsoluteUri);
req.AllowAutoRedirect = true;
req.MaximumAutomaticRedirections = 3;
//req.UserAgent = _UserAgent; //"Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; Searcharoo.NET)";
req.KeepAlive = true;
req.Timeout = _RequestTimeout * 1000; //prefRequestTimeout
// SIMONJONES http://codeproject.com/aspnet/spideroo.asp?msg=1421158#xx1421158xx
req.CookieContainer = new System.Net.CookieContainer();
req.CookieContainer.Add(_CookieContainer.GetCookies(uri));
System.Net.HttpWebResponse webresponse = null;
try
{
webresponse = (System.Net.HttpWebResponse)req.GetResponse();
}
catch (Exception ex)
{
webresponse = null;
Console.Write("request for url failed: {0} {1}", url, ex.Message);
}
if (webresponse != null)
{
webresponse.Cookies = req.CookieContainer.GetCookies(req.RequestUri);
// handle cookies (need to do this incase we have any session cookies)
foreach (System.Net.Cookie retCookie in webresponse.Cookies)
{
bool cookieFound = false;
foreach (System.Net.Cookie oldCookie in _CookieContainer.GetCookies(uri))
{
if (retCookie.Name.Equals(oldCookie.Name))
{
oldCookie.Value = retCookie.Value;
cookieFound = true;
}
}
if (!cookieFound)
{
_CookieContainer.Add(retCookie);
}
}
string enc = "utf-8"; // default
if (webresponse.ContentEncoding != String.Empty)
{
// Use the HttpHeader Content-Type in preference to the one set in META
doc.Encoding = webresponse.ContentEncoding;
}
else if (doc.Encoding == String.Empty)
{
doc.Encoding = enc; // default
}
//http://www.c-sharpcorner.com/Code/2003/Dec/ReadingWebPageSources.asp
System.IO.StreamReader stream = new System.IO.StreamReader
(webresponse.GetResponseStream(), System.Text.Encoding.GetEncoding(doc.Encoding));
webresponse.Close();
我給你第一部分;從C#開始,可以使用以下內容讀取網頁:http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx。我不知道如何在Firefox中抓取頁面。 – 2010-12-23 11:47:16