<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    lexy

    支持開源,尊重他人的勞動!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      17 隨筆 :: 0 文章 :: 9 評論 :: 0 Trackbacks

    httpclient+nekohtml?解析HTML

    import org.cyberneko.html.parsers.DOMParser;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.w3c.dom.Document;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.GetMethod;

    import java.io.InputStream;
    import java.io.IOException;

    public class Html2XML {
    ??? private int connectionTimeout = 5000;
    ??? private int soTimeout = 12000;
    ??? private String proxyHost = null;
    ??? private int proxyPort;

    ??? public Document getDocument(String url) {
    ??????? HttpClient client = new HttpClient();
    ??????? if (proxyHost != null) {
    ??????????? client.getHostConfiguration().setProxy(proxyHost, proxyPort);
    ??????? }
    ??????? client.getHttpConnectionManager().getParams().setConnectionTimeout(connectionTimeout);
    ??????? client.getHttpConnectionManager().getParams().setSoTimeout(soTimeout);
    ??????? GetMethod method = new GetMethod(url);
    ??????? method.addRequestHeader("Content-Type", "text/html; charset=utf-8");
    ??????? try {
    ??????????? int statusCode = client.executeMethod(method);
    ??????????? if (statusCode != HttpStatus.SC_OK) {
    ??????????????? throw new HttpException("HttpStatusCode : " + statusCode);
    ??????????? }
    ??????????? InputStream is = method.getResponseBodyAsStream();
    ??????????? DOMParser parser = new DOMParser();
    ??????????? parser.setProperty("??????????? parser.parse(new InputSource(is));
    ??????????? return (parser.getDocument());
    ??????? } catch (HttpException he) {
    ??????????? he.printStackTrace();
    ??????? } catch (IOException ie) {
    ??????????? ie.printStackTrace();
    ??????? } catch (SAXException se) {
    ??????????? se.printStackTrace();
    ??????? }
    ??????? return null;
    ??? }
    }


    評論

    # re: httpclient+nekohtml 解析HTML 2008-04-01 09:25 隔葉黃鶯
    如果 html 頁面完全不規范就不好辦了,如
    <h1><div>kkkkk</h1></div>  回復  更多評論
      

    # re: httpclient+nekohtml 解析HTML 2008-04-01 17:13 lexy
    @隔葉黃鶯

    這個我也沒具體測試過,呵呵。
    不過 nekohtml 的介紹是這樣說的:
    這個解析器能投掃描HTML文件并“修正”許多作者(人或機器)在編寫HTML文檔過程中常犯的錯誤。NekoHTML能增補缺失的父元素、自動用結束標簽關閉相應的元素,以及不匹配的內嵌元素標簽。

    我在用的過程中暫時還沒發現什么大問題,呵呵。
      回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲福利电影一区二区?| 免费高清在线影片一区| 亚洲色偷偷偷鲁综合| 鲁啊鲁在线视频免费播放| 免费观看理论片毛片| 亚洲粉嫩美白在线| 成人男女网18免费视频| 亚洲熟妇AV日韩熟妇在线| 日韩欧美一区二区三区免费观看| 亚洲性一级理论片在线观看| 久久久久高潮毛片免费全部播放 | 亚洲黄色免费网址| 在线看片v免费观看视频777| 国产精品亚洲片夜色在线| 最近中文字幕免费mv视频8| 亚洲欧美日韩国产精品一区| 四虎1515hm免费国产| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲国产精品热久久| 亚洲精品在线免费看| 亚洲卡一卡二卡乱码新区| 日韩精品视频免费观看| 免费无码午夜福利片| 国产亚洲欧洲精品| 国产精品成人观看视频免费| 亚洲精品亚洲人成在线播放| 日韩免费视频观看| 99在线热播精品免费99热| 久久亚洲精品无码aⅴ大香| 午夜一级免费视频| 99精品视频免费| 亚洲一卡2卡4卡5卡6卡残暴在线| 国产免费人人看大香伊| a级片免费观看视频| 亚洲妓女综合网99| 亚洲国产精品一区二区第一页免| 久久99热精品免费观看牛牛| 亚洲人成综合网站7777香蕉| 国产亚洲精品久久久久秋霞| 在线观看的免费网站| eeuss影院免费92242部|