JS を使用してページ分割された Web ページのコンテンツをクロールする方法を教えてください
Web サイトのコンテンツをクロールしたいのですが、この Web サイトのページング メカニズムは JS を使用しています。詳細は次のとおりです:
[size=10px]
HTML コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><a href="javascript:gogage(pageno+1)" class="navigation">下一页</a>
ログイン後にコピー
JScript コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
var pageno=1;
function gogage(pno){
tbl.firstPage();
pageno=1;
for(var i=1; (i < pno||pno==-1)&&i<xmldso.recordset.PageCount; i++,pageno++)
tbl.nextPage();
document.all.currentpage.innerText=pageno;
}
ログイン後にコピー
HTML コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
<table width="98%" border="0" cellspacing="1" cellpadding="1" id="tbl" datasrc="#xmldso" datapagesize="11">
ログイン後にコピー
アドバイスをお願いします。
-----解決策---------助けて!
------解決策---------データは「#」にある HTML ページを削除します。 xmldso」も削除すると、内容はこれですべてです。ページングとは関係ありません。
------解決策------------------助けて!
------解決策---------htmlparser を使用して Web コンテンツをキャプチャする (1)
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.tags 。 TableTag;
import org.htmlparser.util.NodeList;
/**
*
* タイトル:
* 機能概要:
* 著作権: cityyouth.cn (c) 2005
*会社名: Shanghai Urban Youth Network
* 作成時刻: 2005-12-21
* 修正時刻:
* 修正理由:
*
* @作者 Zhang Wei
* @バージョン 1.0
*/
public class TestYahoo {
public static void testHtml() {
try {
文字列 sCurrentLine;
文字列 sTotalString;
sCurrentLine = "";
sTotalString = "";
java.io.InputStream l_urlStream;
java.net.URL l_url = 新しい java .net.URL(
"http://sports.sina.com.cn/iframe/nba/live/");
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url
.openConnection();
l_connection.connect();
l_urlStream = l_connection.getInputStream();
java.io.BufferedReader l_reader = new java.io.BufferedReader(
new java.io .InputStreamReader(l_urlStream));
while ((sCurrentLine = l_reader.readLine()) != null) {
sTotalString += sCurrentLine;
}
System.out.println(sTotalString) ;
System.out.println("========================);
String testText = extractText(sTotalString);
System.out.println(testText);
} catch (例外 e) {
e.printStackTrace();
}
}
/**
* プレーンテキスト情報を抽出
*
* @param inputHtml
* @return
*/
public static String extractText(String inputHtml) throws Exception {
StringBuffer text = new StringBuffer();
パーサー parser = Parser.createParser(new String(inputHtml.getBytes() ,
"8859_1"), "8859-1");
// すべてのノードを走査します
NodeList ノード = parser.extractAllNodesThatMatch(new NodeFilter() {
public boolean accept(Node node) {
true を返します。