package com.mysearch.parser;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.RegexFilter;
import org.htmlparser.filters.StringFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;public class ParserFor2 { public static void main(String args[]) {
String NEWLINE = "\r\n"; String SEPARATOR = "================================"; String title; String author;
// �г��۸�
String price;
//
String dprice1;
//
String dprice2;
//
// ISBN
String isbn;
// �����
String publish; String publishdate; String content; String imgurl; String url; String type; String pagecount; String url1; try { BufferedReader br = new BufferedReader(new FileReader("D:\\tt.txt")); String line; BufferedWriter bw = null; while (null != (line = br.readLine())) {
try { StringBuffer t1 = new StringBuffer(); Parser parser = new Parser(line); parser.setEncoding("gb2312"); NodeFilter filter_title = new AndFilter(new TagNameFilter(
"a"), new HasAttributeFilter("name", "top_bk")); NodeList nodelist = parser.parse(filter_title); Node node_title = nodelist.elementAt(0); title = node_title.getNextSibling().getNextSibling()
.getText(); parser.reset(); NodeFilter filter_author = new AndFilter(new TagNameFilter(
"div"), new HasAttributeFilter("id", "author_")); nodelist = parser.parse(filter_author); Node node_author = nodelist.elementAt(0); author = node_author.getChildren().asString().substring(6); parser.reset(); NodeFilter filter_publish = new AndFilter(
new TagNameFilter("div"), new HasAttributeFilter(
"id", "publisher_")); nodelist = parser.parse(filter_publish); Node node_publish = nodelist.elementAt(0); publish = node_publish.getChildren().asString()
.substring(7); parser.reset(); NodeFilter filter_isbn = new RegexFilter(
"I S B N    �� \\d\\d\\d\\d\\d\\d\\d\\d\\d\\d"); nodelist = parser.parse(filter_isbn); Node node_isbn = nodelist.elementAt(0); isbn = node_isbn.getText().substring(13); parser.reset(); NodeFilter filter_publishdate = new StringFilter("���ʱ�䣺"); nodelist = parser.parse(filter_publishdate); Node node_publishdate = nodelist.elementAt(1); publishdate = node_publishdate.getText().substring(6); parser.reset(); NodeFilter filter_type = new StringFilter(">> "); nodelist = parser.parse(filter_type); Node node_type = nodelist.elementAt(0); type = node_type.getNextSibling().getChildren().asString(); parser.reset(); NodeFilter filter_imgurl = new AndFilter(new TagNameFilter(
"img"),
new HasAttributeFilter("id", "img_show_prd")); nodelist = parser.parse(filter_imgurl); Node node_imgurl = nodelist.elementAt(0); imgurl = node_imgurl.getText(); imgurl = imgurl.substring(imgurl.indexOf("images") - 1,
imgurl.indexOf(".jpg") + 4); parser.reset(); NodeFilter filter_price = new StringFilter("���ۣ�"); nodelist = parser.parse(filter_price); Node node_price = nodelist.elementAt(0); price = node_price.getText().substring(4); parser.reset(); NodeFilter filter_dprice1 = new StringFilter("�����ۣ�"); nodelist = parser.parse(filter_dprice1); Node node_dprice1 = nodelist.elementAt(0); dprice1 = node_dprice1.getNextSibling().getNextSibling()
.getText().substring(1); parser.reset(); NodeFilter filter_dprice2 = new StringFilter("��ʯvip�ۣ�"); nodelist = parser.parse(filter_dprice2); Node node_dprice2 = nodelist.elementAt(0); try {
dprice2 = node_dprice2.getText();
dprice2 = dprice2.substring(
dprice2.indexOf("��ʯvip�ۣ�") + 8).trim();
} catch (NullPointerException e) {
dprice2 = "null";
} parser.reset(); NodeFilter filter_pagecount = new StringFilter("ҳ������"); nodelist = parser.parse(filter_pagecount); Node node_pagecount = nodelist.elementAt(0); pagecount = node_pagecount.getText().substring(6).trim(); parser.reset(); NodeFilter filter_content = new StringFilter("���ݼ��"); nodelist = parser.parse(filter_content); Node node_content = nodelist.elementAt(0); try {
content = node_content.getParent().getNextSibling()
.getNextSibling().getChildren().asString();
} catch (NullPointerException e) {
content = "null";
}
t1.append("dangdang").append("-").append(isbn);
bw = new BufferedWriter(new FileWriter(
new File("E:\\book\\"+t1 + ".txt"))); bw.write(line);
bw.write(NEWLINE);
bw.write(imgurl);
bw.write(NEWLINE);
bw.write(title);
bw.write(NEWLINE);
bw.write(author);
bw.write(NEWLINE);
bw.write(price);
bw.write(NEWLINE);
bw.write(dprice1);
bw.write(NEWLINE);
bw.write(dprice2);
bw.write(NEWLINE);
bw.write(isbn);
bw.write(NEWLINE);
bw.write(type);
bw.write(NEWLINE);
bw.write(pagecount);
bw.write(NEWLINE);
bw.write(publish);
bw.write(NEWLINE);
bw.write(publishdate);
bw.write(NEWLINE);
bw.write(SEPARATOR);
bw.write(NEWLINE);
bw.write(content); } catch (ParserException e) {
e.printStackTrace();
}
try {
if (bw != null) {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
} }
}
可是有错误,帮忙改正