저는 자바 초보자입니다. 웹 사이트에서 데이터를 가져 와서 일종의 데이터 구조에 저장할 수 있습니까? 예를 들어, 프로그램은 주어진 시간에 yahoo finance에서 주식 값을 가져 와서 저장합니다. 내가 말했듯이, 나는 자바에 익숙하지 않고 이것이 가능할 수 있는지 알고 싶습니다. 그것이 가능하다면, 그것을하는 것이 아주 어렵습니까?Java에서 데이터 가져 오기
2
A
답변
0
예. 임의의 웹 페이지를 Java 문자열로 다운로드하고 내용을 구문 분석 할 수 있지만 이러한 솔루션은 신뢰할 수 없습니다. 작성자가 웹 사이트의 구조를 변경하면 코드가 즉시 중단됩니다.
이러한 통합을 수행하는 일반적인 방법은 RESTful web service입니다. 데이터 공급자는 사용자가 호출 할 수있는 & 매개 변수 집합을 가지며 XML 또는 JSON 형식의 주가 데이터를 반환합니다.
0
예 webservice를 사용하여 가능합니다.
- Yahoo 또는 기타가 웹 서비스를 노출합니다.
- 여러분의 프로그램은 웹 서비스를 소비하고 데이터를 가져오고 내가 광범위하게 JSoup을 사용했습니다
1
당신의 말에 조작을 할 것입니다. 레이아웃이나 구조가 자주 변경되지 않는 웹 사이트에서 데이터를 추출하는 프로그램 만 사용자 정의하면됩니다. JSoup
이면 충분합니다.
당신이 (Java
에 반드시 익숙하지 않은) 프로그래밍하는 방법에 대한 기본 사항을 알고 가정하고 웹을 구성하는 이해 (html
, dom
등이 무엇인지 등), 내가 기대 당신은 웹을 수행하는 방법을 데리러 꽤 빨리 JSoup
으로 긁어 모으기.
3
public class GetYahooData
{
public ArrayList<JSONObject> getOutputFromUrl(String url)
{
ArrayList<JSONObject> output = new ArrayList<JSONObject>();
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse response;
StringBuilder builder= new StringBuilder();
JSONObject myjson ;
JSONArray the_json_array;
try
{
response = httpClient.execute(httpPost);
BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
char[] buf = new char[8000];
int l = 0;
while (l >= 0)
{
builder.append(buf, 0, l);
l = in.read(buf);
}
myjson = new JSONObject("{child:"+builder.toString()+"}");
JSONObject mmm = new JSONObject(builder.toString());
JSONArray mmmArr = mmm.getJSONArray("status");
the_json_array = myjson.getJSONArray("child");
for (int i = 0; i < the_json_array.length(); i++)
{
JSONObject another_json_object = the_json_array.getJSONObject(i);//the_json_array.getJSONObject(i);
output.add(another_json_object);
}
} catch (ClientProtocolException e) {
System.out.println("ClientProtocolException :"+e);
e.printStackTrace();
} catch (IOException e) {
System.out.println("IOException :"+e);
e.printStackTrace();
} catch (JSONException e) {
System.out.println("JSONException hussain :"+e);
e.printStackTrace();
}
return output;
}
}
public class useYahoo
{
public static void main(String args[])
{
String url = "the url you want the response from";
getYahooData object = new GetYahooData();
ArrayList<JSONObject> output = object.getOutputFromUrl(url);
}
}
관련 문제
- 1. Java에서 인터넷에서 데이터 가져 오기
- 2. java에서 sql 파일에서 데이터 가져 오기
- 3. Java에서 비디오 파일 메타 데이터 가져 오기
- 4. NonStatic Java에서 정적으로 데이터 가져 오기
- 5. Java에서 쿠키 가져 오기
- 6. Java에서 SuperInterfaces 가져 오기
- 7. Java에서 FQDN 가져 오기
- 8. Java에서 클래스 가져 오기?
- 9. Java에서 창 가져 오기
- 10. Java에서 아키텍처 가져 오기
- 11. Excel에서 데이터 가져 오기
- 12. 원격 서버에서 데이터 가져 오기
- 13. Java에서 BIOS 시간 가져 오기
- 14. Java에서 가져 오기 명령문 리팩터링
- 15. Java에서 달 이름 가져 오기
- 16. Java에서 String에서 Locale 가져 오기
- 17. Java에서 어셈블리 버전 가져 오기
- 18. Java에서 기본 게이트웨이 가져 오기
- 19. Java에서 이웃 패키지 가져 오기
- 20. Java에서 객체 이름 가져 오기
- 21. Java에서 가져 오기 Dll 라이브러리
- 22. Java에서 HashMap의 요소 가져 오기?
- 23. Java에서 하위 속성 가져 오기
- 24. Java에서 화면 구성 가져 오기
- 25. Java에서 다음 날짜를 가져 오기
- 26. Java에서 파일 확장자를 가져 오기
- 27. Java에서 하위 목록 가져 오기
- 28. Java에서 모드 값 가져 오기
- 29. Java에서 JSONArrays 가져 오기 (Android)
- 30. Java에서 CAS 쿠키 가져 오기
네, 할 수 있습니다. 예, 어렵습니다 (지각에서). 'URLConnection'을 다루는 방법, 기본적인 I/O 및'String' 파싱을 시작하는 방법 등을 이해해야합니다. JDBC를 이해해야 할 필요조차 있습니다. 약간의 경험과 더불어, 그것은 어렵지 않다. 그래도 기초부터 시작하겠습니다. 로컬 드라이브의 HTML 파일을 읽으십시오. 'String' 파싱의 기본 원리를 이해했다면, 다운로드하십시오. – MadProgrammer
당신은 웹 긁기에 대해 이야기하고 있습니다. Java에서 JSoup라는 유용한 라이브러리가 있습니다. –
기회를 얻으려는 사이트는 이미 프로그래밍 방식으로 훨씬 더 easly 검색된 힘든 HTML 구문 분석 없이는 크롤링 할 수있는 웹 서비스를 제공합니다 – amphibient