HTMLAgilityPack を使用して、次の Web サイトから HTML を取得していました: http://tennis.wettpoint.com/en/
うまくいきましたが、今では.. 1時間後にはもう機能しません!
最初にコードを変更しようとしました-HTMLを取得する方法について:
string url = "http://tennis.wettpoint.com/en/";
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
//Code..
}
私が言ったように、それは常にうまくいきました..サイトが私にとって「ダウン」しているように見えるまで..だから私はコードを次のように変更しました:
using (WebClient wc = new WebClient())
{
wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");
string html = wc.DownloadString("http://en.wikipedia.org/wiki/United_States");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
}
(それは私のサイトでは機能しませんでしたが、他のサイトでは機能しました)
少なくとも私はこれを持っていますが、これも機能しますが、私のサイトでは機能しません:
HtmlAgilityPack.HtmlDocument doc = GetHTMLDocumentByURL(url);
public HtmlAgilityPack.HtmlDocument GetHTMLDocumentByURL(string url)
{
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.OptionReadEncoding = false;
var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
request.Method = "GET";
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
htmlDoc.Load(stream, Encoding.UTF8);
}
}
return htmlDoc;
}
最初は、サイトがダウンしていると思っていました。どのブラウザでもサイトにアクセスできないためです..だから友人に尋ねたところ、彼らはサイトにアクセスできました..つまり、私の IP がブロックされていたということです.. 。 私に何ができる?Ip (方法) を変更する必要がありますか、それともプロキシ (方法) を使用する必要がありますか?