2010-04-13 65 views
4

我有以下幾點:Google不允許Web客戶端嗎?

string html_string = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=pharma"; 
string html; 
html = new WebClient().DownloadString(html_string); 

,當我得到HTML的長度,它返回只有第一個28435個字符。

Google可能不允許訪問Web客戶端嗎?

+1

您是否檢查過自己的代理服務器設置,確保您的瀏覽器未使用代理服務器訪問? – 2010-04-13 19:21:52

回答

3

沒有,看到TOS

5.3您同意不訪問(或試圖訪問)任何服務通過其他任何方式而不是通過Google提供的界面,除非您已經特別允許與Google單獨達成協議。您特別同意不通過任何自動方式(包括使用腳本或網絡抓取工具)訪問(或嘗試訪問)任何服務,並確保您遵守服務中存在的任何robots.txt文件中列出的說明。

+0

爲什麼downvoting沒有任何解釋?我的回答正好解決了這個問題,不是嗎? – fuxia 2010-04-13 22:09:24

3

我試過這段代碼,它返回的是與瀏覽器返回的完全相同的HTML。唯一的糾正我會做是處置一次性對象:

string html_string = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=pharma"; 
using (var client = new WebClient()) 
{ 
    string html = client.DownloadString(html_string); 
} 
+0

非常感謝你的工作很棒! – 2010-04-13 20:01:52

1

根據搜索結果的經驗,他們可以並且會關閉你,他們檢測到一個機器人。

2

如果你正在編寫一個bot,它不會工作;他們最終會阻止你。

你可能想看看他們的列表API的,特別是Custom Search,看看是否有幫助?

0

它當然會有所不同。可能有大量的額外字符填充在瀏覽器中處理用戶登錄,機器人代碼和許多其他腳本。

當您通過代碼獲取數據時,搜索將作爲非谷歌用戶(或未簽名用戶,如果您喜歡)執行。這是最簡單的解釋。

恐怕達林的答案至少在任何時候都行不通。這不是不可靠的。


是的,當然,你的活動將被檢測爲機器人而不是人類。所以,要小心後果。

相關問題