簡體   English   中英

使用WebRequest檢索數據

[英]Retrieving data using WebRequest

從msdn刻下了一些代碼后,我感到很奇怪,它不能完全按照我想要的方式工作。 我正在嘗試使用Google翻譯來為我即時翻譯一些內容。 問題是,responseFromServer不包含翻譯后的文本,當我使用瀏覽器查看源時也不會包含源文本,盡管在查看頁面本身時會自豪地顯示。

void getTranslation()
    {
        WebRequest request = WebRequest.Create("http://translate.google.com/translate_t?hl=en#en|fr|dog");
        // Get the response.
        WebResponse response = request.GetResponse();
        // Display the status.
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);
        // Get the stream containing content returned by the server.
        Stream dataStream = response.GetResponseStream();
        // Open the stream using a StreamReader for easy access.
        StreamReader reader = new StreamReader(dataStream);
        // Read the content.
        string responseFromServer = reader.ReadToEnd();
        int index = 0;
        while (responseFromServer.Substring(index).Contains("dog"))
        {
            index = responseFromServer.IndexOf("dog", index + 1);
            Console.WriteLine(responseFromServer.Substring(index < 50 ? 0 : index - 50, 100));
            Console.WriteLine(" ");
        }
    }

有人知道我在這里看不懂嗎? 還是返回與要求一樣簡單的翻譯的網站?

原因是轉換請求本身是異步AJAX請求。 如果您查看要檢索的頁面的源代碼,則不會找到chien一詞。

您可以看一下Google AJAX語言API來實現所需的功能。

它不起作用,因為此應用程序使用javascript自動發布。

如果要通過屏幕抓取來執行此操作,則必須使用正確的參數對表單的URL進行POST請求。

但是,建議您僅使用其API而不是網絡抓取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM