스크래핑하여 특정 요소를 파일로 내보내기

9272 단어 súpscraping자바

할 일



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

좋은 웹페이지 즐겨찾기