jsoup (网页获取与解析)

1.获取

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

2.常用类

org.jsoup.nodes.Document

一个Html文档。类的定义为:public class Document extends Element{}

Connection org.jsoup.Jsoup.connect(String url)
指定URL,为下一步拿到HTML网页做准备。

Document org.jsoup.Connection.get() throws IOException
发送get请求,得到Document。

两个示例

Document doc = Jsoup.connect("http://example.com").userAgent("Mozilla").data("name", "jsoup").get();
Document doc = Jsoup.connect("http://example.com").cookie("auth", "token").post(); 

String org.jsoup.nodes.Element.text()
获取此元素 与 它所有子元素的文本内容的组合。如给定的html为<p>Hello <b>there</b> now!</p>, p.text()
,那么返回的是"Hello there now!"

Document org.jsoup.Jsoup.parse(String html)
将Html内容解析为一个文档。

Document org.jsoup.Jsoup.parse(File in, String charsetName, String baseUri) 

从本地html文件中解析网页,得到document。

Elements org.jsoup.nodes.Element.select(String cssQuery)
寻找与指定css选择器匹配的元素。

Element org.jsoup.select.Elements.get(int index)

从elements中拿element,下标从0起。

Element org.jsoup.nodes.Element.child(int index)

返回该节点的第i个孩子,下标从0起。

3.Jsoup与浏览器

需要注意的是,我们平时上网用的浏览器,除了根据用户输入的url完成通信,还要解析执行javascript代码。
浏览器在发送http请求时,会在头部里面加入很多信息,比如Cookie、userAgent等。所以网站可以根据这些信息来确定这个请求是正常的用户请求还是爬虫机器请求,对于后者,为了减轻网站压力服务器通常不予回应,所以该系统在使用jsoup工具时会附上猎豹浏览器的真实userAgent,降低失败率。
浏览器在拿到网页以后,会执行java script代码,有一些代码会再次让浏览器发送请求,拿到一些内容来展现在网页上。因为jsoup不能执行java script代码,所以会出现它拿到的内容少于真实内容的情形。

时间: 2025-01-30 10:03:39

jsoup (网页获取与解析)的相关文章

技术-用jsoup抓取网页获取网页源码的时候,得到的源码和在网站上面点击右键查看源码不相同,怎么解决

问题描述 用jsoup抓取网页获取网页源码的时候,得到的源码和在网站上面点击右键查看源码不相同,怎么解决 用jsoup抓取网页获取网页源码的时候,得到的源码和在网站上面点击右键查看源码不相同,怎么解决 Document doc = Jsoup.parse(new URL(url), 5000); 解决方案 一部分html是ajax异步加载的,你得用fiddler调试,得到这些请求,照着写 解决方案二: C++ 抓取网页的源码获取网页的源码获取网页源码工具类

使用Python从有道词典网页获取单词翻译_python

从有道词典网页获取某单词的中文解释. import re import urllib word=raw_input('input a word\n') url='http://dict.youdao.com/search?q=%s'%word content=urllib.urlopen(url) pattern=re.compile("</h2.*?</ul>",re.DOTALL) result=pattern.search(content.read()).gro

遍历元素-MFC 遍历网页获取指定CLASS内容里面的值

问题描述 MFC 遍历网页获取指定CLASS内容里面的值 单纯看网页源码看不出来所要元素 如下:我是通过火狐看到的 <a title="2345pack3_k46246958_120065803_v3.1" class="nomal_to_content" target="_blank" onclick="netdisk_pvManually('/func/waterfall_picname')" href="

接口-安卓开发从网页获取出现问题

问题描述 安卓开发从网页获取出现问题 最近在做个天气预报,在获取网上天气预报接口出了问题,蛋疼,http://m.weather.com.cn/atad/101280101.html原先这些接口本是JSON的格式,但是读取出来有时候是JSON格式,有时候是HTML格式,我换了两种获取方式,都会这样,有时候点那个接口在网页中打开,却不是JSON,而是气象局的主页.不知道是怎么回事![图片说明](http://img.ask.csdn.net/upload/201505/03/1430620985_

[UWP]涨姿势UWP源码——RSS feed的获取和解析

原文:[UWP]涨姿势UWP源码--RSS feed的获取和解析 本篇开始具体分析涨姿势UWP这个APP的代码,首先从数据的源头着手,即RSS feed的获取和解析,相关的类为RssReader,所有和数据相关的操作均放在里面. 涨姿势网站提供的RSS feed地址为http://www.zhangzishi.cc/feed,在UWP中想要通过发送http request并从URI接受http response,最简单的方式就是使用HttpClient: public async Task<st

代码-java jsoup怎么获取最后一个html里的a标签

问题描述 java jsoup怎么获取最后一个html里的a标签 代码如下 Document doc = Jsoup.parse(input, "UTF-8", ""); Elements hrefss = doc.select("td"); for (Element elem : hrefss) { if (elem.hasClass("good")) { System.out.println(elem.text()); }

微信 用户信息-微信网页获取用户信息

问题描述 微信网页获取用户信息 刚接触微信开发,想请教下大家,如何在微信的网页里去获取进来的用户基本信息 比如用户A,在我数据里已记录过,他就能看到网页里所有内容 用户B,没有在我数据库里有记录,那他只能看到一部分信息 我就先获取用户的信息与我数据库做匹配. 在微信本身的界面,不进入到微信网页模式我知道相关参数,但是如何传过去微信网页就不太清楚 解决方案 微信不是有提供接口使用的吗? 解决方案二: 微信不是有提供接口使用的吗?

微信公众平台开发(106) 网页获取用户地理位置

关键字:微信公众平台 JSSDK 获取地理位置接口 网页获取用户地理位置 getLocation作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-web-location.html     在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息. 本文分为以下二个部分: 生成JS-SDK权限验证签名 使用地理位置接口获取坐标   一.微信JS-SDK 1. 获得Access Token access token的获得方法在

bmob-求大神帮助,使用Bmob服务器,获取数据解析数据???我还使用异步加载

问题描述 求大神帮助,使用Bmob服务器,获取数据解析数据???我还使用异步加载 //我建立了Bean,里面有一个ImageView,两个TextView, //ImageView id=imgView; //TextView id=tittle; //TextView id=content; //BaseAdapter在最下面列出来: //ListView布局是activity_main; //item布局是item_layout; 我都是按照视频写的,基础差,请见谅 package com.