亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tsinghuaparser.java

?? 本系統實現了從五個網站上搜索的圖書進行整合后
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.booksearch.service.htmlparser;

/************************************************************
 FileName: Tsinghuaparser.java
 Author: wang jiaqiang
 Date:11/09/08
 Description: 根據檢索關鍵字到www.tub.tsinghua.edu.cn抽取匹配內容
 Class List: Tsinghuaparser
 ***********************************************************/

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Iterator;

import org.cyberneko.html.parsers.DOMParser;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

import com.booksearch.orm.Book;
import com.booksearch.orm.Price;


/**
 * Class:Tsinghuaparser Description: 根據檢索關鍵字到www.tub.tsinghua.edu.cn抽取匹配內容
 * extens:no implements:HtmlParser<Element>
 * 
 * @author wang jiaqiang
 * @since 11/10/08
 */
public class Tsinghuaparser implements HtmlParser<Element> {

	/* 存放本網站某一頁的記錄 */
	private ArrayList<Book> list;

	/**
	 * Function: nekohtmlParser 
	 * Description: 用nekohtml解析器解析指定網頁,并轉化為dom對象 
	 * Calls:no 
	 * Called By: no
	 * @param no
	 * @return Document
	 * @throws IOException,SAXException
	 */
	public Document nekohtmlParser(String url) throws Exception{
		/* 生成html 解析器 */
		DOMParser parser = new DOMParser();
		/* 設置網頁的默認編碼 */
		parser.setProperty(
				"http://cyberneko.org/html/properties/default-encoding",
				"gb2312");

		URL u = new URL(url);
		/* 建立與源網站的連接 */
		URLConnection urlconn = u.openConnection();
		urlconn.setReadTimeout(30000);
		//urlconn.setConnectTimeout(30000);
		//urlconn.connect();
		/* 獲得源網站的字節流,并轉化為字符流,設置編碼為utf-8 */
		BufferedReader in = new BufferedReader(new InputStreamReader(urlconn
				.getInputStream(), "gb2312"));
		/* 進行解析,轉化為xml */
		parser.parse(new InputSource(in));
		/* 轉化為dom對象 */
		Document doc = parser.getDocument();

		return doc;
	}

	/**
	 * Function: mainService 
	 * Description: 用nekohtml解析器解析指定網頁,并轉化為dom對象 
	 * Calls:getBookImage(),getBookName(),getBookName(),getBookAuthor(),getBookImage(),getBookISBN(),
	 *       getBookPublisher(),getBookPublishTime(),getBookPrice() 
	 * Called By: no
	 * @param doc as Document
	 * @return ArrayList<Book>
	 * @throws no
	 */
	public ArrayList<Book> mainService(Document doc,boolean flag) {

		/* 取得所有<table>結點 */
		NodeList servers = doc.getElementsByTagName("table");
		list = new ArrayList<Book>();
		for (int i = 0; i < servers.getLength(); i++) {

			Element serveritem = (Element) servers.item(i);

			/* 過濾出<table border="1" ... width=90%> 結點,也就是存放記錄的結點 */
			if (("90%".equals(serveritem.getAttribute("width")))
					&& ("1".equals(serveritem.getAttribute("border")))) {

				NodeList childList = serveritem.getChildNodes();

				/* 循環遍歷<table border="1" ... width=90%>的子結點 */
				for (int j = 2; j < childList.getLength(); j++) {

					Node childNode = childList.item(j);

					/* 如果是元素結點(<tr>,<td>),取出其中的文本值 */
					if (childNode.getNodeType() == Node.ELEMENT_NODE) {

						Element childElement = (Element) childNode;
						Book book = new Book();
						Price price = new Price();
						book.setBookPublisher("清華大學出版社");
						price.setTsinghuaDiscount((float) 1.00);
						NodeList trNode = childElement.getChildNodes();

						for (int k = 0; k < trNode.getLength(); k++) {
							Node tdNode = trNode.item(k);

							if (tdNode.getNodeType() == Node.ELEMENT_NODE) {

								Element tdElement = (Element) tdNode;

								/* 取出圖書ISBN */
								if (k == 2) {
									String bookAuthor = this.getBookAuthor(tdElement);
									book.setBookAuthor(bookAuthor);
									/* 取出圖書名稱 */
								} else if ("450pt".equals(tdElement.getAttribute("width"))) {

									String bookName = this.getBookName(tdElement);
									book.setBookName(bookName);
									String bookUrl = this.getBookUrl(tdElement);
									// book.setBookUrl(bookUrl);
									price.setTsinghuaUrl(bookUrl);
									/* 取出作者名 */
								} else if (("60pt".equals(tdElement.getAttribute("width")))
										&& ("left".equals(tdElement.getAttribute("align")))) {

									String bookISBN = this.getBookISBN(tdElement);
									book.setBookISBN(bookISBN);

									/* 取出出版時間 */
								} else if (("60pt".equals(tdElement.getAttribute("width")))
										&& ("middle".equals(tdElement.getAttribute("align")))) {

									String bookPublishTime = this.getBookPublishTime(tdElement);
									if(!"".equals(bookPublishTime)&&null != bookPublishTime)
									    book.setBookPublishTime(bookPublishTime);

									/* 取出圖書價格 */
								} else if ("40pt".equals(tdElement.getAttribute("width"))) {
									String bookPrice = this.getBookPrice(tdElement);
									// book.setBookPrice(bookPrice);
									// book.setBookFixPrice(bookPrice);
									// book.setBookDiscount("1");
									if(null != bookPrice&&!"".equals(bookPrice))
									    price.setTsinghuaPrice(Double.valueOf(bookPrice.trim()));
									    book.setBookFixPrice(Double.valueOf(bookPrice.trim()));

								}
							}
						}
						/* 放到存放結果鏈中 */
						if (book.getBookName() != null) {
							//book.setBookImage("http://www.tup.com.cn/images/nocover.jpg");
							book.setPrice(price);
							list.add(book);
						}
					}
				}
			}

		}
		return list;
	}
	public Price getDetailInfo(Document doc) {
		
	    Price price = new Price();
		/* 取得所有<table>結點 */
		NodeList servers = doc.getElementsByTagName("table");
		list = new ArrayList<Book>();
		for (int i = 0; i < servers.getLength(); i++) {

			Element serveritem = (Element) servers.item(i);
			/* 過濾出<table border="1" ... width=90%> 結點,也就是存放記錄的結點 */
			if (("90%".equals(serveritem.getAttribute("width")))
					&& ("1".equals(serveritem.getAttribute("border")))) {

				NodeList childList = serveritem.getChildNodes();
				/* 循環遍歷<table border="1" ... width=90%>的子結點 */
				for (int j = 2; j < childList.getLength(); j++) {

					Node childNode = childList.item(j);
					/* 如果是元素結點(<tr>,<td>),取出其中的文本值 */
					if (childNode.getNodeType() == Node.ELEMENT_NODE) {

						Element childElement = (Element) childNode;
						price.setTsinghuaDiscount((float) 1.00);
						NodeList trNode = childElement.getChildNodes();

						for (int k = 0; k < trNode.getLength(); k++) {
							
							Node tdNode = trNode.item(k);
							if (tdNode.getNodeType() == Node.ELEMENT_NODE) {

								Element tdElement = (Element) tdNode;
								if ("40pt".equals(tdElement.getAttribute("width"))) {
									String bookPrice = this.getBookPrice(tdElement);
                                    if(null != bookPrice&&!"".equals(bookPrice))
									    price.setTsinghuaPrice(Float.valueOf(bookPrice.trim()));
									
								}else if ("450pt".equals(tdElement.getAttribute("width"))) {

									String bookUrl = this.getBookUrl(tdElement);
									price.setTsinghuaUrl(bookUrl);
									/* 取出作者名 */
								}
							}
						}
						break;
					}
				}
				break;
			}
		}

		return price;
	}
	/**
	 * Function: getBookName 
	 * Description: 獲得圖書名稱 
	 * Calls: no 
	 * Called By:mainService
	 * @param bookElement as Element
	 * @return String
	 * @throws no
	 */
	public String getBookName(Element bookElement) {

		String bookName = "";
		/* 取出<a>結點 */
		if(bookElement.hasChildNodes()
				&& Node.ELEMENT_NODE == bookElement.getFirstChild().getNodeType()){
			Element firstElement = (Element) bookElement.getFirstChild();
			if(firstElement.hasChildNodes())
			    bookName = firstElement.getFirstChild().getNodeValue();
		}
		return bookName;
	}

	/**
	 * Function: getBookAuthor 
	 * Description: 獲得圖書作者 
	 * Calls: no 
	 * CalledBy:mainService
	 * @param bookElement as Element
	 * @return String
	 * @throws no
	 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性一区二区| 一区二区三区.www| 久久精品欧美日韩| 精品日韩一区二区三区| 日韩免费高清视频| 精品电影一区二区| 久久久综合视频| 久久精品免费在线观看| 国产拍揄自揄精品视频麻豆| 久久亚洲影视婷婷| 国产色综合一区| 国产精品人妖ts系列视频| 国产精品国产自产拍高清av| 成人欧美一区二区三区白人| 一区二区三区国产精华| 午夜精品视频一区| 久久成人久久鬼色| 国产精品一二三四五| av电影天堂一区二区在线| 大桥未久av一区二区三区中文| 一区二区三区四区在线播放 | 国产麻豆精品视频| 国产成人精品免费在线| 91麻豆国产在线观看| 欧美性大战久久久久久久蜜臀 | 欧美麻豆精品久久久久久| 欧美一区二区网站| 久久久久久久久久久电影| 国产精品护士白丝一区av| 一级特黄大欧美久久久| 日本欧美韩国一区三区| 国产麻豆成人精品| 99久久国产综合色|国产精品| 日本丶国产丶欧美色综合| 日韩一区二区在线观看| 久久久久国产精品麻豆ai换脸| 国产精品久久一卡二卡| 偷偷要91色婷婷| 国产福利精品导航| 欧美中文字幕一二三区视频| 911国产精品| 国产精品丝袜91| 午夜欧美2019年伦理| 国产九色精品成人porny| 91成人免费在线| 精品黑人一区二区三区久久| 亚洲男人天堂av网| 麻豆国产精品777777在线| 成人精品视频网站| 91精品国产一区二区| 国产精品美女久久久久av爽李琼| 午夜久久久影院| 国产不卡在线播放| 欧美丝袜丝交足nylons| 国产欧美日韩精品一区| 婷婷成人激情在线网| 成人免费毛片aaaaa**| 91麻豆精品91久久久久同性| 自拍偷拍国产亚洲| 国产在线精品一区在线观看麻豆| 在线精品视频免费观看| 欧美国产日韩亚洲一区| 久久精品国产亚洲aⅴ| 欧美在线观看一二区| 国产欧美一区二区精品性| 日本v片在线高清不卡在线观看| 99久久er热在这里只有精品66| 欧美xingq一区二区| 亚洲成人一二三| 91小视频免费观看| 国产午夜一区二区三区| 蜜臀a∨国产成人精品| 色哟哟国产精品免费观看| 国产日产欧美一区二区视频| 蜜臀av一区二区在线观看| 欧美日韩一区视频| 亚洲欧美偷拍卡通变态| 国产.精品.日韩.另类.中文.在线.播放| 欧美日韩1234| 亚洲小说春色综合另类电影| 99久久国产综合精品女不卡| 日本一区二区在线不卡| 国内外成人在线视频| 日韩亚洲欧美在线| 午夜av一区二区| 欧美综合色免费| 亚洲激情校园春色| 色综合欧美在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产激情视频一区二区在线观看| 精品久久免费看| 精品中文字幕一区二区小辣椒| 精品视频免费看| 亚洲国产精品人人做人人爽| 色8久久精品久久久久久蜜| 1024国产精品| 波多野结衣在线aⅴ中文字幕不卡| 国产欧美精品一区二区三区四区| 国产一区二区三区在线观看免费视频 | 国产精品免费视频一区| 成人免费视频caoporn| 国产精品青草综合久久久久99| 国产激情一区二区三区四区| 久久精品人人做人人爽人人| 国产精品1024久久| 国产精品系列在线| 91麻豆精品国产自产在线观看一区| 亚洲国产婷婷综合在线精品| 欧美综合色免费| 亚洲成在人线免费| 欧美一区二区三级| 蜜臂av日日欢夜夜爽一区| 欧美一卡二卡在线| 精品一二线国产| 国产女同互慰高潮91漫画| 成年人国产精品| 亚洲免费看黄网站| 欧美午夜在线观看| 男女性色大片免费观看一区二区| 日韩一区二区三区精品视频| 国内成人免费视频| 国产精品午夜免费| 色婷婷久久久综合中文字幕| 亚洲成人手机在线| 欧美xxxx老人做受| 成人高清免费在线播放| 亚洲色图19p| 欧美二区三区91| 国产一区二区精品久久| 亚洲欧美自拍偷拍| 欧美日韩国产经典色站一区二区三区| 午夜av电影一区| 国产午夜精品一区二区三区视频| 99视频精品在线| 三级影片在线观看欧美日韩一区二区| 日韩一区二区三区三四区视频在线观看 | 欧美精品视频www在线观看| 另类欧美日韩国产在线| 国产精品理论片在线观看| 欧美四级电影在线观看| 极品少妇xxxx偷拍精品少妇| 中文字幕中文乱码欧美一区二区| 欧美性xxxxxxxx| 国产伦精品一区二区三区视频青涩 | 99久免费精品视频在线观看| 亚洲一区免费视频| 久久久久国产一区二区三区四区| 97se亚洲国产综合自在线不卡| 日韩激情av在线| 中文字幕不卡在线| 欧美一区午夜视频在线观看| 国产suv精品一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 精品日韩一区二区三区| 色婷婷综合五月| 国内成+人亚洲+欧美+综合在线| 日韩伦理免费电影| 欧美电影免费提供在线观看| 91首页免费视频| 韩国成人福利片在线播放| 亚洲一区二区三区在线看| 国产午夜精品一区二区三区视频 | 亚洲视频在线观看一区| 欧美大片顶级少妇| 在线观看日产精品| 成人精品免费网站| 免费成人av资源网| 亚洲一区二区四区蜜桃| 国产欧美日韩另类一区| 日韩欧美精品在线视频| 欧美影视一区二区三区| 成人av在线资源网站| 久久国产综合精品| 亚洲国产毛片aaaaa无费看| 亚洲国产精品成人综合| 日韩精品一区国产麻豆| 欧美日本国产一区| 色综合天天综合网天天狠天天| 久久9热精品视频| 午夜精品视频一区| 国产剧情一区在线| 日韩电影一二三区| 亚洲制服丝袜在线| 亚洲欧美另类图片小说| 亚洲国产岛国毛片在线| 精品久久久久久无| 欧美一级午夜免费电影| 欧美日韩国产色站一区二区三区| 99视频一区二区| 成人午夜激情在线| 国产久卡久卡久卡久卡视频精品| 免费观看30秒视频久久| 五月天网站亚洲| 亚洲小说欧美激情另类| 亚洲最大色网站| 亚洲黄一区二区三区| 中文字幕一区二区视频| 中文字幕第一页久久| 中文字幕高清一区| 国产精品视频麻豆|