HttpClient抓取網(wǎng)頁(yè)的兩種方式
更新時(shí)間:2013年08月23日 17:11:46 作者:
可以利用NodeFilter對(duì)網(wǎng)頁(yè)進(jìn)行分析及利用Visitor對(duì)網(wǎng)頁(yè)進(jìn)行分析實(shí)現(xiàn)抓取網(wǎng)頁(yè),具體如下感興趣的朋友可以參考下,希望對(duì)大家有所幫助
一、利用NodeFilter對(duì)網(wǎng)頁(yè)進(jìn)行分析
1、生成一個(gè)Parser
a.通過(guò)url提取網(wǎng)絡(luò)上的網(wǎng)頁(yè)
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地網(wǎng)頁(yè)文件
通過(guò)讀文件把網(wǎng)頁(yè)文件轉(zhuǎn)化成字符串;
Parser parser=Parser.createParser(html,charset);
2、利用NodeFilter做一個(gè)filter
a.利用Tag Name
NodeFilter filter=new TagNameFilter("IMG");
b.利用Tag Class
NodeFilter filter = new NodeClassFilter(ImageTag.class);
3、通過(guò)匹配filter,得到所有符合條件的Tag
NodeList list=parser.extractAllNodesThat(filter);
for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合條件的Tag 內(nèi)容
如果針對(duì)具體情況進(jìn)行更加詳細(xì)的處理,則:
ImageTag imageTag=(ImageTag)list.elementAt(i);
…………
}
然后根據(jù)需要做相應(yīng)的處理。
二、利用Visitor對(duì)網(wǎng)頁(yè)進(jìn)行分析
1、生成一個(gè)Parser
a.通過(guò)url提取網(wǎng)絡(luò)上的網(wǎng)頁(yè)
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地網(wǎng)頁(yè)文件
通過(guò)讀文件把網(wǎng)頁(yè)文件轉(zhuǎn)化成字符串;
Parser parser=Parser.createParser(html,charset);
2、用visitor訪問(wèn)頁(yè)面
ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();
parser.visitAllNodesWith(visitor);
3、通過(guò)特定的visitor得到符合條件的Tag
Node[] nodes=visitor.getTags();
for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];
…………
//根據(jù)需要做特定處理
}
1、生成一個(gè)Parser
a.通過(guò)url提取網(wǎng)絡(luò)上的網(wǎng)頁(yè)
復(fù)制代碼 代碼如下:
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地網(wǎng)頁(yè)文件
通過(guò)讀文件把網(wǎng)頁(yè)文件轉(zhuǎn)化成字符串;
復(fù)制代碼 代碼如下:
Parser parser=Parser.createParser(html,charset);
2、利用NodeFilter做一個(gè)filter
a.利用Tag Name
NodeFilter filter=new TagNameFilter("IMG");
b.利用Tag Class
NodeFilter filter = new NodeClassFilter(ImageTag.class);
3、通過(guò)匹配filter,得到所有符合條件的Tag
NodeList list=parser.extractAllNodesThat(filter);
for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合條件的Tag 內(nèi)容
如果針對(duì)具體情況進(jìn)行更加詳細(xì)的處理,則:
復(fù)制代碼 代碼如下:
ImageTag imageTag=(ImageTag)list.elementAt(i);
…………
}
然后根據(jù)需要做相應(yīng)的處理。
二、利用Visitor對(duì)網(wǎng)頁(yè)進(jìn)行分析
1、生成一個(gè)Parser
a.通過(guò)url提取網(wǎng)絡(luò)上的網(wǎng)頁(yè)
復(fù)制代碼 代碼如下:
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地網(wǎng)頁(yè)文件
通過(guò)讀文件把網(wǎng)頁(yè)文件轉(zhuǎn)化成字符串;
復(fù)制代碼 代碼如下:
Parser parser=Parser.createParser(html,charset);
2、用visitor訪問(wèn)頁(yè)面
復(fù)制代碼 代碼如下:
ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();
parser.visitAllNodesWith(visitor);
3、通過(guò)特定的visitor得到符合條件的Tag
復(fù)制代碼 代碼如下:
Node[] nodes=visitor.getTags();
for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];
…………
//根據(jù)需要做特定處理
}
您可能感興趣的文章:
- 使用httpclient實(shí)現(xiàn)免費(fèi)的google翻譯api
- httpclient模擬登陸具體實(shí)現(xiàn)(使用js設(shè)置cookie)
- Android 中HttpURLConnection與HttpClient使用的簡(jiǎn)單實(shí)例
- Android下通過(guò)httpClient發(fā)送GET和POST請(qǐng)求的實(shí)例代碼
- 探討:使用httpClient在客戶端與服務(wù)器端傳輸對(duì)象參數(shù)的詳解
- Android HttpClient GET或者POST請(qǐng)求基本使用方法
- C# HttpClient Cookie驗(yàn)證解決方法
- AndroidHttpClient使用Cookie應(yīng)用分析
- ASP.NET MVC Web API HttpClient簡(jiǎn)介
- httpclient重定向之后獲取網(wǎng)址信息示例
相關(guān)文章
微軟IE Developer Toolbar安裝使用簡(jiǎn)要圖文說(shuō)明
微軟IE Developer Toolbar安裝使用簡(jiǎn)要圖文說(shuō)明...2007-05-05收藏的word實(shí)用技巧問(wèn)題解答(實(shí)用)
收藏的word實(shí)用技巧問(wèn)題解答(實(shí)用)...2007-03-03揪出交換機(jī)端口背后“兇手”導(dǎo)致網(wǎng)速太慢
揪出交換機(jī)端口背后“兇手”導(dǎo)致網(wǎng)速太慢...2007-11-11關(guān)于frameset出現(xiàn)滾動(dòng)條的解決方法
關(guān)于frameset出現(xiàn)滾動(dòng)條的解決方法...2007-08-08