2017-03-05 99 views
2
 package scraper; 

    import org.jsoup.Jsoup; 
    import org.jsoup.nodes.Document; 
    import org.jsoup.nodes.Element; 
    import org.jsoup.select.Elements; 

     public class Scraper { 

      public static void main(String[] args) throws Exception { 


       final Document document = Jsoup.connect("https://www.indeed.com.pk/jobs?q=java&l=").userAgent("Mozilla").cookie("auth", "token").timeout(3000) .get(); 

     Elements rows = document.select("div.row.result") ; 

     for (Element row : rows){ 
      Elements innerDivs = row.select("div"); 
      String header = innerDivs.get(1).text(); 
       String content = innerDivs.get(2).text(); 
       System.out.println("header = "+header+ " -> "+content); 
       } 
      } 
      } 

的所有数据在这段代码中,我刮搜索查询的Java的工作,但它只能报废当前页面(代码搜索查询的链接)。我想放弃了与Java有关如何从一个页面跳转到另一个,而刮搜索查询

所有页面

请帮

回答

0

你需要找到分页格,它具有.pagination类,然后选择第二个第一内链接的第一页,第二内连接页面等

这是你可能会怎么做这样的例子。您将需要修改它加载正确的页面(S):

Elements pages = document.select("div.pagination a"); 
for(Element page : pages) { 
    // Load the next page 
    Document nextPage = Jsoup.connect(pages.attr("href")); 
    ... 
} 

工作为例:首先

package scraper; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class Scraper { 

    public static void main(String[] args) throws Exception { 
     final Document document = 
       Jsoup.connect("https://www.indeed.com.pk/jobs?q=java&l=") 
       .userAgent("Mozilla") 
       .cookie("auth", "token") 
       .timeout(3000) 
       .get(); 
     scrape(document); 

     // Move to the next page 
     Element page = document.select("div.pagination a").get(1); 
     System.out.println("Page link: " + page.attr("href")); 
     Document pageDoc = Jsoup.connect(page.attr("abs:href")).get(); 
     scrape(pageDoc); 
    } 

    public static void scrape(Document document) { 
     Elements rows = document.select("div.row.result") ; 

     for (Element row : rows) { 
      Elements innerDivs = row.select("div"); 
      String header = innerDivs.get(1).text(); 
      String content = innerDivs.get(2).text(); 
      System.out.println("header = "+header+ " -> "+content); 
     } 
    } 
} 
+0

#haslam三江源这么多你的答案letme检查 –

+0

我没有得到你请详细说明:( –

+0

我添加了一个工作例子获取下一个页面,希望这会帮助你。 –

相关问题