以编程方式打开网页并检索其html包含为字符串

use*_*338 5 html c#

我有一个Facebook帐户,我想提取我朋友的照片及其个人详细信息,如"出生日期","已学习"等.我能够为我的每个朋友帐户提取facebook的第一页的地址但我不知道如何以编程方式为我的每个朋友的第一页打开网页并将html包含为字符串以便我可以提取出来他们的个人细节和照片.请帮忙!预先感谢!

dea*_*ock 9

你有三个选择:

1- 使用WebClient对象.

WebClient webClient = new webClient();
webClient.Credentials = new System.Net.NetworkCredential("UserName","Password", "Domain");
string pageHTML = WebClient .DownloadString("http://url");`
Run Code Online (Sandbox Code Playgroud)

2- 使用WebRequest.这是最好的解决方案,因为它可以让您更好地控制您的请求.

WebRequest myWebRequest = WebRequest.Create("http://URL");  
WebResponse myWebResponse = myWebRequest.GetResponse();  
Stream ReceiveStream = myWebResponse.GetResponseStream();                 
Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); 
StreamReader readStream = new StreamReader( ReceiveStream, encode ); 
string strResponse=readStream.ReadToEnd();                 
StreamWriter oSw=new StreamWriter(strFilePath);     
oSw.WriteLine(strResponse); 
oSw.Close(); 
readStream.Close();        
myWebResponse.Close(); 
Run Code Online (Sandbox Code Playgroud)

3- 使用Web浏览器(我打赌你不想这样做)

WebBrowser wb = new WebBrowser();
wb.Navigate("http://URL");
string pageHTML = "";
wb.DocumentCompleted += (sender, e) => pageHTML = wb.DocumentText;
Run Code Online (Sandbox Code Playgroud)

对不起,如果我错误输入任何代码,因为我即兴创建了它,而且我没有语法检查器来检查它的正确性.但我认为应该没问题.


编辑:对于Facebook页面.您可以考虑使用Facebook Graph API:

http://developers.facebook.com/docs/reference/api/


And*_*are 7

试试这个:

var html = new WebClient()
               .DownloadString("the facebook account url goes here");
Run Code Online (Sandbox Code Playgroud)

此外,一旦您将HTML作为字符串下载,我强烈建议您使用Html Agility Pack来解析它.

  • 哈,得爱C,下载文件需要5行以上和一个库:) (2认同)