C#从跨度中抓取文本

时间:2013-10-31 14:38:48

标签: c# webrequest webresponse

我试过了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Net.Sockets;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Danish to English: ");
            string tittyfuck = Console.ReadLine();
            Console.Beep();
            WebRequest webRequest = new WebRequest.Create("http://translate.google.com/#da/en/" + tittyfuck);
            WebResponse webResponse = webRequest.GetResponse();

            Stream data = webResponse.GetResponseStream();
            string html;

            using (StreamReader streamReader = new StreamReader(data))
            {
                string line;
                while ((line = streamReader.ReadLine() != null))
                {
                    if (line == "<span class=\"hps\">")
                    {
                        Console.Beep();
                        Console.WriteLine(line);
                    }
                }
            }
        }
    }
}

好的,所以我尝试了但是我收到了这些错误:

  

错误1'System.Net.WebRequest.Create(System.Uri)'是'方法',但用作'类型'C:\ Users \ Dylan \ AppData \ Local \ Temporary Projects \ ConsoleApplication1 \ Program。 cs 18 52 ConsoleApplication1

  

错误2无法将类型'bool'隐式转换为'string'C:\ Users \ Dylan \ AppData \ Local \ Temporary Projects \ ConsoleApplication1 \ Program.cs 27 32 ConsoleApplication1

正如您可能会说的那样,我正在尝试使用链接后面的文本打开translate.google.com请求,然后抓取打印到翻译文本的文本。它基本上是一个翻译。 请帮忙。

3 个答案:

答案 0 :(得分:1)

第18行:

WebRequest webRequest = WebRequest.Create(new URI("http://translate.google.com/#da/en/" + tittyfuck));

第27行:

while ((line = streamReader.ReadLine()) != null)

答案 1 :(得分:0)

删除新关键字,并设置其他括号。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Net.Sockets;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Danish to English: ");
            string tittyfuck = Console.ReadLine();
            Console.Beep();
            WebRequest webRequest = WebRequest.Create("http://translate.google.com/#da/en/" + tittyfuck);
            WebResponse webResponse = webRequest.GetResponse();

            Stream data = webResponse.GetResponseStream();
            string html;

            using (StreamReader streamReader = new StreamReader(data))
            {
                string line;
                while ((line = streamReader.ReadLine()) != null)
                {
                    if (line == "<span class=\"hps\">")
                    {
                        Console.Beep();
                        Console.WriteLine(line);
                    }
                }
            }
        }
    }
}

答案 2 :(得分:0)

您无法以这种方式使用谷歌翻译,因为javascript请求翻译,您可以尝试使用webbrowser或购买一些字符以使用翻译api

另一种方法是解析请求的结果(http://translate.google.com/translate_a/t?...。),即json样式