导航:首页 > 编程语言 > jsoup格式

jsoup格式

发布时间:2023-04-07 17:38:05

jsoup 抓取网页,字符是乱码,怎么转换跪求拜托了各位 谢谢

jsoup类似 取得网页的源码 根据head 读出编码格式
new String(source,'UTF8');
转换试试

java中做网络抓取demo用的Jsoup进行url解析如果链接中带中文就会出现乱码

哪是因为网页编码都是UTF_8的 你出现中文即是GBK的 所以需核知早改雀要转成UTF_8格式的字符串 就不会出猛轮现乱码了

③ java中.html文件和.java文件的用途及运行环境

您好,这样的:
解析HTML文档的Java程序
下面是一个解析HTML字符串,网络上下载的HTML文件,以及本地文件系统中的HTML文件的完整的Java程序。你可以使用Eclipse IDE或者别的IDE甚至命令来运行这个程序。在Eclipse里面则很简单,拷贝这份代码,新建一个Java工程,在src包上右键并粘贴进去就可以了。Eclipse会去创建正确的包及同名的Java源文件的,因此工作量最小。如果你已经有一个Java示例工程了,那么仅需一步就可以了。下面的这个Java程序展示了解析及遍历HTML文件的三个不同例子。第一个例子中,我们直接解析了一个内容为HTML的字符串,第二个例子中我们解析了一个从URL中下载的HTML文件,第三个中我们从本地文件系统中加载了一个HTML文档并进行解析。第一和第三个例子中都用到了parse方法来获取一个Document对象,你可以查询它来提取出任何的标签值或者属性值。第二个例子中,我们用到了Jsoup.connect方法,它会去创建URL的连接,下载HTML并进行解析。这个方法也会返回Document,它可以用于后续的查询及获取标签或者属性的值。
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

/**
[*] Java Program to parse/read HTML documents from File using Jsoup library.
[*] Jsoup is an open source library which allows Java developer to parse HTML
[*] files and extract elements, manipulate data, change style using DOM, CSS and
[*] JQuery like method.
[*]
[*] @author Javin Paul
[*]/
public class HTMLParser{

public static void main(String args[]) {

// Parse HTML String using JSoup library
String HTMLSTring = "<!DOCTYPE html>"
+ "<html>"
+ "<head>"
+ "<title>JSoup Example</title>"
+ "</head>"
+ "<body>"
+ "|[b]HelloWorld[/b]"
+ ""
+ "</body>"
+ "</html>";

Document html = Jsoup.parse(HTMLSTring);
String title = html.title();
String h1 = html.body().getElementsByTag("h1").text();

System.out.println("Input HTML String to JSoup :" + HTMLSTring);
System.out.println("After parsing, Title : " + title);
System.out.println("Afte parsing, Heading : " + h1);

// JSoup Example 2 - Reading HTML page from URL
Document doc;
try {
doc = Jsoup.connect("http://google.com/").get();
title = doc.title();
} catch (IOException e) {
e.printStackTrace();
}

System.out.println("Jsoup Can read HTML page from URL, title : " + title);

// JSoup Example 3 - Parsing an HTML file in Java
//Document htmlFile = Jsoup.parse("login.html", "ISO-8859-1"); // wrong
Document htmlFile = null;
try {
htmlFile = Jsoup.parse(new File("login.html"), "ISO-8859-1");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // right
title = htmlFile.title();
Element div = htmlFile.getElementById("login");
String cssClass = div.className(); // getting class form HTML element

System.out.println("Jsoup can also parse HTML file directly");
System.out.println("title : " + title);
System.out.println("class of div tag : " + cssClass);
}

}

输出:

Input HTML String to JSoup :<!DOCTYPE html><html><head><title>JSoup Example</title></head><body><table><tr><td><h1>HelloWorld</h1></tr></table></body></html>

After parsing, Title : JSoup Example
Afte parsing, Heading : HelloWorld
Jsoup Can read HTML page from URL, title : Google
Jsoup can also parse HTML file directly title : Login Page
class of div tag : simple

Jsoup的好处就是它的健壮性很强。Jsoup HTML解析器会对你提供的HTML进行尽量干净的解析,而不去考虑这个HTML是否是格式良好的。它可以处理如下这些错误:未闭合的标签(比如,Java <p>Scala to <p>JavaScala),隐式标签(比如,一个裸的|Java is Great被封装到了|里面),它总能创建出一个文档结构(包含head及body的HTML,并且head里只会包含正确的元素)。这就是在Java中如何进行HTML的解析。Jsoup是一个优秀的健壮的开源库,它使得读取HTML文档,body片段,HTML字符串,以及直接从WEB中解析HTML内容都变得相当简单。在这篇文章中,我们学习了如何在Java中获取一个特定的HTML标签,正如第一个例子中我们将title及H1标签的值提取成了文本,而第三个例子中我们学习到了如何通过提取CSS属性来从HTML标签中获取属性值。除了强大的jQuery风格的html.body().getElementsByTag("h1").text()方法,你还可以提取任意的HTML标签,它还提供了像Document.title()和Element.className()这样便捷的方法,你可以快速获取到标题及CSS类。希望JSoup能让你玩得愉快,很快我们将会看到关于这个API的更多的一些例子。

④ jtidy jsoup 哪个好用谢谢

先来看他们的定义:
JTidy 是 HTML
Tidy用Java实现的移植版本,提供了一个HTML的语法检查器和很好的打印功能。类似它的非Java产品,JTidy可以用来清除格式不好和不对的
HTM。此外,JTidy提供了对整个HTML的DOM分析器。程序员可以将JTidy当作一个处理HTML文件的DOM解析器来使用。

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

所以说
JTidy更常用的是用来清理HTML,也就是差谨纯说,修复畸形或错误的HTML,如未结束的标记:
从 <div><span>text</div> 到<div><span>text</span></div>

Jsoup的虚咐话主要是解析html.

哪个好用,看你要用来干什么。

⑤ jsoup 的使用

获取所有双色球数据,但是返回的都是html页面,需要进行处理,最开始想着用dom4j处理核脊,发现不可行。之后想着自己处猛没理,但是又太麻烦了,然后找到了jsoup,使用起来非常简单。

操枝氏纳作、解析HTML格式的数据

jsoup的使用和dom4j非常类似,最开始都是先获得一个Document对象,然后获取需要的子元素或节点进行操作,但是jsoup可以通过dom、css、和类似jquery的方法( 选择器 )来获取需要的数据。

选择器官方API

其他方法详见官方API
Node
Element
Elements

Whitelist官方API

⑥ jsoup解析html后,对字符的转义怎么处理

Html中特殊字符不被转义,可以使用预格式化标签。
pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。
例如HTML代码:

1
2
3
4
5
<pre>
if (xx > 5) {
print "比5大!\n";
}
</pre>

浏览器显示效果:
if (xx > 5) {
print "比5大!\n";
}
<textarea></textarea>之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的"&"通过程序替换成"&",但是有些本来就是"&"的也会被转换,这就错了。如何让<textarea></textarea>之间包含的文本原封不动的显示出来呢?
总结如下:
解决方法有两种:
第1种:

1
2
3
4
5
6
<body>
<textarea id='t' rows=20 cols=20></textarea>
<script>
document.getElementById('t').innerText='a<&>';
</script>
</body>

第2种:
/*将字串转为html格式*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("&", "&");
s = s.replaceAll("<", "<");
s = s.replaceAll(">", ">");
s = s.replaceAll(" ", " ");
// s = s.replaceAll("/n", "");
// s = s.replaceAll("'", "'");
return s;
}
/*将html格式转为字串*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("&","&");
s = s.replaceAll("<","<");
s = s.replaceAll(">",">");
s = s.replaceAll(" "," ");
//s = s.replaceAll("","/n");
//s = s.replaceAll("'","'");
return s;
}

最后一点:jQuery的.html()方法默认会转义的,这种情况使用.text()就不会转义了。

⑦ 使用java语言爬取自己的淘宝订单看看买了哪些东西

Java爬虫框架WebMagic简介及使用

一、介绍

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。




二、概览

WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能(例如注解模式编写爬虫等)。
WebMagic的结构分为Downloader、PageProcessor、Scheler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。

2.1 WebMagic的四个组件

⑧ jsoup教程

jsoup是一款Java的HTML解析器,主要用来对HTML解析。 官网 中文文档

在爬虫的时候,当我们用HttpClient之类的框架,获取到网页源码之后,需要从网页源码中取出我们想要的内容,

就可以使用jsoup这类HTML解析器了。可以非常轻松的实现。

虽然jsoup也支持从某个地址直接去爬取网页源码,但是只支持HTTP,HTTPS协议,支持不够丰富。

所以,主要还是用来对HTML进行解析。

◆其中,要被解析的HTML可以是一个HTML的字符串,可以是一个URL,可以禅困是一个文件。

org.jsoup.Jsoup把输入的HTML转换成一个org.jsoup.nodes.Document对象,然后从Document对象中取出想要的元素。

org.jsoup.nodes.Document继承了org.jsoup.nodes.Element,Element又继承了org.jsoup.nodes.Node类。里面提供了丰富的方法来获取HTML的元素。

◇从URL获取HTML来解析

其中Jsoup.connect("xxx")方法返回一个org.jsoup.Connection对象。
在Connection对象中,我们可以执行get或者post来执行请求。但是在执行请求之前,
我们可以使用Connection对象来设置一些请求信息。比如:头信息,cookie,请求等待时间,代理等等来模拟浏览器的行为。

◆获得Document对象后,接下来就是解析Document对象,并从中获取我们想要的元素了。

Document中提供了丰富的方法来获取指定元素。

◇使用DOM的方式来取得

getElementById(String id):通过id来获取
getElementsByTag(String tagName):通过标签名字来获取
getElementsByClass(String className):通过类名来获取
getElementsByAttribute(String key):通过属性名字来获取
getElementsByAttributeValue(String key, String value):通过指定的属性名字,属性值来获取
getAllElements():获取所有元素

◇通过类似于css或jQuery的选择器来查找元素

使用的是Element类的下记方法:

public Elements select(String cssQuery)

通过传入一个类似于CSS或jQuery的选择器字符串,来查找指定元素。

例子:

选择器的更多语法(可以在org.jsoup.select.Selector中查看到更多关于选择器的语法):

tagname: 通过标签查找元素,比如:a
ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法码桐来查找 <fb:name> 元素
#id: 通过ID查找元素,比如:#logo
.class: 通过class名称查迟袭坦找元素,比如:.masthead
[attribute]: 利用属性查找元素,比如:[href]
[^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素
[attr=value]: 利用属性值来查找元素,比如:[width=500]
[attr^=value], [attr$=value], [attr=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href=/path/]
[attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i).(png|jpe?g)]
*: 这个符号将匹配所有元素

Selector选择器组合使用
el#id: 元素+ID,比如: div#logo
el.class: 元素+class,比如: div.masthead
el[attr]: 元素+class,比如: a[href]
任意组合,比如:a[href].highlight
ancestor child: 查找某个元素下子元素,比如:可以用.body p 查找在"body"元素下的所有 p元素
parent > child: 查找某个父元素下的直接子元素,比如:可以用div.content > p 查找 p 元素,也可以用body > * 查找body标签下所有直接子元素
siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div
siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p
el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo

伪选择器selectors
:lt(n): 查找哪些元素的同级索引值(它的位置在DOM树中是相对于它的父节点)小于n,比如:td:lt(3) 表示小于三列的元素
:gt(n):查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示哪些div中有包含2个以上的p元素
:eq(n): 查找哪些元素的同级索引值与n相等,比如:form input:eq(1)表示包含一个input标签的Form元素
:has(seletor): 查找匹配选择器包含元素的元素,比如:div:has(p)表示哪些div包含了p元素
:not(selector): 查找与选择器不匹配的元素,比如: div:not(.logo) 表示不包含 class="logo" 元素的所有 div 列表
:contains(text): 查找包含给定文本的元素,搜索不区分大不写,比如: p:contains(jsoup)
:containsOwn(text): 查找直接包含给定文本的元素
:matches(regex): 查找哪些元素的文本匹配指定的正则表达式,比如:div:matches((?i)login)
:matchesOwn(regex): 查找自身包含文本匹配指定正则表达式的元素
注意:上述伪选择器索引是从0开始的,也就是说第一个元素索引值为0,第二个元素index为1等

◆通过上面的选择器,我们可以取得一个Elements对象,它继承了ArrayList对象,里面放的全是Element对象。

接下来我们要做的就是从Element对象中,取出我们真正需要的内容。

通常有下面几种方法:

◇Element.text()

这个方法用来取得一个元素中的文本。

◇Element.html()或Node.outerHtml()

这个方法用来取得一个元素中的html内容

◇Node.attr(String key)

获得一个属性的值,例如取得超链接<a href="">中href的值

json字符串-数组类型与JSONArray之间的转换

复杂json格式字符串与JSONObject之间的转换

⑨ Jsoup 请求链接含中文乱码

这不是乱码吧 这是经过urlencode过后的编码。你网上自己找个url编码 输个中文字符然后编码下。

⑩ java爬虫抓取网页内容出现乱码

jsoup类似 取得网缓好页扰神铅的源码 根据head 读出编码格式瞎中
new String(source,'UTF8');
转换试试

阅读全文

与jsoup格式相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接