搜尋
首頁web前端html教學Jsoup 爬取页面的数据和 理解HTTP消息头_html/css_WEB-ITnose

推荐一本书:黑客攻防技术宝典.Web实战篇  ;

      顺便留下一个疑问:是否能通过jsoup大量并发访问web或者小型域名服务器,使其瘫痪?其实用jsoup熟悉的朋友可以用它解析url来干一件很无耻的事(源码保密)。呵呵,接下来简单的介绍下JSOUP。

      jsoup 是一款基于Java 的HTML解析器,可直接解析某个URL地址、HTML文本字符串、HTML文件。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

     官网下载地址:http://jsoup.org/download,下载core library。导入项目

     1:解析HTML文本字符串

[java]  view plain copy

  1.   /** 
  2. * 解析一个html文档。String类型 
  3. */  
  4. ublic static void parseStringHtml(String html) {  
  5. Document doc = Jsoup.parse(html);//把String转化成document格式       
  6. Elements e=doc.body().getAllElements();//获取所以body下的节点集  
  7. Elements e1=doc.select("head");//获取head 节点集  
  8. Element e2=doc.getElementById("p");//获取html上id=“p”的节点  
  9. System.out.println(e1);  
     2:解析url。这部分是重点 , 有部分网址不一定都能直接获取连接。for example  :CSDN这种域名网站。这种一定要设置消息头代理。    否则报错:像HTTP error fetching URL. Status=403。等http状态异常 。具体HTTP状态返回码可参照最后部分,或者推荐的那本书

[java]  view plain copy

  1.     /** 
  2.      * 通过请求地址获取html 
  3.      */  
  4.     public static void parseRequestUrl(String url) throws IOException{  
  5.         Connection con = Jsoup.connect(url);//获取请求连接  
  6. //      //浏览器可接受的MIME类型。  
  7. //      con.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");  
  8. //      con.header("Accept-Encoding", "gzip, deflate");  
  9. //      con.header("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");  
  10. //      con.header("Connection", "keep-alive");  
  11. //      con.header("Host", url);  
  12. //      con.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0");  
  13.         Document doc=con.get();  
  14.         Elements hrefs=doc.select("a[href=/kff517]");  //节点后面属性 不需要  
  15.         Elements test=doc.select("html body div#container div#body div#main div.main div#article_details.details div.article_manage span.link_view");  
  16.         System.out.println(hrefs);  
  17.         System.out.println(test.text());//==.html获取节点中的文本,类似于js中的方法  
  18.     }  

    3 :解析一个本地html文件。这个大同小异,改变下DOCUMENT的获取方式。


整理了一些关于HTTP 消息头资料:

GET /simple.htm HTTP/1.1  ---请求方式,请求对象,请求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, */*      --指浏览器能接收的Content-type
Accept-Language: zh-cn   ---接收语言
Accept-Encoding: gzip, deflate   --接收编码
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)    本机的相关系信息,包括浏览器类型、操作系统信息等,很多网站可以显示出你所使用的浏览器和操作系统版本,就是因为可以从这里获取到这些信息。
Host: localhost:8080 主机和端口,在互联网上一般指域名
Connection: Keep-Alive 是否需要持久连接


服务器发回的完整HTTP消息如下:
HTTP/1.1 200 OK    ---HTTP/1.1 表示表示所用的协议。200OK 指服务器返回的状态码,正常返回
Server: Microsoft-IIS/5.1   
X-Powered-By: ASP.NET
Date: Fri, 03 Mar 2006 06:34:03 GMT   
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Fri, 03 Mar 2006 06:33:18 GMT
ETag: "5ca4f75b8c3ec61:9ee"
Content-Length: 37

hello world

注意:是我加上去代表换行的,可以删掉,没有意义

HTTP请求头概述 
   HTTP客户程序(例如浏览器,向服务器发送请求的时候必须指明请求类型(一般是GET或者POST。如必要,客户程序还可以择发送其他的请求头。大多数请求头并不是必需的,但Content- Length除外。对于POST请求来说Content-Length必须出现。 
 下面是一些最常见的请求头 

     Accept:浏览器可接受的MIME类型。 表示我们所用的浏览器能接受的Content-type
   Accept-Charset:浏览器可接受的字符集。 
   Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。 
   Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。 
   Authorization:授权信息,通常出现在对服务器发送的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中的主机和端口。 
   If-Modified-Since:只当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304"Not Modified"应答。 
   Pragma:指定"no-cache"值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。 
   Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。 
     User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型关则该值非常用。 
   UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML的未來:網絡設計的發展和趨勢HTML的未來:網絡設計的發展和趨勢Apr 17, 2025 am 12:12 AM

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

HTML與CSS vs. JavaScript:比較概述HTML與CSS vs. JavaScript:比較概述Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在網頁開發中的角色分別是:HTML負責內容結構,CSS負責樣式,JavaScript負責動態行為。 1.HTML通過標籤定義網頁結構和內容,確保語義化。 2.CSS通過選擇器和屬性控製網頁樣式,使其美觀易讀。 3.JavaScript通過腳本控製網頁行為,實現動態和交互功能。

HTML:是編程語言還是其他?HTML:是編程語言還是其他?Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

HTML:建立網頁的結構HTML:建立網頁的結構Apr 14, 2025 am 12:14 AM

HTML是構建網頁結構的基石。 1.HTML定義內容結構和語義,使用、、等標籤。 2.提供語義化標記,如、、等,提升SEO效果。 3.通過標籤實現用戶交互,需注意表單驗證。 4.使用、等高級元素結合JavaScript實現動態效果。 5.常見錯誤包括標籤未閉合和屬性值未加引號,需使用驗證工具。 6.優化策略包括減少HTTP請求、壓縮HTML、使用語義化標籤等。

從文本到網站:HTML的力量從文本到網站:HTML的力量Apr 13, 2025 am 12:07 AM

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

了解HTML,CSS和JavaScript:初學者指南了解HTML,CSS和JavaScript:初學者指南Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的角色:構建Web內容HTML的角色:構建Web內容Apr 11, 2025 am 12:12 AM

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

HTML和代碼:仔細觀察術語HTML和代碼:仔細觀察術語Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境