2012-07-25 55 views
2

我開始使用Ruby的機械化寶石,我想知道是否有任何一個Web服務器可以檢測和阻止機械化代理的活動?如何阻止來自Ruby Mechanize Gem的訪問?

如果是,代碼或步驟是什麼?阻止機械化報廢或訪問網站?

+1

你總是可以拔掉你的服務器。 – pguardiario 2012-07-26 01:50:32

+0

拔下服務器的以太網或電源? – 2013-08-19 19:46:21

回答

0

您可以放置​​一個robots.txt文件,並希望人們尊重它。

如果您通過User-Agent字符串開始阻止,他們可以假裝成IE。

2

有多種方式,他們可以檢測一個自動化的過程是打他們的網站:

  • 他們可以檢查用戶代理字符串。
  • 他們可以看到你的要求。瀏覽器請求HTML頁面中的所有圖像和CSS。機械化不會默認。
  • 一個人暫停閱讀一頁並理解它說什麼。一段代碼不會被編程爲暫停,它將以全速運行,因此請求會很快跟上。

這些不一定指向機械化運行,而是指向代碼抓取站點的指紋。

他們可以做些什麼呢?

  • 禁止該用戶代理。
  • 禁止來自您的IP號碼或域或子網的任何請求。
  • 禁止來自您的IP號碼,域或子網的任何請求發生得太快。

根據服務器和網絡硬件的不同,有很多不同的方法可以解決這些問題。

這個問題是非常題外話了StackOverflow的,而且也應該問上https://serverfault.com/https://webmasters.stackexchange.com/

+0

我正在做機械化的網絡刮板,你知道如何避免這些鎖?我有一個網站,並返回給我一個403錯誤(我試着用一個新的IP,但它是一樣的) – 2013-12-17 20:48:30

+0

你最好的選擇是閱讀他們的服務條款,並檢查他們的支持,看看他們是否有條款做你想要做什麼,通過某個服務器或使用API​​。我不會幫你避開他們的障礙,因爲那是你們的問題;當我不知道你在用他們的頁面和/或內容做什麼時,我無意以任何方式參與其中。 – 2013-12-17 21:17:28

+0

是公開的信息,但他們沒有API :(我認爲他們阻止我,因爲我正在學習如何獲取網站,我淹沒服務器xD,然後我使用計時器,但它爲時已晚。 – 2013-12-17 21:26:14