作業部屋の使い方を試しています。
(empty log message)
| @@ -332,8 +332,10 @@ | ||
| 332 | 332 | jTxtRtn.setText(null); |
| 333 | 333 | HtmlParser par = new HtmlParser(jTxtUrl.getText()); |
| 334 | 334 | for (Object slist1 : slist) { |
| 335 | - String rtn = par.search((SearchData)slist1); | |
| 336 | - jTxtRtn.append(rtn + "\r\n"); | |
| 335 | + SearchData sdata = (SearchData)slist1; | |
| 336 | + String ans = sdata.getitem(); | |
| 337 | + String rtn = par.search(sdata); | |
| 338 | + jTxtRtn.append(ans + "\t" + rtn + "\r\n"); | |
| 337 | 339 | } |
| 338 | 340 | jTxtRtn.setCaretPosition(0); |
| 339 | 341 | }//GEN-LAST:event_jMenu2MouseClicked |
| @@ -351,8 +353,10 @@ | ||
| 351 | 353 | jTxtRtn.setText(null); |
| 352 | 354 | HtmlParser par = new HtmlParser(jTxtUrl.getText()); |
| 353 | 355 | for (Object slist1 : slist) { |
| 354 | - String rtn = par.search((SearchData)slist1); | |
| 355 | - jTxtRtn.append(rtn + "\r\n"); | |
| 356 | + SearchData sdata = (SearchData)slist1; | |
| 357 | + String ans = sdata.getitem(); | |
| 358 | + String rtn = par.search(sdata); | |
| 359 | + jTxtRtn.append(ans + "\t" + rtn + "\r\n"); | |
| 356 | 360 | } |
| 357 | 361 | jTxtRtn.setCaretPosition(0); |
| 358 | 362 | }//GEN-LAST:event_jBtnSearchActionPerformed |
| @@ -25,6 +25,8 @@ | ||
| 25 | 25 | import java.io.*; |
| 26 | 26 | import java.net.*; |
| 27 | 27 | import java.util.ArrayList; |
| 28 | +import java.util.logging.Level; | |
| 29 | +import java.util.logging.Logger; | |
| 28 | 30 | import java.util.regex.Matcher; |
| 29 | 31 | import java.util.regex.Pattern; |
| 30 | 32 | import javax.swing.text.html.parser.ParserDelegator; |
| @@ -35,7 +37,7 @@ | ||
| 35 | 37 | */ |
| 36 | 38 | public class HtmlParser { |
| 37 | 39 | |
| 38 | - String UrlAdress; | |
| 40 | + URL url; | |
| 39 | 41 | String pageData; |
| 40 | 42 | |
| 41 | 43 | ArrayList sData; |
| @@ -46,17 +48,37 @@ | ||
| 46 | 48 | String htmlclass; |
| 47 | 49 | |
| 48 | 50 | public HtmlParser() { |
| 49 | - UrlAdress = null; | |
| 51 | + url = null; | |
| 50 | 52 | } |
| 51 | 53 | |
| 54 | + public HtmlParser(URL UrlAdress) { | |
| 55 | + this.url = UrlAdress; | |
| 56 | + getpageData(); | |
| 57 | + } | |
| 58 | + | |
| 52 | 59 | public HtmlParser(String UrlAdress) { |
| 53 | - this.UrlAdress = UrlAdress; | |
| 60 | + try { | |
| 61 | + url = new URL(UrlAdress); | |
| 62 | + getpageData(); | |
| 63 | + | |
| 64 | + } catch (MalformedURLException ex) { | |
| 65 | + Logger.getLogger(HtmlParser.class.getName()).log(Level.SEVERE, null, ex); | |
| 66 | + } | |
| 67 | + } | |
| 68 | + | |
| 69 | + public void seturl(URL UrlAdress) { | |
| 70 | + this.url = UrlAdress; | |
| 54 | 71 | getpageData(); |
| 55 | 72 | } |
| 56 | 73 | |
| 57 | 74 | public void seturl(String UrlAdress) { |
| 58 | - this.UrlAdress = UrlAdress; | |
| 59 | - getpageData(); | |
| 75 | + try { | |
| 76 | + url = new URL(UrlAdress); | |
| 77 | + getpageData(); | |
| 78 | + | |
| 79 | + } catch (MalformedURLException ex) { | |
| 80 | + Logger.getLogger(HtmlParser.class.getName()).log(Level.SEVERE, null, ex); | |
| 81 | + } | |
| 60 | 82 | } |
| 61 | 83 | |
| 62 | 84 | /** |
| @@ -72,9 +94,6 @@ | ||
| 72 | 94 | */ |
| 73 | 95 | public String search(SearchData skey) { |
| 74 | 96 | |
| 75 | - String item = skey.getitem(); | |
| 76 | - String regexp = skey.getregexp(); | |
| 77 | - | |
| 78 | 97 | // htmlページ内を検索 |
| 79 | 98 | if(isHtmlkeyEq(skey) == false) { |
| 80 | 99 | serchpageData(skey); |
| @@ -83,14 +102,13 @@ | ||
| 83 | 102 | around 出現位置指定 入力有り:指定された位置の情報のみ返す。 |
| 84 | 103 | 入力無し:取得した全ての情報を返す。 |
| 85 | 104 | */ |
| 86 | - String wkaround = skey.getaround(); | |
| 87 | - if(wkaround.length() > 0) { | |
| 88 | - byte wbAround = 0; | |
| 89 | - wbAround = Byte.parseByte(wkaround); // 検索位置を数値変換 | |
| 90 | - if(wbAround < sData.size()) { | |
| 91 | - String str = (String)sData.get(wbAround); | |
| 105 | + String regexp = skey.getregexp(); | |
| 106 | + if(skey.getaround().length() > 0) { | |
| 107 | + int wkAround = Integer.parseInt(skey.getaround()); // 検索位置を数値変換 | |
| 108 | + if(wkAround < sData.size()) { | |
| 109 | + String str = (String)sData.get(wkAround); | |
| 92 | 110 | String rtn = RegularExpression(str, regexp); |
| 93 | - return item + "\t" + rtn; | |
| 111 | + return rtn; | |
| 94 | 112 | } |
| 95 | 113 | } else { |
| 96 | 114 | StringBuilder strbuf = new StringBuilder(); |
| @@ -102,7 +120,7 @@ | ||
| 102 | 120 | } |
| 103 | 121 | strbuf.append(rtn); |
| 104 | 122 | } |
| 105 | - return item + "\t" + strbuf; | |
| 123 | + return strbuf.toString(); | |
| 106 | 124 | } |
| 107 | 125 | return null; |
| 108 | 126 | } |
| @@ -187,7 +205,7 @@ | ||
| 187 | 205 | */ |
| 188 | 206 | private void getpageData() { |
| 189 | 207 | try { |
| 190 | - URL url = new URL(UrlAdress); | |
| 208 | + //URL url = new URL(UrlAdress); | |
| 191 | 209 | HttpURLConnection con = (HttpURLConnection)url.openConnection(); |
| 192 | 210 | con.setRequestMethod("GET"); |
| 193 | 211 | BufferedReader reader = new BufferedReader( |