내 프로그램이 내 단일 결과 페이지로 이동하여 모든 링크를 찾아 파일에 저장합니다. 그런 다음 파일을 읽고 필수 링크가 포함 된 행만 복사하여 다른 파일에 저장합니다. 그리고 나는이 작업을 수행하는 파일을 생성하지 않으려는 다시 필요 추출하는 데이터파일 io를 대체 할 Java 데이터 구조
public class net {
public static void main(String[] args) throws Exception {
Document doc = Jsoup.connect("http://jntuconnect.net/results_archive/").get();
Elements links = doc.select("a");
File f1 = new File("flink.txt");
File f2 = new File("rlink.txt");
//write extracted links to f1 file
FileUtils.writeLines(f1, links);
// store each link from f1 file in string list
List<String> linklist = FileUtils.readLines(f1);
// second string list to store only required link elements
List<String> rlinklist = new ArrayList<String>();
// loop which finds required links and stores in rlinklist
for(String elem : linklist){
if(elem.contains("B.Tech") && (elem.contains("R07")||elem.contains("R09"))){
rlinklist.add(elem);
}
}
//store required links in f2 file
FileUtils.writeLines(f2, rlinklist);
// parse links from f2 file
Document rdoc = Jsoup.parse(f2, null);
Elements rlinks = rdoc.select("a");
// for storing hrefs and link text
List<String> rhref = new ArrayList<String>();
List<String> rtext = new ArrayList<String>();
for(Element rlink : rlinks){
rhref.add(rlink.attr("href"));
rtext.add(rlink.text());
}
}// end main
}
을 구문 분석합니다. 파일을 만들지 않고 특정 URL 만 href 및 링크 텍스트를 얻는 더 좋은 방법이 있습니까?
Elements links = doc.select("a");
List<String> linklist = new ArrayList<String>();
for (Element elt : links) {
linklist.add(elt.toString());
}
두 번째 왕복, 내가 코드를 이해하는 경우에 만들어진 것입니다 :
그것은
이미 목록을 가지고 있습니다 ('Elements links'). 그냥 조작하십시오. 파일에서 읽고 쓰는 코드는 완전히 불필요합니다. – vanza