스크래핑하여 특정 요소를 파일로 내보내기
할 일
súp라는 라이브러리를 사용하여 스크래핑하고 특정 요소를 파일로 내보냅니다. 그 때 JSON 형식으로 내보낸다. (eclipse로 동작)
배경
서비스의 제휴처를 조사하고 있으면, 행운에도(?) 많이 제휴처가 있는 서비스를 만났습니다. 이러한 서비스명을 복사해 JSON 형식
{"Name":"Service_name","Connectivity":"1"}
에 넣는 것은 힘들다고 생각 작성.이번 취급하는 서비스는 Highrise의 파트너
사용할 라이브러리
soup라는 HTML을 스크래핑할 수 있는 라이브러리를 사용한다.
공식 페이지 : h tp : // j그래서 p. rg/
다운로드 페이지 : h tp : // j그래서 p. 오 rg / w w ぉ 아 d
웹페이지의 어떤 태그에 원하는 정보가 있는지 확인
HTML을 살펴보면,
되고 싶은 정보(서비스의 이름)는 app 클래스의 h4 태그의 a 태그중이라고 확인할 수 있었습니다.
Eclipse에 다운로드한 .jar 파일 추가
[package]를 마우스 오른쪽 버튼으로 클릭 → [빌드 경로] → [빌드 경로 구성]을 클릭합니다.
다음 화면이 표시됩니다.
외부 JAR 추가를 클릭하고 방금 다운로드한 jsoup의 .jar 파일을 선택합니다.
그런 다음 적용 및 닫기를 클릭합니다. 이것으로 추가 완료.
"참조 라이브러리"라는 것이 되어 있어 그 안에 추가된 .jar 파일이 들어가 있는 것을 확인.
코드 작성
súp 가져오기
Main.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
상기를 기술.
파일 조작을 작성합니다.
예외 처리 등 잊지 않고.
Main.java
import java.io.FileWriter;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Main {
public static void main(String[] args) {
FileWriter fw = null;
try {
//ファイルの書き込み
}catch(IOException e) {
System.out.println("ファイル書き込みエラーです");
}finally {//ファイルを閉じる
if(fw != null) {
try {
if(fw != null) {
fw.close();
}
}catch(IOException e2) {}
}
}
}
}
파일의 쓰기 부분에 코드를 씁니다.
Main.java
//ファイルを開く
fw = new FileWriter("[書き込むファイルのパス]", true);
//ファイルに書き込む
Document document = Jsoup.connect("https://highrisehq.com/extras/").get();
Elements elements = document.select(".app h4 a");
for (Element element : elements) {
String name = element.text();
fw.write("{\"Name\":\"" + name + "\",\"Connectivity\":\"1\"}\n");
System.out.println(name);
}
fw.flush();
Jsoup.connect("URL").get();
에서 웹사이트 HTML 로드document.select("タグ");
에서 필요한 HTML 태그를 찾습니다. 이 경우 복수 해당하므로 element에는 해당하는 것이 모두 들어 있습니다.for
에서 하나씩 꺼냅니다element.text();
에서 해당 HTML 텍스트를 가져옵니다. (속성의 경우는 text가 아니고 attr("属性名")
)파일에 쓸 때는 JSON 형식이므로 이번은
{"Name":"Service_name","Connectivity":"1"}
에 맞춘다.이런 식으로 내보낼 수있었습니다. 죄송합니다.
※사이트의 제휴처 일람에 추천 서비스가 있어 4개 중복이 있었습니다. (내보낸 것의 처음 4개)
참고로 한 것
고마워요.
súp 사용법 참고 : htps : // 코 m / 오 글 8080 / ms / d4864 bc335d1 99 A 2d7
자바로 스크래핑을 하자! ! : htps : // 코 m / 타카 히로 사카토 / ms / c2b269c07 15 A04f5861
■ [Java] [Html Parser] [jsoup] jquery처럼 html을 조작 할 수있는 Java 라이브러리 "jsoup"의 사용법. : htp // d. 하테나. 네. jp/i-t ch-dm/20110123/1295774869
Reference
이 문제에 관하여(스크래핑하여 특정 요소를 파일로 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Terry3/items/0c1829130111967773bf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)