基於HttpClient、Jsoup的爬蟲獲取指定網頁內容


  不斷嘗試,發現越來越多有趣的東西,剛剛接觸Jsoup感覺比正則表達式用起來方便,但也有局限只適用HTML的解析。

不能嘗試運用到四則運算中(工作室剛開始聯系的小程序)。

  在原來寫的HttpClient獲取網頁內容的基礎上,增加對網頁的解析。

 下面是實現對網頁中電影分類的鏈接信息的爬取。

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
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) throws IOException{ try { //創建client實例 HttpClient client= HttpClients.createDefault(); //創建httpget實例 HttpGet httpGet=new HttpGet("http://www.btba.com.cn"); //執行 get請求 HttpResponse response=client.execute(httpGet); //返回獲取實體 HttpEntity entity=response.getEntity(); //獲取網頁內容,指定編碼 String web= EntityUtils.toString(entity,"UTF-8"); //輸出網頁 System.out.println(web); Document doc= Jsoup.parse(web); Elements links=doc.select("a[href~=http://www.btba.com.cn/type/*]");//選擇器,選取特征信息 String webs=null; for (Element link:links) { webs=link.attr("abs:href").toString(); System.out.println(webs+"\t\t"+link.text());//輸出特征信息 } } catch (IOException e) { e.printStackTrace(); } } }

下一步,將完成電影鏈接及電影相關信息的爬取。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM