1. 程式人生 > >Jsoup簡單例子——爬取網頁內的郵箱

Jsoup簡單例子——爬取網頁內的郵箱

一、前言

Jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文字內容。它提供了一套非常省力的API,

可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作資料。

主要功能:

    1)從一個URL,檔案或字串中解析HTML

    2)使用DOM或CSS選擇器來查詢、取出資料

    3)可操作HTML元素、屬性、文字

二、案例

這裡以百度貼吧的一個帖子為例,爬取帖子裡的郵箱,如圖:

 

首先新建一個Maven Project

在pom.xml中加入jsoup的jar包:

<dependency>
	  <groupId>org.jsoup</groupId>
	  <artifactId>jsoup</artifactId>
	  <version>1.10.2</version>
</dependency>

 Java程式碼:


import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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

/**
 * 爬取貼吧郵箱
 * @author Honest
 *
 */
public class JsoupTest3 {
	public static void main(String[] args) {
		int index = 1;//頁數
		String url = "https://tieba.baidu.com/p/3349997454?pn=";//地址
		long startTime = System.currentTimeMillis();//開始時間
		int i = 0;//記錄獲取郵箱個數
		try {
			//獲取10頁的內容
			for(;index <= 10;index++) {
				Document document = Jsoup.connect(url+index)
						//偽裝成瀏覽器進行抓取
						.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0")
						.get(); 
				Element main = document.getElementById("j_p_postlist");
				Elements content = main.select("div.l_post_bright")
						.select("div.d_post_content_main")
						.select("div.p_content")
						.select("cc")
						.select("div.d_post_content");
				//遍歷每一帖的內容
				for (Element element : content) {
					String Content = element.text();
					//正則表示式判斷郵箱
					String patternStr = "[\\w[.-]]
[email protected]
[\\w[.-]]+\\.[\\w]+"; Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(Content); //如果含有郵箱,獲取到的郵箱個數i+1,並輸出該郵箱 if(matcher.find()) { i++; System.out.println(matcher.group()); } } } long endTime = System.currentTimeMillis();//結束時間 System.out.println("獲取了"+i+"個郵箱"); //System.currentTimeMillis()單位為毫秒,除以1000轉化為秒 System.out.println("耗時:"+(endTime - startTime)/1000+"s"); } catch (IOException e) { e.printStackTrace(); } } }

需要注意的是,在利用爬蟲爬取網頁資料的時候,一定要偽裝成瀏覽器,否則有的網站在識別到你正在通過爬蟲爬取資料後,會封掉你的ip,切記切記。