欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JavaFXWebView的采集開發(fā)方法是什么

本篇內(nèi)容主要講解“JavaFX WebView的采集開發(fā)方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“JavaFX WebView的采集開發(fā)方法是什么”吧!

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的南山網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

背景

最近想做一個桌面版的客戶端,能夠加載連接,獲取源碼等,主要用于快速的獲取網(wǎng)站的欄目,便與爬蟲該欄目下的最新信息。

采用技術(shù)

java 1.8

相關(guān)插件介紹

JavaFX是:

?用于創(chuàng)建和交付桌面應(yīng)用程序的軟件平臺,以及可以在各種設(shè)備上運行的富Internet應(yīng)用程序(RIA)。
?一組圖形和媒體包,使開發(fā)人員能夠設(shè)計,創(chuàng)建,測試,調(diào)試和部署在不同平臺上一致運行的富客戶端應(yīng)用程序。

WebView:

使用WebKit HTML技術(shù)的Web組件,可以在JavaFX應(yīng)用程序中嵌入Web頁面。在WebView中運行的JavaScript可以調(diào)用Java API,Java API可以調(diào)用在WebView中運行的JavaScript。
JavaFX中添加了對其他HTML5功能的支持,包括Web套接字,Web Worker和Web字體以及打印功能。

JavaFX WebView:

?JavaFX WebView  是一種迷你瀏覽器(也稱為嵌入式瀏覽器),它通過JavaFX  應(yīng)用程序中的API提供Web查看器和完整瀏覽功能  。
?此瀏覽器基于  WebKit,這是一個支持HTML5,JavaScript,CSS,DOM渲染和SVG圖形的開源Web瀏覽器引擎。
?WebView類是Node類的擴展。
?嵌入式瀏覽器從Node類繼承所有字段和方法,因此它具有其所有功能。
?它封裝了WebEngine對象,將HTML內(nèi)容合并到應(yīng)用程序的場景中,并提供應(yīng)用效果和轉(zhuǎn)換的屬性和方法。
?在WebView對象上調(diào)用的getEngine()方法返回與之關(guān)聯(lián)的Web引擎。
?構(gòu)成嵌入式瀏覽器的類位于javafx.scene.web包中。

?WebView 使開發(fā)人員能夠在其Java應(yīng)用程序中實現(xiàn)以下功能:

?從本地或遠(yuǎn)程URL呈現(xiàn)HTML內(nèi)容
?支持歷史記錄并提供后退和前進(jìn)導(dǎo)航
?重新加載內(nèi)容
?將效果應(yīng)用于Web組件
?編輯HTML內(nèi)容
?執(zhí)行JavaScript命令
?執(zhí)行從JavaScript到JavaFX的上行調(diào)用
?處理事件

? 除了支持CSS3和ecmascript6(ES6)之外,WebView組件還支持以下HTML5功能:

?DOM3
?畫布
?媒體播放
?表單控件(<input type =“color”>除外)
?可編輯的內(nèi)容
?歷史維護(hù)
?支持<meter>,<progress>,<details>和<summary>標(biāo)簽
?SVG
?Web套接字
?Web Worker
?支持使用本國語言編寫的域名

Web引擎:

1.是一個能夠一次管理一個網(wǎng)頁的非可視對象
2.通過其API提供基本網(wǎng)頁功能。
3.它支持用戶交互,例如導(dǎo)航鏈接和提交HTML表單,但它不直接與用戶交互。
4.它加載網(wǎng)頁,創(chuàng)建文檔模型,根據(jù)需要應(yīng)用樣式,并在頁面上運行JavaScript。
5.它提供對當(dāng)前頁面的文檔模型的訪問,并允許Java應(yīng)用程序和頁面的JavaScript代碼之間的雙向通信。
6.它包裝了一個WebPage對象,該對象提供與本機Webkit核心的交互。

主要代碼介紹:

主界面構(gòu)造:
        package org.lc.v1;
        import org.lc.v1.component.WebBrowerPane;
        import org.lc.v1.handle.AlertEventHandler;
        import org.lc.v1.handle.PopupCallback;
        import org.lc.v1.html.HtmlChangeListener;
        import org.lc.v1.html.WebHistoryVisitListener;
        import javafx.application.Application;
        import javafx.scene.Scene;
        import javafx.scene.control.Tab;
        import javafx.scene.web.WebEngine;
        import javafx.scene.web.WebHistory;
        import javafx.scene.web.WebView;
        import javafx.stage.Stage;
        public class LCWebBrower extends Application {public void start(Stage stage) throws Exception { final WebBrowerPane tp = new WebBrowerPane(stage);
stage.setScene(new Scene(tp, 950, 600));
final WebView webView = new WebView();
webView.prefWidthProperty().bind(stage.getScene().widthProperty());
webView.prefHeightProperty().bind(stage.getScene().heightProperty());
final WebEngine webEngine = webView.getEngine();
final WebHistory history = webEngine.getHistory();
history.getEntries().addListener(new WebHistoryVisitListener());

webEngine.getLoadWorker().stateProperty().addListener(new HtmlChangeListener(webEngine));
webEngine.setOnAlert(new AlertEventHandler(tp));
webEngine.setCreatePopupHandler(new PopupCallback(tp));
webEngine.setJavaScriptEnabled(true);
webEngine.executeScript("location.reload(true);");
webEngine.load("加載的地址");
final Tab tab = new Tab();
tab.textProperty().bind(webEngine.titleProperty());
tab.setClosable(false);
tab.setContent(webView);
tp.addTabPage(tab);
stage.show();
}public static void main(String[] args) {
launch(args);
}
}

監(jiān)聽也沒加載狀態(tài),獲取源碼、所有連接等。

package org.lc.v1.html;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker.State;
import javafx.scene.web.WebEngine;
public class HtmlChangeListener implements ChangeListener<State> {
    private WebEngine webEngine;
    String html;

    public HtmlChangeListener(WebEngine webEngine) {
        this.webEngine = webEngine;
    }
    public void changed(ObservableValue<? extends State> observable, State oldValue, State newState) {
       
if (newState == State.SUCCEEDED) { 
html = (String) webEngine.executeScript("document.documentElement.outerHTML");
System.out.print("succeeded");  
NodeList elementBody = webEngine.getDocument().getElementsByTagName("a");
for (int i = 0; i < elementBody.getLength(); i++) {
Node aTag = elementBody.item(i);
String title = ""; 
if (aTag != null) {
title = aTag.getTextContent();
}
NamedNodeMap attributes = aTag.getAttributes();
String href = ""; 
if (attributes != null) {
Node hrefObject = attributes.getNamedItem("href");
if (hrefObject != null)
href = hrefObject.getTextContent();
}
System.out.println(title + " " + href);
}
}
}
}

到此,相信大家對“JavaFX WebView的采集開發(fā)方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享題目:JavaFXWebView的采集開發(fā)方法是什么
轉(zhuǎn)載源于:http://aaarwkj.com/article32/gpposc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、定制網(wǎng)站、虛擬主機企業(yè)建站、網(wǎng)站營銷、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
91中文字幕国产日韩| 国产精品三级电影网| 日韩精品少妇一区二区在线看 | 亚洲一区二区三区国色天香| 麻豆一精品传二传媒短视频| 手机在线观看av网站| 成人日韩av免费在线观看| 国产天美剧情av一区二区| 69人妻一区二区三区蜜桃| 国产亚洲精品第一最新| 九九有点热以前的视频| 国产真实乱偷精品视频免| 密臀av一区二区三区| 十八禁无遮挡污污污网站| 亚洲欧美日韩精品二区| 日本在线高清精品人妻| 亚州国产成人综合精品| 性生活视性生活大片日本| 日本黄色中文字幕网站| 久久99国产精品成人免费| 中文字幕在线精品乱码| 人人妻人人澡人人爽老妇| 欧美一区二区三区情色| 国产无套内射三级视频| 久久久这里只有精品99| 蜜桃久久国产精品一区二区| 看夫妻性生活免费视频| 岛国免费av在线观看| 日韩精品视频一二三区| 欧美国产免费高清视频| 日韩一区二区三区av观看| 日韩精品视频在线不卡| 99热精品综合在线观看| 人妻的秘密一区二区三区 | 91精品国产91久久综合福利| 刚出嫁新婚少妇很紧很爽| 加勒比中文字幕日本道| 97国产一区二区精品久久呦| 秋霞日韩欧美一区二区三区| 免费福利激情在线播放| 久久成人av一区二区三区|