⑴ 如何讓瀏覽器允許使用java腳本
1.為了確保您的計算機上安裝了Java,讓我們打開程序,看看是否所有程序中都安裝了版Java。
⑵ 如何使用Java抓取網頁上指定部分的內容
1. 你可以選擇用Java代碼來找到整個網頁的html代碼,如下
(注意在處理網頁方面的內容時,需要導入htmlparser包來支持)
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;
import org.htmlparser.Parser;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.util.NodeList;
public class htmlmover {
public static void main(String[] args){
NodeList rt= getNodeList("http://forex.hexun.com/rmbhl/");
System.out.println(rt.toHtml());
}
public static NodeList getNodeList(String url){
Parser parser = null;
HtmlPage visitor = null;
try {
parser = new Parser(url);
parser.setEncoding("GBK");
visitor = new HtmlPage(parser);
parser.visitAllNodesWith(visitor);
} catch (ParserException e) {
e.printStackTrace();
}
NodeList nodeList = visitor.getBody();
return nodeList;
}
}
以上代碼,public static NodeList getNodeList(String url) 為主體
傳入需要分析網頁的 url(String類型),返回值是網頁Html節點List(Nodelist類型)
這個方法我沒有什麼要說的,剛開始的時候沒看懂(沒接觸過),後來用了幾次也懂點皮毛了
注意: parser.setEncoding("GBK"); 可能你的工程編碼格式是UTF-8,有錯誤的話需要改動
運行該程序
2.通過瀏覽器工具直接查看 IE是按F12 (剛開始沒發現這個方法,於是傻乎乎地找上面的代碼)
分析你所獲得的html代碼讓人眼花繚亂,不要緊,找到自己需要趴取的內容,找到它上下文有特徵的節點
<!--中行牌價 開始-->
<div id="sw01_con1">
<table width="655" border="0" cellspacing="0" cellpadding="0" class="hgtab">
<thead>
<tr>
<th width="85" align="center" class="th_l">交易幣種</th>
<th width="80" align="center">交易單位</th>
<th width="130" align="center">現價(人民幣)</th>
<th width="80" align="center">賣出價</th>
<th width="100" align="center">現匯買入價</th>
<th width="95" align="center">現鈔買入價</th>
</tr>
</thead>
<tbody>
<tr align="center">
<td> 英鎊</td>
<td>100</td>
<td>992.7</td>
<td>1001.24</td>
<td>993.26</td>
<td class="no">962.6</td>
</tr>
<tr align="center" bgcolor="#f2f3f4">
<td> 港幣</td>
<td>100</td>
<td>81.54</td>
<td>82.13</td>
<td>81.81</td>
<td class="no">81.16</td>
</tr>
<tr align="center">
<td> 美元</td>
<td>100</td>
<td>635.49</td>
<td>639.35</td>
<td>636.8</td>
<td class="no">631.69</td>
</tr>
<tr align="center" bgcolor="#f2f3f4">
<td> 瑞士法郎</td>
<td>100</td>
<td>710.89</td>
<td>707.78</td>
<td>702.14</td>
<td class="no">680.46</td>
</tr>
<tr align="center">
<td> 新加坡元</td>
<td>100</td>
<td>492.45</td>
<td>490.17</td>
<td>486.27</td>
<td class="no">471.25</td>
</tr>
<tr align="center" bgcolor="#f2f3f4">
<td> 瑞典克朗</td>
<td>100</td>
<td>93.66</td>
<td>93.79</td>
<td>93.04</td>
<td class="no">90.17</td>
</tr>
<tr align="center">
<td> 丹麥克朗</td>
<td>100</td>
<td>116.43</td>
<td>115.59</td>
<td>114.67</td>
<td class="no">111.13</td>
</tr>
<tr align="center" bgcolor="#f2f3f4">
<td> 挪威克朗</td>
<td>100</td>
<td>110.01</td>
<td>109.6</td>
<td>108.73</td>
<td class="no">105.37</td>
</tr>
<!--{2011-10-01 23:16:00}-->
</tbody>
</table>
</div>
<!--中行牌價 結束-->
大家可以看到這是一段很有規律,書寫非常規范的Html代碼(這只是第一部分,中行牌價,可以想像,接下來還會有並列的 相似的3部分)
大家想截取這些節點中的數據
以下代碼仍需導入htmlparser Java支持包
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class Currencyrate {
public static void main(String[] args){
String url="http://forex.hexun.com/rmbhl/";
ArrayList<String> rt= getNodeList(url);
for (int i = 0; i < rt.size(); i++){
System.out.println(rt.get(i));
}
}
public static ArrayList<String> getNodeList(String url){
final ArrayList<String> result=new ArrayList<String>();
Parser parser = null;
NodeList nodeList=null;
try {
parser = new Parser(url);
parser.setEncoding("GBK");
nodeList = parser.parse(
new NodeFilter(){
@Override
public boolean accept(Node node){
Node need=node;
if(getStringsByRegex(node.getText())){
for(int i=0;i<6;i++){
result.add(need.toPlainTextString()); need=need.getPreviousSibling().getPreviousSibling();
}
return true;
}
return false;
}
}
);
}catch (ParserException e) {
e.printStackTrace();
}
return result;
}
public static boolean getStringsByRegex(String txt) {
String regex="td class=\"no\"";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(txt);
if (m.find()){
return true;
}
return false;
}
}
廢話不多說,
public static ArrayList<String> getNodeList(String url) 主要方法
parser.setEncoding("GBK"); 需要注意,代碼編碼格式
nodeList = parser.parse(
new NodeFilter(){
@Override
public boolean accept(Node node){
}
}
);
nodelist是html節點的列表,現在使用NodeFilter ( 節點過濾器 )實例, 重載NodeFilter類中的accept()方法
在parser這個Parser類訪問整個html頁面的時候,每遇到一個html節點,就會訪問這個
accept()方法,返回True的話就會將這個節點 放進nodelist中,否則就不會將這個節點放進去。這個就是NodeFilter功能。
代碼段一獲取整個html頁面時候 parser.visitAllNodesWith(visitor); 就是獲取所有節點
所以現在我們要趴取網頁上的內容,只要告訴accept()這個方法,哪些節點要放進nodelist去,即 遇到哪些節點需要返回true。
於是
public boolean accept(Node node){
Node need=node;
if(getStringsByRegex(node.getText())){
for(int i=0;i<6;i++){
result.add(need.toPlainTextString()); need=need.getPreviousSibling().getPreviousSibling();
}
return true;
}
return false;
}
Parser類在遇到節點,就把這個節點拿過去問accept(),於是accept()方法分析,如果滿足getStringsByRegex(node.getText())就要了
接下來分析getStringsByRegex(),只剩下最後一步了,大家堅持啊!
String regex="td class=\"no\"";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(txt);
if (m.find()){
return true;
}
return false;
}
大家可以發現我們索要的每一段都是
<tr align="center">
<td> 英鎊</td>
<td>100</td>
<td>992.7</td>
<td>1001.24</td>
<td>993.26</td>
<td class="no">962.6</td>
</tr>
所以只要找到<td class="no">這個節點就行了,我們用正則表達式去比較
String regex="td class=\"no\""; 這個是比較標准(正則表達式 td class=」no」 其中兩個引號需要作為轉義字元來表示 成\「 )
變數txt是我們傳過去的需要比較的節點的node.getText(),如果符合的話m.find就是true,於是getStringsByRegex()返回true,說明這個節點就是我們所需要的哪些節點,於是
for(int i=0;i<6;i++){
result.add(need.toPlainTextString()); need=need.getPreviousSibling().getPreviousSibling();
}
每一段html,6個為一組,先是962.6,然後是993.26,1001.24,992.7,100,英鎊分別被add進result這個ArrayList<String>中去,返回,這個ArrayList裝的就是我們需要抓取的數據
大家可以把我們所獲得的String數據數出來試試看,是不是我們需要的順序,main()函數獲得ArrayList<String>,就可以顯示到我們所需要的Java widget上去了
⑶ 如何查看chrome當前頁面使用的java版本
額,不太明白樓主的意思,如果是問當前計算機默認使用的java版本的話,進入命令行,輸入
java -version 就能查到了。
你說「當前頁面的java版本」,我就不太明白了。。。
⑷ java中資料庫中實現分頁的sql語句要求每頁十條要查詢的是第二頁
1、首先preparedstatement是statement的子介面,屬於預處理操作,與直接使用statement不同的是,preparedstatement在操作的時候,先在數據表中准備版好了一條sql語句,但是sql語句的值暫時不設置,而是之後設置。
⑸ java實現 一共有 55 條數據,每頁顯示 10 條數據,當前頁為 2,請求出上一頁和下一頁
不牽扯資料庫的情況下,看一下代碼
importjava.util.Arrays;
publicclassGetPage{
//定義一個長度為55的數組,作為假數據
privateString[]data=newString[55];
//初始化數組數據
publicGetPage(){
//填充假數據
for(inti=0;i<55;i++){
data[i]=String.valueOf(i);
}
}
//根據頁數取數據
publicString[]getData(intpage,intnum){
returnArrays.OfRange(data,(page-1)*num,page*num);
}
//根據上下頁標志符,0為上一頁,其他為下一頁
publicString[]getDataByI(intpage,inti,intnum){
intp=(i==0)?page--:page++;
returngetData(p,num);
}
//輸出
publicvoidprint(String[]str){
for(Strings:str){
System.out.println(s);
}
}
publicstaticvoidmain(String[]args){
//定義每頁顯示條數
intnum=10;
//定義當前頁數
intpage=2;
//
GetPagegp=newGetPage();
String[]str1=gp.getData(page,num);
System.out.println("第二頁數據:");
gp.print(str1);
String[]str2=gp.getDataByI(page,0,num);
System.out.println("第二頁的上一頁數據:");
gp.print(str2);
}
}
⑹ 如何在 Web 瀏覽器中啟用 Java
請按照以下說明通過您的 Web 瀏覽器啟用 Java:
適用於 Windows 的瀏覽器
Internet Explorer
單擊工具,然後單擊 Internet 選項
選擇安全選項卡,選擇自定義級別按鈕
向下滾動到 Java 小應用程序腳本
確保選中啟用單選按鈕
單擊確定保存您的首選設置
Chrome
單擊扳手圖標,然後選擇選項。
依次選擇高級選項和隱私內容設置。
將顯示「內容設置」面板。
在插件部分,選擇禁用單獨插件鏈接以檢查是否已啟用 Java
單擊啟用鏈接(如果顯示「禁用」鏈接,則已啟用 Java)
注意:此外,您也可通過在瀏覽器地址欄中 鍵入「about:plugins」 來訪問「插件」設置。
適用於 Windows 和 Mac OS X 的瀏覽器
Firefox
啟動 Mozilla Firefox 瀏覽器,如果該瀏覽器正在運行,則重新啟動它。
在瀏覽器頂部,選擇 Firefox 按鈕(或 Windows XP 中的工具菜單),然後選擇附加組件
此時將打開「附加組件管理器」選項卡。
在「附加組件管理器」選項卡中,選擇插件
單擊 Java (TM) 平台插件以將其選定
單擊啟用按鈕(如果按鈕顯示為禁用,則 Java 已啟用)
Safari
啟動 Safari 瀏覽器
單擊「Safari」並選擇首選項
單擊安全選項卡
選中(選擇)啟用 Java 復選框
關閉「Safari 首選項」窗口
Opera 4.x 及更高版本
適用於 Windows 的 Opera 不使用 Java,但是 Opera Web 瀏覽器中已嵌入了 Java。
適用於其他平台的 Opera 可支持 Java。請參見 Opera 平台文檔。
有關詳細信息,請參見以下 Opera 支持文檔:
Opera 中的 Java 軟體支持
搶首贊
評論
分享
舉報
河南新華電腦學院
2021-10-26 · 專注互聯網IT教育,電腦培訓院校
關注
啟動Mozilla Firefox 瀏覽器,如果該瀏覽器正在運行,則重新啟動它。
在瀏覽器頂部,選擇Firefox按鈕(或 Windows XP 中的工具菜單)...
在「附加組件管理器」選項卡中,選擇插件
單擊Java (TM) 平台插件以將其選定
⑺ 打開某個網頁需要用到JAVA,但已經安裝好了,還是顯示
右鍵我的電腦 屬性 高級系統配置 高級 環境變數 如下設置
然後win+r
輸入cmd 確認
輸入java,看看有沒有正確輸出,有就配置好了