首页 > 代码库 > html代码里面所有的链接地址和链接名称

html代码里面所有的链接地址和链接名称

package parser;

 

import org.htmlparser.Parser;

import org.htmlparser.Node;

import org.htmlparser.NodeFilter;

import org.htmlparser.Parser;

importorg.htmlparser.filters.TagNameFilter;

import org.htmlparser.tags.LinkTag;

import org.htmlparser.tags.TableTag;

import org.htmlparser.util.NodeList;

import org.htmlparser.util.ParserException;

import org.htmlparser.visitors.HtmlPage;

 

/**

 *htmlparser取得一段html代码里面所有的链接地址和链接名称

 *

 *@author chenguoyong

 *

 */

public class Testhtmlparser {

 

       /**

        * @param args

        */

       publicstatic void main(String[] args) {

              Stringhtmlcode ="<HTML><HEAD><TITLE>AAA</TITLE></HEAD><BODY>"

                            +"<a href=http://www.mamicode.com/‘http://topic.csdn.net/u/20080522/14/0ff402ef-c382-499a-8213-ba6b2f550425.html‘>连接1"

                            +"<a href=http://www.mamicode.com/‘http://topic.csdn.net‘>连接2";

              //创建Parser对象根据传给字符串和指定的编码

              Parserparser = Parser.createParser(htmlcode, "GBK");

              //创建HtmlPage对象HtmlPage(Parser parser)

              HtmlPagepage = new HtmlPage(parser);

              try{

                     //HtmlPage extends visitor,Apply the given visitor to the current

                     //page.

                     parser.visitAllNodesWith(page);

              }catch (ParserException e1) {

                     e1= null;

              }

              //所有的节点

              NodeListnodelist = page.getBody();

              //建立一个节点filter用于过滤节点

              NodeFilterfilter = new TagNameFilter("A");

              //得到所有过滤后,想要的节点

              nodelist= nodelist.extractAllNodesThatMatch(filter, true);

              for(int i = 0; i < nodelist.size(); i++) {

                     LinkTaglink = (LinkTag) nodelist.elementAt(i);

                     //链接地址

                     System.out.println(link.getAttribute("href")+ "\n");

                     //链接名称

                     System.out.println(link.getStringText());

              }

 

       }

 

}

 

结果如下:

http://topic.csdn.net/u/20080522/14/0ff402ef-c382-499a-8213-ba6b2f550425.html

连接1

http://topic.csdn.net

连接2

 

2. 使用HtmlParser抓去网页内容

package parser;

 

import org.htmlparser.Parser;

import org.htmlparser.beans.StringBean;

importorg.htmlparser.filters.NodeClassFilter;

importorg.htmlparser.parserapplications.StringExtractor;

import org.htmlparser.tags.BodyTag;

import org.htmlparser.util.NodeList;

import org.htmlparser.util.ParserException;

 

/**

 * 使用HtmlParser抓去网页内容: 要抓去页面的内容最方便的方法就是使用StringBean. 里面有几个控制页面内容的几个参数.

 * 在后面的代码中会有说明. Htmlparser包中还有一个示例StringExtractor 里面有个直接得到内容的方法,

 * 其中也是使用了StringBean . 另外直接解析Parser的每个标签也可以的.

 *

 *@author chenguoyong

 *

 */

public class GetContent {

       publicvoid getContentUsingStringBean(String url) {

              StringBeansb = new StringBean();

              sb.setLinks(true);// 是否显示web页面的连接(Links)

              //为了取得页面的整洁美观一般设置上面两项为true , 如果要保持页面的原有格式, 如代码页面的空格缩进 可以设置为false

              sb.setCollapse(true);// 如果是true的话把一系列空白字符用一个字符替代.

              sb.setReplaceNonBreakingSpaces(true);//If true regular space

              sb

                            .setURL("http://www.blogjava.net/51AOP/archive/2006/07/19/59064.html");

              System.out.println("TheContent is :\n" + sb.getStrings());

 

       }

 

       publicvoid getContentUsingStringExtractor(String url, boolean link) {

              //StringExtractor内部机制和上面的一样.做了一下包装

              StringExtractorse = new StringExtractor(url);

              Stringtext = null;

              try{

                     text= se.extractStrings(link);

                     System.out.println("Thecontent is :\n" + text);

              }catch (ParserException e) {

                     e.printStackTrace();

              }

       }

 

       publicvoid getContentUsingParser(String url) {

              NodeListnl;

              try{

                     Parserp = new Parser(url);

                     nl= p.parse(new NodeClassFilter(BodyTag.class));

                     BodyTagbt = (BodyTag) nl.elementAt(0);

                     System.out.println(bt.toPlainTextString());// 保留原来的内容格式. 包含js代码

              }catch (ParserException e) {

                     e.printStackTrace();

              }

       }

 

       /**

        * @param args

        */

       publicstatic void main(String[] args) {

              Stringurl = "http://www.blogjava.net/51AOP/archive/2006/07/19/59064.html";

              //newGetContent().getContentUsingParser(url);

              //--------------------------------------------------

              newGetContent().getContentUsingStringBean(url);

 

       }

 

}

 

3.将整个html内容保存到指定文件

 

package parser;

 

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

 

/**

 * 基本能实现网页抓取,不过要手动输入URL 将整个html内容保存到指定文件

 *

 *@author chenguoyong

 *

 */

public class ScrubSelectedWeb {

       privatefinal static String CRLF = System.getProperty("line.separator");

 

       /**

        * @param args

        */

       publicstatic void main(String[] args) {

              try{

                     URLur = newURL("http://www.google.cn/");

                     InputStreaminstr = ur.openStream();

                     Strings, str;

                     BufferedReaderin = new BufferedReader(new InputStreamReader(instr));

                     StringBuffersb = new StringBuffer();

                     BufferedWriterout = new BufferedWriter(new FileWriter(

                                   "D:/outPut.txt"));

                     while((s = in.readLine()) != null) {

                            sb.append(s+ CRLF);

                     }

                     System.out.println(sb);

                     str= new String(sb);

                     out.write(str);

                     out.close();

                     in.close();

              }catch (MalformedURLException e) {

                     e.printStackTrace();

              }catch (IOException e) {

                     e.printStackTrace();

              }

 

       }

 

}

 

4利用htmlparser提取网页纯文本的例子

 

package parser;

 

import org.htmlparser.Node;

import org.htmlparser.NodeFilter;

import org.htmlparser.Parser;

importorg.htmlparser.filters.TagNameFilter;

import org.htmlparser.tags.TableTag;

import org.htmlparser.util.NodeList;

 

/**

 * 标题:利用htmlparser提取网页纯文本的例子

 */

public class TestHTMLParser2 {

       /**

        * 读取目标html内容

        *

        */

       publicstatic void testHtml() {

              try{

                     StringsCurrentLine;

                     StringsTotalString;

                     sCurrentLine= "";

                     sTotalString= "";

                     java.io.InputStreaml_urlStream;

                     java.net.URLl_url = new java.net.URL(

                                   "http://10.249.187.199:8083/injs100/");

                     java.net.HttpURLConnectionl_connection = (java.net.HttpURLConnection) l_url

                                   .openConnection();

                     l_connection.connect();

                     l_urlStream= l_connection.getInputStream();

                     java.io.BufferedReaderl_reader = new java.io.BufferedReader(

                                   newjava.io.InputStreamReader(l_urlStream));

                     while((sCurrentLine = l_reader.readLine()) != null) {

                            sTotalString+= sCurrentLine + "\r\n";

                     }

 

                     StringtestText = extractText(sTotalString);

              }catch (Exception e) {

                     e.printStackTrace();

              }

 

       }

   /**

    * 抽取纯文本信息

    * @param inputHtml:html文本

    * @return

    * @throws Exception

    */

       publicstatic String extractText(String inputHtml) throws Exception {

              StringBuffertext = new StringBuffer();

              Parserparser = Parser.createParser(new String(inputHtml.getBytes(),

                            "GBK"),"GBK");

              //遍历所有的节点

              NodeListnodes = parser.extractAllNodesThatMatch(new NodeFilter() {

                     publicboolean accept(Node node) {

                            returntrue;

                     }

              });

 

              System.out.println(nodes.size());

              for(int i = 0; i < nodes.size(); i++) {

                     Nodenodet = nodes.elementAt(i);

                     //字符串的代表性节点:节点的描述

                     text.append(newString(nodet.toPlainTextString().getBytes("GBK"))

                                   +"\r\n");

              }

              returntext.toString();

       }

   /**

    *  读取文件的方式/utl 来分析内容.filePath也可以是一个Url.

    * @param resource :文件/Url

    * @throws Exception

    */

       publicstatic void test5(String resource) throws Exception {

              ParsermyParser = new Parser(resource);

              myParser.setEncoding("GBK");

              StringfilterStr = "table";

              NodeFilterfilter = new TagNameFilter(filterStr);

              NodeListnodeList = myParser.extractAllNodesThatMatch(filter);

              /*for(inti=0;i<nodeList.size();i++)

              {

                     TableTagtabletag = (TableTag) nodeList.elementAt(i);

                     //标签名称

                     System.out.println(tabletag.getTagName());

                     System.out.println(tabletag.getText());

              }*/

              TableTagtabletag = (TableTag) nodeList.elementAt(1);

             

             

             

 

       }

 

       publicstatic void main(String[] args) throws Exception {

              test5("http://10.249.187.199:8083/injs100/");

              //testHtml();

       }

}

 

5.html解析table

 

package parser;

 

import org.apache.log4j.Logger;

import org.htmlparser.NodeFilter;

import org.htmlparser.Parser;

importorg.htmlparser.filters.NodeClassFilter;

import org.htmlparser.filters.OrFilter;

importorg.htmlparser.filters.TagNameFilter;

import org.htmlparser.tags.TableColumn;

import org.htmlparser.tags.TableRow;

import org.htmlparser.tags.TableTag;

import org.htmlparser.util.NodeList;

import org.htmlparser.util.ParserException;

 

import junit.framework.TestCase;

 

public class ParserTestCase extendsTestCase {

       privatestatic final Logger logger = Logger.getLogger(ParserTestCase.class);

 

       publicParserTestCase(String name) {

              super(name);

       }

 

       /**

        * 测试对<table>

        * <tr>

        * <td></td>

        * </tr>

        * </table>的解析

        */

       publicvoid testTable() {

              ParsermyParser;

              NodeListnodeList = null;

              myParser= Parser

                            .createParser(

                                          "<body>"

                                                        +"<table id=’table1′ >"

                                                        +"<tr id=‘tro1‘><td>1-11</td><td>1-12</td><td>1-13</td></tr>"

                                                        +"<trid=‘tro2‘><td>1-21</td><td>1-22</td><td>1-23</td></tr>"

                                                        +"<trid=‘tro3‘><td>1-31</td><td>1-32</td><td>1-33</td></tr></table>"

                                                        +"<table id=’table2′ >"

                                                        +"<tr id=‘tro4‘><td>2-11</td><td>2-12</td><td>2-13</td></tr>"

                                                        +"<trid=‘tro5‘><td>2-21</td><td>2-22</td><td>2-23</td></tr>"

                                                        +"<trid=‘tro6‘><td>2-31</td><td>2-32</td><td>2-33</td></tr></table>"

                                                        +"</body>", "GBK");

              NodeFiltertableFilter = new NodeClassFilter(TableTag.class);

              OrFilterlastFilter = new OrFilter();

              lastFilter.setPredicates(newNodeFilter[] { tableFilter });

              try{

                     nodeList= myParser.parse(lastFilter);

                     for(int i = 0; i <= nodeList.size(); i++) {

                            if(nodeList.elementAt(i) instanceof TableTag) {

                                   TableTagtag = (TableTag) nodeList.elementAt(i);

                                   TableRow[]rows = tag.getRows();

 

                                   for(int j = 0; j < rows.length; j++) {

                                          TableRowtr = (TableRow) rows[j];

                                          System.out.println(tr.getAttribute("id"));

                                          if(tr.getAttribute("id").equalsIgnoreCase("tro1")) {

                                                 TableColumn[]td = tr.getColumns();

                                                 for(int k = 0; k < td.length; k++) {

 

                                                        //logger.fatal("<td>" +

                                                        //td[k].toPlainTextString());

                                                        System.out.println("<td>"

                                                                      +td[k].toPlainTextString());

                                                 }

                                          }

 

                                   }

 

                            }

                     }

 

              }catch (ParserException e) {

                     e.printStackTrace();

              }

       }

 

       /**

        * 得到目标数据

        *

        * @param url:目标url

        * @throws Exception

        */

       publicstatic void getDatabyUrl(String url) throws Exception {

              ParsermyParser = new Parser(url);

              NodeListnodeList = null;

              myParser.setEncoding("gb2312");

              NodeFiltertableFilter = new NodeClassFilter(TableTag.class);

              OrFilterlastFilter = new OrFilter();

              lastFilter.setPredicates(newNodeFilter[] { tableFilter });

              try{

                     nodeList= myParser.parse(lastFilter);

                     //可以从数据table的size:19-21开始到结束

                     for(int i = 15; i <= nodeList.size(); i++) {

                            if(nodeList.elementAt(i) instanceof TableTag) {

                                   TableTagtag = (TableTag) nodeList.elementAt(i);

                                   TableRow[]rows = tag.getRows();

                                   for(int j = 0; j < rows.length; j++) {

                                          TableRowtr = (TableRow) rows[j];

                                          if(tr.getAttribute("id") != null

                                                        &&tr.getAttribute("id").equalsIgnoreCase(

                                                                      "tr02")){

                                                 TableColumn[]td = tr.getColumns();

                                                 //对不起,没有你要查询的记录!

                                                 if(td.length == 1) {

                                                        System.out.println("对不起,没有你要查询的记录");

                                                 }else {

                                                        for(int k = 0; k < td.length; k++) {

                                                               System.out.println("<td>内容:"

                                                                             +td[k].toPlainTextString().trim());

                                                        }

                                                 }

 

                                          }

 

                                   }

 

                            }

                     }

 

              }catch (ParserException e) {

                     e.printStackTrace();

              }

 

       }

 

       /**

        * 测试已经得出有数据时table:22个,没有数据时table:19个

        *

        * @param args

        */

       publicstatic void main(String[] args) {

              try{

 

                     //getDatabyUrl("http://gd.12530.com/user/querytonebytype.do?field=tonecode&condition=619505000000008942&type=1006&pkValue=http://www.mamicode.com/619505000000008942");

                     getDatabyUrl("http://gd.12530.com/user/querytonebytype.do?field=tonecode&condition=619272000000001712&type=1006&pkValue=http://www.mamicode.com/619272000000001712");

              }catch (Exception e) {

 

                     e.printStackTrace();

              }

       }

 

}

 

6.html解析常用

 

 

packagecom.jscud.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.nodes.TextNode;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;
import org.htmlparser.visitors.TextExtractingVisitor;

import com.jscud.util.LogMan; //一个日志记录类

/**
* 演示了Html Parse的应用.
*
* @author scud http://www.jscud.com (http://www.jscud.com/)
*/

public class ParseHtmlTest
{

public static void main(String[] args) throws Exception
{
String aFile = "e:/jscud/temp/test.htm";

String content = readTextFile(aFile, "GBK");

test1(content);
System.out.println("====================================");

test2(content);
System.out.println("====================================");

test3(content);
System.out.println("====================================");

test4(content);
System.out.println("====================================");

test5(aFile);
System.out.println("====================================");

//访问外部资源,相对慢
test5("http://www.jscud.com (http://www.jscud.com/)");
System.out.println("====================================");

}

/**
* 读取文件的方式来分析内容.
* filePath也可以是一个Url.
*
* @param resource 文件/Url
*/
public static void test5(String resource) throws Exception
{
Parser myParser = new Parser(resource);

//设置编码
myParser.setEncoding("GBK");

HtmlPage visitor = new HtmlPage(myParser);

myParser.visitAllNodesWith(visitor);

String textInPage = visitor.getTitle();

System.out.println(textInPage);
}

/**
* 按页面方式处理.对一个标准的Html页面,推荐使用此种方式.
*/
public static void test4(String content) throws Exception
{
Parser myParser;
myParser = Parser.createParser(content, "GBK");

HtmlPage visitor = new HtmlPage(myParser);

myParser.visitAllNodesWith(visitor);

String textInPage = visitor.getTitle();

System.out.println(textInPage);
}

/**
* 利用Visitor模式解析html页面.
*
* 小优点:翻译了<>等符号
* 缺点:好多空格,无法提取link
*
*/
public static void test3(String content) throws Exception
{
Parser myParser;
myParser = Parser.createParser(content, "GBK");

TextExtractingVisitor visitor = new TextExtractingVisitor();

myParser.visitAllNodesWith(visitor);

String textInPage = visitor.getExtractedText();

System.out.println(textInPage);
}

/**
* 得到普通文本和链接的内容.
*
* 使用了过滤条件.
*/
public static void test2(String content) throws ParserException
{
Parser myParser;
NodeList nodeList = null;

myParser = Parser.createParser(content, "GBK");

NodeFilter textFilter = new NodeClassFilter(TextNode.class);
NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);

//暂时不处理 meta
//NodeFilter metaFilter = new NodeClassFilter(MetaTag.class);

OrFilter lastFilter = new OrFilter();
lastFilter.setPredicates(new NodeFilter[] { textFilter, linkFilter });

nodeList = myParser.parse(lastFilter);

Node[] nodes = nodeList.toNodeArray();

for (int i = 0; i < nodes.length; i++)
{
Node anode = (Node) nodes[i];

String line = "";
if (anode instanceof TextNode)
{
TextNode textnode = (TextNode) anode;
//line = textnode.toPlainTextString().trim();
line = textnode.getText();
}
else if (anode instanceof LinkTag)
{
LinkTag linknode = (LinkTag) anode;

line = linknode.getLink();
//@todo ("") 过滤jsp标签:可以自己实现这个函数
//line = StringFunc.replace(line, "<%.*%>", "");
}

if (isTrimEmpty(line))
continue;

System.out.println(line);
}
}

/**
* 解析普通文本节点.
*
* @param content
* @throws ParserException
*/
public static void test1(String content) throws ParserException
{
Parser myParser;
Node[] nodes = null;

myParser = Parser.createParser(content, null);

nodes = myParser.extractAllNodesThatAre(TextNode.class); //exception could bethrown here

for (int i = 0; i < nodes.length; i++)
{
TextNode textnode = (TextNode) nodes[i];
String line = textnode.toPlainTextString().trim();
if (line.equals(""))
continue;
System.out.println(line);
}

}

/**
* 读取一个文件到字符串里.
*
* @param sFileName 文件名
* @param sEncode String
* @return 文件内容
*/
public static String readTextFile(String sFileName, String sEncode)
{
StringBuffer sbStr = new StringBuffer();

try
{
File ff = new File(sFileName);
InputStreamReader read = new InputStreamReader(new FileInputStream(ff),
sEncode);
BufferedReader ins = new BufferedReader(read);

String dataLine = "";
while (null != (dataLine = ins.readLine()))
{
sbStr.append(dataLine);
sbStr.append("\r\n");
}

ins.close();
}
catch (Exception e)
{
LogMan.error("read Text File Error", e);
}

return sbStr.toString();
}

/**
* 去掉左右空格后字符串是否为空
* @param astr String
* @return boolean
*/
public static boolean isTrimEmpty(String astr)
{
if ((null == astr) || (astr.length() == 0))
{
return true;
}
if (isBlank(astr.trim()))
{
return true;
}
return false;
}

/**
* 字符串是否为空:null或者长度为0.
* @param astr 源字符串.
* @return boolean
*/
public static boolean isBlank(String astr)
{
if ((null == astr) || (astr.length() == 0))
{
return true;
}
else
{
return false;
}
}
http://c.tieba.baidu.com/p/3408718072
http://c.tieba.baidu.com/p/3408719221
http://c.tieba.baidu.com/p/3408720123
http://c.tieba.baidu.com/p/3408721305
http://c.tieba.baidu.com/p/3408725071
http://c.tieba.baidu.com/p/3408725950
http://c.tieba.baidu.com/p/3408728180
http://c.tieba.baidu.com/p/3408728971
http://c.tieba.baidu.com/p/3408729856
http://c.tieba.baidu.com/p/3408730651
http://c.tieba.baidu.com/p/3408731446
http://c.tieba.baidu.com/p/3408732247
http://c.tieba.baidu.com/p/3408732967
http://c.tieba.baidu.com/p/3408733695
http://c.tieba.baidu.com/p/3408734422
http://c.tieba.baidu.com/p/3408735092
http://c.tieba.baidu.com/p/3408735757
http://c.tieba.baidu.com/p/3408736440
http://c.tieba.baidu.com/p/3408737058
http://c.tieba.baidu.com/p/3408737687
http://c.tieba.baidu.com/p/3408737687
http://c.tieba.baidu.com/p/3408738889
http://c.tieba.baidu.com/p/3408739519
http://c.tieba.baidu.com/p/3408740121
http://c.tieba.baidu.com/p/3408740649
http://c.tieba.baidu.com/p/3408741179
http://c.tieba.baidu.com/p/3408741691
http://c.tieba.baidu.com/p/3408742224
http://c.tieba.baidu.com/p/3408742735
http://c.tieba.baidu.com/p/3408743229
http://c.tieba.baidu.com/p/3408743737
http://c.tieba.baidu.com/p/3408744245
http://c.tieba.baidu.com/p/3408744712
http://c.tieba.baidu.com/p/3408745202
http://c.tieba.baidu.com/p/3408745684
http://c.tieba.baidu.com/p/3408746125
http://c.tieba.baidu.com/p/3408746630
http://c.tieba.baidu.com/p/3408747078
http://c.tieba.baidu.com/p/3408747485
http://c.tieba.baidu.com/p/3408747914
http://c.tieba.baidu.com/p/3408748362
http://c.tieba.baidu.com/p/3408748779
http://c.tieba.baidu.com/p/3408749207
http://c.tieba.baidu.com/p/3408749592
http://c.tieba.baidu.com/p/3408750032
http://c.tieba.baidu.com/p/3408750445
http://c.tieba.baidu.com/p/3408750825
http://c.tieba.baidu.com/p/3408751216
http://c.tieba.baidu.com/p/3408751587
http://c.tieba.baidu.com/p/3408751950
http://c.tieba.baidu.com/p/3408752298
http://c.tieba.baidu.com/p/3408752663
http://c.tieba.baidu.com/p/3408753035
http://c.tieba.baidu.com/p/3408753391
http://c.tieba.baidu.com/p/3408753745
http://c.tieba.baidu.com/p/3408754082
http://c.tieba.baidu.com/p/3408754445
http://c.tieba.baidu.com/p/3408754800
http://c.tieba.baidu.com/p/3408755147
http://c.tieba.baidu.com/p/3408755481
http://c.tieba.baidu.com/p/3408755830
http://c.tieba.baidu.com/p/3408756166
http://c.tieba.baidu.com/p/3408756491
http://c.tieba.baidu.com/p/3408756810
http://c.tieba.baidu.com/p/3408757194
http://c.tieba.baidu.com/p/3408757537
http://c.tieba.baidu.com/p/3408757922
http://c.tieba.baidu.com/p/3408759956
http://c.tieba.baidu.com/p/3408760411
http://c.tieba.baidu.com/p/3408760775
http://c.tieba.baidu.com/p/3408760901
http://c.tieba.baidu.com/p/3408758016
http://c.tieba.baidu.com/p/3408757852
http://c.tieba.baidu.com/p/3408756764
http://c.tieba.baidu.com/p/3408757139
http://c.tieba.baidu.com/p/3408757578
http://c.tieba.baidu.com/p/3408758177
http://c.tieba.baidu.com/p/3408758276
http://c.tieba.baidu.com/p/3408761245
http://c.tieba.baidu.com/p/3408762542
http://c.tieba.baidu.com/p/3408763055
http://c.tieba.baidu.com/p/3408763482
http://c.tieba.baidu.com/p/3408763944
http://c.tieba.baidu.com/p/3408764477
http://c.tieba.baidu.com/p/3408764990
http://c.tieba.baidu.com/p/3408765524
http://c.tieba.baidu.com/p/3408766058
http://c.tieba.baidu.com/p/3408749395
http://c.tieba.baidu.com/p/3408770449
http://c.tieba.baidu.com/p/3408766906
http://c.tieba.baidu.com/p/3408761245
http://c.tieba.baidu.com/p/3408774525
http://c.tieba.baidu.com/p/3408772475
http://c.tieba.baidu.com/p/3408776059
http://c.tieba.baidu.com/p/3408777094
http://c.tieba.baidu.com/p/3408778132
http://c.tieba.baidu.com/p/3408779255
http://c.tieba.baidu.com/p/3408780364
http://c.tieba.baidu.com/p/3408781556
http://c.tieba.baidu.com/p/3408782811
http://c.tieba.baidu.com/p/3408784088
http://c.tieba.baidu.com/p/3408785417
http://c.tieba.baidu.com/p/3408786765
http://c.tieba.baidu.com/p/3408788143
http://c.tieba.baidu.com/p/3408789621
http://c.tieba.baidu.com/p/3408791017
http://c.tieba.baidu.com/p/3408792470
http://c.tieba.baidu.com/p/3408794021
http://c.tieba.baidu.com/p/3408795634
http://c.tieba.baidu.com/p/3408797361
http://c.tieba.baidu.com/p/3408800473
http://c.tieba.baidu.com/p/3408803216
http://c.tieba.baidu.com/p/3408800473
http://c.tieba.baidu.com/p/3408805906
http://c.tieba.baidu.com/p/3408807740
http://c.tieba.baidu.com/p/3408814035
http://c.tieba.baidu.com/p/3408816031
http://c.tieba.baidu.com/p/3408818172
http://c.tieba.baidu.com/p/3408820214
http://c.tieba.baidu.com/p/3408822457
http://c.tieba.baidu.com/p/3408824790
http://c.tieba.baidu.com/p/3408827085
http://c.tieba.baidu.com/p/3408829364
http://c.tieba.baidu.com/p/3408831835
http://c.tieba.baidu.com/p/3408834395
http://c.tieba.baidu.com/p/3408836998
http://c.tieba.baidu.com/p/3408839658
http://c.tieba.baidu.com/p/3408842364
http://c.tieba.baidu.com/p/3408845156
http://c.tieba.baidu.com/p/3408848096
http://c.tieba.baidu.com/p/3408859104
http://c.tieba.baidu.com/p/3408857548
http://c.tieba.baidu.com/p/3408854851
http://c.tieba.baidu.com/p/3408862767
http://c.tieba.baidu.com/p/3408859104
http://c.tieba.baidu.com/p/3408867304
http://c.tieba.baidu.com/p/3408869872
http://c.tieba.baidu.com/p/3408873047
http://c.tieba.baidu.com/p/3408876360
http://c.tieba.baidu.com/p/3408879864
http://c.tieba.baidu.com/p/3408883384
http://c.tieba.baidu.com/p/3408886911
http://c.tieba.baidu.com/p/3408890546
http://c.tieba.baidu.com/p/3408894287
http://c.tieba.baidu.com/p/3408897889
http://c.tieba.baidu.com/p/3408901646
http://c.tieba.baidu.com/p/3408905730
http://c.tieba.baidu.com/p/3408909062
http://c.tieba.baidu.com/p/3408912935
http://c.tieba.baidu.com/p/3408916919
http://c.tieba.baidu.com/p/3408920936
http://c.tieba.baidu.com/p/3408925045
http://c.tieba.baidu.com/p/3408879841
http://c.tieba.baidu.com/p/3408837991
http://c.tieba.baidu.com/p/3408831077
http://c.tieba.baidu.com/p/3408832717
http://c.tieba.baidu.com/p/3408928692


html代码里面所有的链接地址和链接名称