2011-08-31 5 views
3

자바에서 내 대학 프로젝트에 다음 응용 프로그램을 만드는 것을 고려했습니다. 나는 코어 자바를 안다. 더 적은 시간이 있기 때문에 내가이 프로젝트에 대해 "구체적으로"무엇을 읽어야하는지 알고 싶습니다.Java에서 인터넷에서 데이터 가져 오기

쿼리를 입력 할 인터페이스가 있습니다. 이 문자열은 인터넷 검색 엔진에 대한 쿼리로 사용되며 검색 엔진의 도움을 받아 데이터를 찾습니다 (첫 번째 웹 페이지는입니다 (이번에는 내 응용 프로그램의 데이터입니다 :))).
데이터를 표시하고 싶지 않습니다. 난 그냥 HTML 파일이나 생성 된 웹 페이지의 소스 코드를 원한다. Common Getaway Interface처럼 들리는가? 나는 이것에 관해 모른다.

그러나 나는 같은 목적으로 생각합니다. 그것이라면. 이것을 구현하는 방법을 알려 주시기 바랍니다. 내가 무엇을 읽어야 할 사람 :

  • 문제 일 지정하세요 무엇이든
    ? 이 시점에서 직접적인 도움은 내 의도가 아닙니다. 나는 그것을 직접 구현하고 싶다.
  • 문제 2 : 인터넷에 연결하는 데는 일부 jnlp 지식이 필요합니다.

예 : Google 에서처럼 우리는 뭔가를 검색하여 웹 사이트 링크를 보여줍니다. 이 생성 된 웹 페이지의 소스 코드를 볼 수 있습니다. 난 그냥 내 응용 프로그램에 대한 작업이 페이지를 원한다.

편집 : Google 또는 특정 웹 서버에 의존하고 싶지 않습니다. 신청서로 결정하고 싶습니다.
또한 내 문제 2를 참조하십시오.

크롤러를 만들려고하면 웹 사이트 이용 약관이 있다는 것을 알게되었습니다. 그런 다음 내 신청서가 규칙을 위반하지 않을까요? 그게 나를 위해 중요합니다.

+0

웹 페이지의 대다수에는 TOC가 있는데, 여기에는 디지털 및 배포판, 제한 및 소유자에 관한 다른 단어가 사용 된 것으로 명확히 표시되어 있습니다. :-) – mKorbel

+0

그럼 내가 무엇을 제안해야합니까? 그래? google api로 이동해야하나요? –

답변

5

인 Ashish, 내가 추천 할 것입니다 무엇을 여기 를 얻을 수 있습니다.

  1. 이 그런 다음 Google 웹 검색 JSON의 API here 보면 이러한 링크 (Introduction, lib download)에서 JSON의 기본 사항을 알아.
  2. HttpClient 라이브러리 here을 사용하여 서버에서 데이터를 가져 오는 방법에 대해 알아보십시오.
  3. 이제는 검색 요청을 시작하고 JSON 응답을 읽고 # 1에서 JSON lib를 사용하여 응답을 구문 분석하면 검색 결과가 있습니다.
  4. 대부분의 검색 엔진 (Bing 등)은 Jason/REST API를 제공하므로 다른 검색 엔진에서도 동일한 작업을 수행 할 수 있습니다.

참고 : Jason API는 일반적으로 UI 측 JavaScritps에서 사용되지만 매우 쉽고 빠르게 배울 수 있기 때문에 JL API를 제안했습니다. XML 기반의 API도 (시간이 허락한다면) 탐색 할 수 있습니다.

+0

링크를 제공해 주셔서 감사합니다. 그들은 나를위한 출발점입니다. Google 웹 검색 json api에 대한 귀하의 2. 링크. 데스크톱 응용 프로그램에 연결할 수 있습니까? http://code.google.com/p/google-gson/해야 할 일이 있습니다. 제발 제안 해주세요. –

+0

예. 그것은해야한다. 그것의 API 및 그것은 웹 UI 또는 데스크톱 응용 프로그램에서 호출 여부는 중요하지 않습니다. – Santosh

2

HTMLUnit을 사용하여 원하는 모든 것을 할 수 있습니다. 그것은 웹 브라우저와 비슷하지만 자바 용입니다. 웹 사이트에서 몇 가지 예를 확인하십시오.

+0

그가 언급 한 _ _ "데이터를 표시하고 싶지 않습니다. 단지 HTML 파일이나 소스 코드가 필요합니다"_ –

+0

? htmlunit은 데이터를 표시하는 것 뿐만이 아닙니다. 그는 또한 "이 문자열은 인터넷 검색 엔진에 대한 쿼리로 사용되며 검색 엔진의 도움을 받아 데이터를 찾는다 (우리가 볼 수있는 첫 번째 웹 페이지는 도움이 될 수있다"). –

+0

@Maciejk 그래서 HTMLUnit은 웹 페이지에서 자바 스크립트를 실행하십시오. 그래서 엔진에서 검색하고자하는 내용을 "프로그램을 통해"할 수 있습니다 : => 상자에 내 검색어를 입력하고 버튼의 자바 스크립트 코드를 시뮬레이트하고 문서를 얻으십시오. –

4
URL url = new URL("http://fooooo.com"); 
in = new BufferedReader(new InputStreamReader(url.openStream())); 
String inputLine; 
while ((inputLine = in.readLine()) != null) 
    { 
    System.out.println(inputLine); 
    } 

시작하기에 충분해야합니다.

네, 웹 사이트의 사용 조건을 위반하지 않았는지 확인하십시오. 검색 엔진은 프로그램을 통해 액세스하려고 시도하는 것을 정말로 좋아하지 않습니다.

Google을 비롯한 많은 사람들이 이러한 목적으로 특별히 고안된 API를 가지고 있습니다. 자바 튜토리얼

+0

웹에서 검색하려는 검색어를 사용하지 않고 모든 검색 엔진에 보내려면 어떻게해야합니까? 특정 api. –

+0

당신 coul 하지만 사이트의 서비스 약관을 위반하는 것입니다. 그들 중 하나가 당신에게 행동을 취할 때까지 오래 가지 않을 것입니다. 가장 가벼운 것은 당신의 ip를 블랙리스트에 올릴 것입니다. 나는 당신이 다양한 검색 엔진 API로부터 얻을 수있는 결과를 통합하는 서비스를 제안합니다. 당신이 원하는 것을하는 방법. – amal

+0

그래서 HTMLUnit은 웹 페이지에서 자바 스크립트를 실행할 수 있습니다. 그래서 엔진에서 검색하고자하는 모든 것을 "프로그램을 통해"할 수 있습니다 : => 상자에 내 검색어를 입력하고 버튼의 자바 스크립트 코드를 시뮬레이트합니다. 문서를 가져와. 웹 서버의 TOC를 위반 했습니까? –

1

읽기 "Working with URL's는"HtmlUnit과, HttpClient를 같이 사용할 수 libs가 뒤에 어떤 아이디어 등

+0

내 편집에 대한 의견을 말하십시오 –

+0

그래서 HTMLUnit은 웹 페이지에서 javascript를 실행할 수 있습니다. 그래서 엔진에서 검색하고자하는 모든 것을 "프로그램을 통해"할 수 있습니다 : => 상자에 내 검색어를 입력하고 버튼의 자바 스크립트 코드를 시뮬레이트합니다. 문서를 가져와. 웹 서버의 TOC를 위반 했습니까? –

+0

웹 페이지를 렌더링하지 않습니다. 이것은 모두 사실상 일어나는 일입니까? –

1

데이터를 표시하고 싶지 않습니다. 난 그냥 HTML 파일이나 생성 된 웹 페이지의 소스 코드를 원한다.

HTML도 필요하지 않습니다. Google은이 검색 결과를 API을 사용하여 웹 서비스로 제공합니다. 다른 검색 엔진 GIYF에 대해서도 마찬가지입니다. 검색 결과를 XML로 얻으므로 구문 분석이 훨씬 쉬워집니다. XML에는 광고와 같은 원치 않는 데이터가 없습니다.