Jsoup 抓取和数据页 认识HTTP头
推薦一本書:黑客攻防技術寶典.Web實戰篇? ;
? ? ??順便留下一個疑問:能否通過jsoup大量并發訪問web或者小型域名server,使其癱瘓?其有用jsoup熟悉的朋友能夠用它解析url來干一件非常無恥的事(源代碼保密)。呵呵。接下來簡單的介紹下JSOUP。
? ? ? jsoup 是一款基于Java 的HTML解析器。可直接解析某個URL地址、HTML文本字符串、HTML文件。它提供了一套很省力的API。可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。
? ? ?官網下載地址:http://jsoup.org/download,下載core library。導入項目
? ???1:解析HTML文本字符串
[java]?view plaincopyString類型
?這部分是重點
,有部分網址不一定都能直接獲取連接。for example ?:CSDN這樣的域名站點。這樣的一定要設置消息頭代理。? ? 否則報錯:像HTTP error fetching URL. Status=403。等http狀態異常
。詳細HTTP狀態返回碼可參照最后部分,或者推薦的那本書
[java]?view plaincopy
? ? 3:解析一個本地html文件。這個大同小異,改變下DOCUMENT的獲取方式。
整理了一些關于HTTP 消息頭資料:
GET /simple.htm HTTP/1.1<CR> ?---請求方式。請求對象。請求http協議
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*<CR> ? ? ?--指瀏覽器能接收的Content-type
Accept-Language: zh-cn<CR> ? ---接收語言
Accept-Encoding: gzip, deflate<CR> ? --接收編碼
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)<CR> ? ?本機的相關系信息。包含瀏覽器類型、操作系統信息等,非常多站點能夠顯示出你所使用的瀏覽器和操作系統版本號,就是由于能夠從這里獲取到這些信息。
Host: localhost:8080<CR> 主機和port,在互聯網上一般指域名
Connection: Keep-Alive<CR> 是否須要持久連接
<CR>
server發回的完整HTTP消息例如以下:
HTTP/1.1 200 OK<CR> ? ?---HTTP/1.1 表示表示所用的協議。200OK 指server返回的狀態碼。正常返回
Server: Microsoft-IIS/5.1<CR> ??
X-Powered-By: ASP.NET<CR>
Date: Fri, 03 Mar 2006 06:34:03 GMT<CR> ??
Content-Type: text/html<CR>
Accept-Ranges: bytes<CR>
Last-Modified: Fri, 03 Mar 2006 06:33:18 GMT<CR>
ETag: "5ca4f75b8c3ec61:9ee"<CR>
Content-Length: 37<CR>
<CR>
<html><body>hello world</body></html>
注意:<CR>是我加上去代表換行的。能夠刪掉,沒有意義
HTTP請求頭概述?
HTTP客戶程序(比如瀏覽器。向server發送請求的時候必須指明請求類型(通常是GET或者POST。如必要。客戶程序還能夠擇發送其它的請求頭。
大多數請求頭并非必需的,但Content- Length除外。對于POST請求來說Content-Length必須出現。
?
以下是一些最常見的請求頭?
? ? Accept:瀏覽器可接受的MIME類型。 表示我們所用的瀏覽器能接受的Content-type
Accept-Charset:瀏覽器可接受的字符集。?
Accept-Encoding:瀏覽器可以進行解碼的數據編碼方式。比方gzip。Servlet可以向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。
很多情形下這可以降低5到10倍的下載時間。?
Accept-Language:瀏覽器所希望的語言種類,當server可以提供一種以上的語言版本號時要用到。
?
Authorization:授權信息,通常出如今對server發送的WWW-Authenticate頭的應答中。?
Connection:表示是否須要持久連接。假設Servlet看到這里的值為"Keep-Alive",或者看到請求使用的是HTTP 1.1 (HTTP 1.1默認進行持久連接。它就能夠利用持久連接的長處,當頁面包括多個元素時(比如Applet,圖片,顯著地降低下載所須要的時間。要實現這一點,Servlet須要在應答中發送一個Content-Length頭。最簡單的實現方法是:先把內容寫入 ByteArrayOutputStream。然后在正式寫出內容之前計算它的大小。
?
Content-Length:表示請求消息正文的長度。
?
Cookie:這是最重要的請求頭信息之中的一個
From:請求發送者的email地址,由一些特殊的Web客戶程序使用,瀏覽器不會用到它。?
Host:初始URL中的主機和port。
?
If-Modified-Since:僅僅當所請求的內容在指定的日期之后又經過改動才返回它。否則返回304"Not Modified"應答。?
Pragma:指定"no-cache"值表示server必須返回一個刷新后的文檔,即使它是代理server并且已經有了頁面的本地拷貝。?
Referer:包括一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面。?
? User-Agent:瀏覽器類型,假設Servlet返回的內容與瀏覽器類型關則該值很常使用。?
UA-Pixels,UA-Color。UA-OS,UA-CPU:由某些版本號的IE瀏覽器所發送的非標準的請求頭,表顯示屏尺寸、顏色深度、操作系統和CPU種類。
?
版權聲明:本文博客原創文章,博客,未經同意,不得轉載。
總結
以上是生活随笔為你收集整理的Jsoup 抓取和数据页 认识HTTP头的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国移动技术愿景2020+
- 下一篇: onmousemove和onmouseo