HttpClient抓取网页的两种方式
作者:
可以利用NodeFilter对网页进行分析及利用Visitor对网页进行分析实现抓取网页,具体如下感兴趣的朋友可以参考下,希望对大家有所帮助
一、利用NodeFilter对网页进行分析
1、生成一个Parser
a.通过url提取网络上的网页
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地网页文件
通过读文件把网页文件转化成字符串;
Parser parser=Parser.createParser(html,charset);
2、利用NodeFilter做一个filter
a.利用Tag Name
NodeFilter filter=new TagNameFilter("IMG");
b.利用Tag Class
NodeFilter filter = new NodeClassFilter(ImageTag.class);
3、通过匹配filter,得到所有符合条件的Tag
NodeList list=parser.extractAllNodesThat(filter);
for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合条件的Tag 内容
如果针对具体情况进行更加详细的处理,则:
ImageTag imageTag=(ImageTag)list.elementAt(i);
…………
}
然后根据需要做相应的处理。
二、利用Visitor对网页进行分析
1、生成一个Parser
a.通过url提取网络上的网页
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地网页文件
通过读文件把网页文件转化成字符串;
Parser parser=Parser.createParser(html,charset);
2、用visitor访问页面
ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();
parser.visitAllNodesWith(visitor);
3、通过特定的visitor得到符合条件的Tag
Node[] nodes=visitor.getTags();
for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];
…………
//根据需要做特定处理
}
1、生成一个Parser
a.通过url提取网络上的网页
复制代码 代码如下:
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地网页文件
通过读文件把网页文件转化成字符串;
复制代码 代码如下:
Parser parser=Parser.createParser(html,charset);
2、利用NodeFilter做一个filter
a.利用Tag Name
NodeFilter filter=new TagNameFilter("IMG");
b.利用Tag Class
NodeFilter filter = new NodeClassFilter(ImageTag.class);
3、通过匹配filter,得到所有符合条件的Tag
NodeList list=parser.extractAllNodesThat(filter);
for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合条件的Tag 内容
如果针对具体情况进行更加详细的处理,则:
复制代码 代码如下:
ImageTag imageTag=(ImageTag)list.elementAt(i);
…………
}
然后根据需要做相应的处理。
二、利用Visitor对网页进行分析
1、生成一个Parser
a.通过url提取网络上的网页
复制代码 代码如下:
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地网页文件
通过读文件把网页文件转化成字符串;
复制代码 代码如下:
Parser parser=Parser.createParser(html,charset);
2、用visitor访问页面
复制代码 代码如下:
ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();
parser.visitAllNodesWith(visitor);
3、通过特定的visitor得到符合条件的Tag
复制代码 代码如下:
Node[] nodes=visitor.getTags();
for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];
…………
//根据需要做特定处理
}
您可能感兴趣的文章:
- 使用httpclient实现免费的google翻译api
- httpclient模拟登陆具体实现(使用js设置cookie)
- Android 中HttpURLConnection与HttpClient使用的简单实例
- Android下通过httpClient发送GET和POST请求的实例代码
- 探讨:使用httpClient在客户端与服务器端传输对象参数的详解
- Android HttpClient GET或者POST请求基本使用方法
- C# HttpClient Cookie验证解决方法
- AndroidHttpClient使用Cookie应用分析
- ASP.NET MVC Web API HttpClient简介
- httpclient重定向之后获取网址信息示例