1. 程式人生 > >Java爬蟲入門例項

Java爬蟲入門例項

想copy個爬蟲玩玩,結果提到用的jar包是apache的http客戶端開源專案---HttpClient

就下載了一個版本4.3

HttpClient httpclient = new HttpClient();

結果遇到這句就給跪了

提示Cannot instantiate the type HttpClient,

google 了下,在stackoverflow上面說是應該

HttpClient httpclient = new DefaultHttpClient();

這樣寫,不過得先import org.apache.http.impl.client.Defaul

tHttpClient;

據說從4.×版本後,它的用法就變了不能這麼使用了

最後把爬到的html程式碼儲存成html格式就行了

這個程式碼比較正常:

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;

public class Spider {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 相當於開啟瀏覽器
		HttpClient httpClient = new HttpClient();
		// 相當於在瀏覽器中輸入網址
		GetMethod getMethod = new GetMethod("http://www.baidu.com");
		try {
			// 返回HTTP狀態碼,在後面用到。
			int statusCode = httpClient.executeMethod(getMethod);
			// 此處輸出的是html語言
			System.out.println("response=" + getMethod.getResponseBodyAsString());
		} catch (HttpException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 關閉網路連線,防止造成資源浪費
			getMethod.releaseConnection();
		}
	}

}

不太正常的程式碼:

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class Spider {
	public static void main(String[] args) throws Exception {
		CloseableHttpClient httpclient = HttpClients.createDefault();
		try {
			String url = "http://www.baidu.com";
			HttpGet httpGet = new HttpGet(url);
			System.out.println("executing request " + httpGet.getURI());

			ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
				public String handleResponse(final HttpResponse response) throws ClientProtocolException, IOException {
					int status = response.getStatusLine().getStatusCode();
					if (status >= 200 && status < 300) {
						HttpEntity entity = response.getEntity();
						return entity != null ? EntityUtils.toString(entity) : null;
					} else {
						throw new ClientProtocolException("Unexpected response status: " + status);
					}
				}
			};
			String responseBody = httpclient.execute(httpGet, responseHandler);
			System.out.println("-------------------------------------------");
			System.out.println(responseBody);
			System.out.println("-------------------------------------------");
		} finally {
			httpclient.close();
		}
	}
}


相關推薦

Java爬蟲入門例項

想copy個爬蟲玩玩,結果提到用的jar包是apache的http客戶端開源專案---HttpClient 就下載了一個版本4.3 HttpClient httpclient = new Ht

Java 爬蟲入門(網易雲音樂和知乎例項)

最近公司趕專案,過上了996的生活,週日還要陪老婆,實在沒時間靜下來寫點東西,於是導致了swift編寫2048的第三篇遲遲沒有開工,在此說聲抱歉,儘量抽時間在這週末補出來。 首先來介紹下爬蟲的作用,爬蟲主要用於大批量抓取網站中我們所需資料,其實就是模擬

java爬蟲入門jsoup 框架

所需jar包 <dependency> <!-- jsoup HTML parser library @ http://jsoup.org/ --> <groupId>org.jsoup</groupId> <arti

java爬蟲入門——從一個網頁抓取原始碼

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamRea

java爬蟲入門

學習爬蟲第一天: 目標1:在網路上爬取一個網頁,並儲存成html檔案 開發環境Eclipse+JDK1.8 爬蟲用到的jar包:Java本身提供了關於網路訪問的包,在java.net中,然後它不夠強大。於是Apache基金會發布了開源的http請求的包,即Ht

JAVA NIO入門例項

基本概念:參考http://zhangshixi.iteye.com/blog/679959作者的系列文章即可 NIO因為其高效性,成為了服務端的首選,大大提高了服務端的響應效率。 我自己讀完作者的文章,寫了一個簡單的DEMO 服務端: package com.liuc.i

Java爬蟲入門簡介(四)——抓包工具的使用以及使用HttpClient模擬使用者登入的訪問

網路爬蟲需要解決的一個重要的問題就是要針對某些需要使用者名稱和密碼訪問的頁面可以模擬使用者自動登入。在這一篇部落格中我們將介紹如何使用Chrome瀏覽器自帶的抓包工具分析頁面並模擬使用者自動登入。我們會以CSDN的使用者登入為例,講述如何使用抓包工具獲取登入

Java 註解入門例項 && 註解傳參

概念:java提供了一種原程式中的元素關聯任何資訊和任何元資料的途徑和方法 JDK內建系統註解: @Override 用於修飾此方法覆蓋了父類的方法; @Deprecated 用於修飾已經過時的方法; @Suppvisewarnings 用於通知java編譯器禁止特定的編譯警

Java爬蟲入門簡介(三)——HttpClient儲存使用Cookie登入

其他爬蟲部落格: Cookie是瀏覽器儲存儲存使用者資訊的一小段文字,它儲存了使用者的ID等資訊,這些資訊可以被伺服器端識別,並作為標識使用者的手段,以此來判定使用者是不是第一次訪問。網路上有這樣一段解釋,很清楚。 瀏覽器與WEB伺服器之間是使用H

詳細教程 :crawler4j 爬取京東商品資訊 Java爬蟲入門 crawler4j教程

現今比較流行的爬蟲語言,屬Java、paython和c語言,筆者學習的是Java語言,所以介紹下使用Java如何爬取網頁資訊。我們先從一個最原始的Java爬蟲demo開始,再來看如何使用crawler4j這個框架進行爬蟲。Demo使用Java的Url物件,指向網址並建立連線,

Java爬蟲入門實戰:爬取京東圖書資訊

網路爬蟲框架寫網路爬蟲,一個要有一個邏輯順序。本文主要講解我自己經常使用的一個順序,並且本人經常

Java爬蟲入門簡介(三) —— Jsoup解析HTML頁面

上一篇部落格我們已經介紹瞭如何使用HttpClient模擬客戶端請求頁面了。這一篇部落格我們將描述如何解析獲取到的頁面內容。上一節我們獲取了 http://www.datalearner.com/blog_list 頁面的HTML原始碼,但是這些原始碼是提供給瀏覽器解析用的,

java爬蟲入門實戰

爬蟲 百度百科:網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在FOAF社群中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻、自動索引、模擬程式或者蠕蟲。 爬蟲的實質,就是獲取靜

HtmlUnit java爬蟲入門 真實案例講解 爬取電商網站資料

最近利用空閒時間幫朋友做了個爬取幾個電商網站的資料的小程式 使用的是htmlUnit 自我感覺htmlUnit爬取的速度和穩定性還是很不錯的 所以寫一篇博文介紹下htmlUnit的使用相關 也算記錄一下 這是該網站的主頁面 具體的思路是 獲取商品所在的div 通過div獲

爬蟲入門 手寫一個Java爬蟲

fun sts 重試 功能 bool 內核 ftw private 查找 本文內容 淶源於 羅剛 老師的 書籍 << 自己動手寫網絡爬蟲一書 >> ; 本文將介紹 1: 網絡爬蟲的是做什麽的? 2: 手動寫一個簡單的網絡爬蟲; 1: 網絡爬蟲是做

爬蟲入門 手寫一個Java爬蟲

原文:https://www.cnblogs.com/sanmubird/p/7857474.html 本文內容 淶源於  羅剛 老師的 書籍 << 自己動手寫網路爬蟲一書 >> ; 本文將介紹 1: 網路爬蟲的是做什麼的?&n

java爬蟲入門基礎 java讀取txt檔案,對字串進行操作後匯出txt檔案

相比於C#,java爬蟲,python爬蟲更為方便簡要,首先呢,python的urllib2包提供了較為完整的訪問網頁文件的API,再者呢對於摘下來的文章,python的beautifulsoap提供了簡潔的文件處理功能,這就成就了他爬蟲的優勢。 作為一名滿腦子要成為一名大牛的程式設計師小白來講,倒不是非要

java爬蟲爬取資源,小白必須會的入門程式碼塊

java作為目前最火的語言之一,他的實用性也在被無數的java語言愛好者逐漸的開發,目前比較流行的爬取資源,用java來做也更簡單一些,下面是爬取網頁上所有手機型號,引數等極為簡便的資料   package day1805; import java.io.IOException; im

scrapy爬蟲框架簡單入門例項(二)

接著上一篇文章,我們已經可以用爬蟲訪問目標網站爬取頁面了,現在需要自動提交表單查詢資料,並且從頁面中篩選出每期中獎號碼儲存為json檔案匯出。首先建立一個scrapy.Item類(開啟專案資料夾下的items.py檔案): import scrapy class SsqSpiderIte

scrapy爬蟲框架簡單入門例項(一)

scrapy是一個用於爬取網站資料,提取結構性資料的python應用框架。爬取的資料一般用於資料分析,資料處理,儲存歷史資料等。scrapy的整體架構大致如下: 主要包括了以下元件: 引擎(Scrapy) 用來處理整個系統的資料流, 觸發事務(框架核心) 排程器(