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
- /**
- * 解析一个html文档。String类型
- */
- ublic static void parseStringHtml(String html) {
- Document doc = Jsoup.parse(html);//把String转化成document格式
- Elements e=doc.body().getAllElements();//获取所以body下的节点集
- Elements e1=doc.select("head");//获取head 节点集
- Element e2=doc.getElementById("p");//获取html上id=“p”的节点
- System.out.println(e1);
[java] view plain copy
- /**
- * 通过请求地址获取html
- */
- public static void parseRequestUrl(String url) throws IOException{
- Connection con = Jsoup.connect(url);//获取请求连接
- // //浏览器可接受的MIME类型。
- // con.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
- // con.header("Accept-Encoding", "gzip, deflate");
- // con.header("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
- // con.header("Connection", "keep-alive");
- // con.header("Host", url);
- // con.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0");
- Document doc=con.get();
- Elements hrefs=doc.select("a[href=/kff517]"); //节点后面属性 不需要
- Elements test=doc.select("html body div#container div#body div#main div.main div#article_details.details div.article_manage span.link_view");
- System.out.println(hrefs);
- System.out.println(test.text());//==.html获取节点中的文本,类似于js中的方法
- }
3 :解析一个本地html文件。这个大同小异,改变下DOCUMENT的获取方式。
整理了一些关于HTTP 消息头资料:
GET /simple.htm HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
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
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类型。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

이 기사는 모바일 장치의 반응 형 웹 디자인에 필수적인 Viewport Meta Tag에 대해 설명합니다. 적절한 사용이 최적의 컨텐츠 스케일링 및 사용자 상호 작용을 보장하는 방법을 설명하는 반면, 오용은 설계 및 접근성 문제로 이어질 수 있습니다.

이 기사는 & lt; iframe & gt; 외부 컨텐츠를 웹 페이지, 공통 용도, 보안 위험 및 객체 태그 및 API와 같은 대안을 포함시키는 태그의 목적.

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...
