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

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

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

    lexy

    支持開源,尊重他人的勞動(dòng)!

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      17 隨筆 :: 0 文章 :: 9 評(píng)論 :: 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;
    ??? }
    }


    評(píng)論

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

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

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

    我在用的過程中暫時(shí)還沒發(fā)現(xiàn)什么大問題,呵呵。
      回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成年性午夜免费视频网站不卡| 18亚洲男同志videos网站| 国产精品高清视亚洲一区二区| 久久99国产乱子伦精品免费| 亚洲国产二区三区久久| 另类免费视频一区二区在线观看 | 亚洲中文精品久久久久久不卡| 在线免费观看国产| 91午夜精品亚洲一区二区三区| 99re这里有免费视频精品| 91亚洲精品第一综合不卡播放| 久久国产乱子伦精品免费不卡 | 2020国产精品亚洲综合网| 国语成本人片免费av无码| 亚洲国产精品无码久久98| 国产又粗又长又硬免费视频| 羞羞漫画在线成人漫画阅读免费 | 日韩免费无码视频一区二区三区| 亚洲午夜精品久久久久久人妖| 成人免费观看一区二区| 久久亚洲国产成人影院| 国产成人免费A在线视频| 一出一进一爽一粗一大视频免费的| 中文字幕一精品亚洲无线一区| 国产免费AV片在线观看| 亚洲国产日韩在线人成下载| 成年人免费观看视频网站| 一级毛片aaaaaa视频免费看| 亚洲久本草在线中文字幕| 成人毛片18女人毛片免费96| 成人福利在线观看免费视频| 午夜亚洲AV日韩AV无码大全| 两个人的视频高清在线观看免费 | 亚洲视频精品在线| 免费爱爱的视频太爽了| 成人自慰女黄网站免费大全| 亚洲女人影院想要爱| 免费一看一级毛片| 亚洲日本在线免费观看| 黄页网站在线视频免费| 久久久久亚洲Av无码专|