導航:首頁 > 編程語言 > 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

友情鏈接