C#HTMLAgilityPack網站阻止了我的IP地址

c# html-agility-pack ip proxy

我正在使用HTMLAgilityPack從以下網站獲取HTML: http ://tennis.wettpoint.com/en/

它工作正常,但現在......一小時後它就不再起作用了!

首先,我嘗試更改我的代碼 - 關於如何檢索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..
}

就像我說的,這總是很好..直到該網站對我來說似乎“失敗”..所以我將代碼更改為:

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..
}

(這不適用於我的網站,但適用於其他網站)

至少我現在有這個,這也有效,但不適用於我的網站:

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..
}

嗯,起初我認為該網站已關閉,因為我無法使用任何瀏覽器訪問該網站..所以我問朋友,他們能夠訪問該網站..這意味著我的IP已被阻止..為什麼。 。 我能做什麼?我是否需要更改我的IP(如何)或使用Proxys(如何)...我不知道,因為我沒有提到這會發生:(希望有人可以幫助我..

一般承認的答案

維基百科監控從IP地址獲得的請求數量,並禁止IP積極地抓取其內容。刮刮谷歌搜索結果會產生同樣的效果。

最初維基百科只會禁止你24小時,但如果你繼續“冒犯”,你的IP將被永久禁止。

您可以 - 在HttpRequest中使用代理來更改您的IP地址或減慢您的請求。


熱門答案

爬行的第一條規則:禮貌!

只要您抓取網站,就必須確保您的抓取工具遵守其robots.txt文件中的規則: http//tennis.wettpoint.com/robots.txt

User-agent: msnbot 
Crawl-delay: 1

User-agent: MJ12bot
Disallow: /

User-agent: sistrix
Disallow: /

User-agent: TurnitinBot
Disallow: /

User-agent: Raven
Disallow: /

User-agent: dotbot
Disallow: /

這意味著明確允許msnbot以1秒的延遲抓取網站。 MJ12bot,sistrix,TurnitinBot,Raven和dotbot明確不允許抓取任何網站。現在,這是您將從網站上看到的第一道防線。這是保護其網站免遭意外濫用的最禮貌方式。有關robots.txt的更多信息,請訪問: http//www.robotstxt.org/meta.html

您應該實現一些合理的爬網延遲(1-10秒)並查看它們是否允許您再次爬網。

規則二:注意機器人陷阱!

目前這不適用於你,但你應該是它的一般產品。捕獲不禮貌的機器人的一種方法是在robots.txt中放置一個明確的規則,禁止所有機器人進入特定目錄,例如:

User-agent:* Disallow:/ / epic / robot / trap / path

然後在HTML的某個地方有一個鏈接,人類看不到,但機器人可以看到:

User-agent: msnbot 
Crawl-delay: 1

User-agent: MJ12bot
Disallow: /

User-agent: sistrix
Disallow: /

User-agent: TurnitinBot
Disallow: /

User-agent: Raven
Disallow: /

User-agent: dotbot
Disallow: /

很明顯,如果他們使用的是瀏覽器,那麼沒有人會看到或點擊此鏈接,並且沒有遵循robots.txt規則的機器人會進入/the/epic/robot/trap/path 。但是,不遵守robots.txt規則並收集內部鏈接以進行爬行的機器人最終會進入該目錄,等待他們的是某些死亡!該網站的運營商很可能收集並阻止訪問該鏈接的所有用戶的IP。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因