이후 사용을 위해 이 두 함수를 FileReaderWriter.java 파일에 캡슐화합니다.
그런 다음 Zhihu 크롤러로 돌아갑니다.
로컬에 쓸 때 조판 형식을 지정하려면 Zhihu의 Zhihu 캡슐화 클래스에 함수를 추가해야 합니다.
코드는 다음과 같습니다.
public String writeString() { String result = ""; result += "问题:" + question + "\r\n"; result += "描述:" + questionDescription + "\r\n"; result += "链接:" + zhihuUrl + "\r\n"; for (int i = 0; i < answers.size(); i++) { result += "回答" + i + ":" + answers.get(i) + "\r\n"; } result += "\r\n\r\n"; return result; }
그렇습니다. 다음으로 main 메소드의 System.out.println을
코드로 변경합니다.
// 写入本地 for (Zhihu zhihu : myZhihu) { FileReaderWriter.writeIntoFile(zhihu.writeString(), "D:/知乎_编辑推荐.txt", true); }
실행하면 원래 콘솔에 표시된 내용이 로컬 txt 파일에 기록된 것을 확인할 수 있습니다.
일반적으로 언뜻 보면 문제가 없습니다. 자세히 살펴보면 문제가 있습니다. 주로 및
등의 HTML 태그가 너무 많습니다.
출력 중에 이러한 태그를 처리할 수 있습니다.
먼저 io 스트림에서
를 rn으로 바꾼 다음 모든 html 태그를 삭제하면 훨씬 더 명확해집니다.
코드는 다음과 같습니다.
public String writeString() { // 拼接写入本地的字符串 String result = ""; result += "问题:" + question + "\r\n"; result += "描述:" + questionDescription + "\r\n"; result += "链接:" + zhihuUrl + "\r\n"; for (int i = 0; i < answers.size(); i++) { result += "回答" + i + ":" + answers.get(i) + "\r\n\r\n"; } result += "\r\n\r\n\r\n\r\n"; // 将其中的html标签进行筛选 result = result.replaceAll("<br>", "\r\n"); result = result.replaceAll("<.*?>", ""); return result; }
여기서 replacementAll 함수는 정규 표현식을 사용할 수 있으므로 마지막에 모든 태그가 삭제됩니다.
위 내용은 캡처한 내용을 로컬에 저장하기 위해 기초 없이 Java Zhihu 크롤러를 작성하는 내용입니다(2). 더 많은 관련 내용은 PHP 중국어 홈페이지(www.kr)를 참고해주세요. .php.cn)!