2013-03-04 1 views
0

영어에서 벵골어로 의미를 나타내는 사전 응용 프로그램과 함께 작업하고 있습니다. 나는 큰 Bangla 의미가 없지만 거대한 영어 단어가 있습니다.이 영어 단어를 사용하여 Google 번역기를 사용하여 Bengali 언어로 번역하여 사전 데이터베이스를 만들고 싶습니다. 그래서 구글 translator.I의 의미는 다음 코드를 사용 스크랩 : html agilitypack을 사용하여 텍스트 스크래핑

string meaning = "", bangla = ""; 

     HtmlWeb web = new HtmlWeb(); 
     HtmlAgilityPack.HtmlDocument doc = web.Load("http://translate.google.com/#en/bn/like"); 
     HtmlNodeCollection node = doc.DocumentNode.SelectNodes("//div[@class='gt-baf-cell gt-baf-word']"); 

     if (node != null) 
     { 
      foreach (HtmlNode n in node) 
      { 
       meaning = n.InnerText; 
       meaning = meaning.Trim(); 
       MessageBox.Show(meaning); 
      } 
     } 
     else 
      MessageBox.Show("Sorry,the meaning is not found"); 

요소

는 불을 지르고 도구에 div.gt-BAF-cell.gt-BAF 단어했다. 하지만 여기서는 효과가 없었습니다. "죄송합니다. 의미를 찾을 수 없습니다."라는 메시지가 표시됩니다. 무엇이 문제입니까?

+0

볼 수 있듯이 div 이름의 이름은 "gt-baf-cell gt-baf-word"입니다. 이것은 단일 문자열입니다. a가 없다. 사이. – shahkalpesh

+0

@shahkapesh 나는 또한이 "// div [@ class = 'gt-baf-cellgt-baf-word']"와 같이 썼다. 그러나 그것도 작동하지 않았다. – DarkenShooter

+0

* 대신에 공백을 넣으십시오. - gt-baf-cell * gt-baf-word – shahkalpesh

답변

0

내가 거기에 생각이 HtmlAgilityPack

를 사용하여 나는이 시도 그렇게 할 수있는 방법입니다 :

web.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"; 
doc = web.Load("http://translate.google.com/#en/bn/like"); 
webBrowser1.DocumentText = doc.DocumentNode.OuterHtml; 

을하며이 결과 제공 : 당신과의 동일하지 볼 수 있듯이 http://jsbin.com/irijiz/1/edit

을 귀하의 브라우저에서 본 것은 코드가 작동하지 않는 이유입니다.

자세한 내용은

과 대안을 확인 this

+0

그래서 내가 뭘 할 수 있니? 나쁘게. 내 코드가 뭐가 잘못 됐니? @ Loclip – DarkenShooter

+1

간단한 사이트라면 작동하지만 구글은 웹 스크래핑을 허용하지 않는 몇 가지 메커니즘을 가지고있는 것 같다. .. 다른 대안 솔루션에 대해서는이 링크를 확인하십시오. http://stackoverflow.com/questions/6151668/alternative-to-google-translate-api – a1204773

+0

그 '메커니즘'은 단순히 자바 스크립트라고 생각합니다. :) –

0

귀하의 잘못된 코드입니다 HtmlNodeCollection 노드 = doc.DocumentNode.SelectNodes ("// DIV의 [에 @ 클래스 = 'GT-BAF 셀 GT-BAF 단어'] ");

doc.DocumentNode.InnerText는 DIV 클래스 = GT-BAF 셀 GT-BAF 워드

체크 doc.DocumentNode.InnerText 존재하지 않기 때문에

.

왜 존재하지 않는 "gt-baf-cell gt-baf-word"를 찾으려고합니까?

관련 문제