通过htmlParser抓取百度相关内容
2008-05-13 11:31
561 查看
最近这两天我做了个最新电影网的视频网站,主要是从土豆抓取来的.所以内容页就是框架,不便于搜索的抓取。所以我就想加些相关内容,像这样的内容
由于我就是通过百度搜索关键字来填充内容。下面就是我通过htmlParser抓取的代码。
public class BaiduResultAction extends BaseAction
{
public static final Logger logger = Logger
.getLogger(BaiduResultAction.class);
/** *//**
* 组装新闻
*
* @param url
* @return
*/
public String compNews(String url)
{
String returnContent = null;
try
{
ParserModel parserModel = new ParserModel();
//table 的抓取标签
String content = "border=/"0/" cellpadding=/"0/" cellspacing=/"0/"";
parserModel.setContent(content);
NodeClassNameFilter contentNodeClassNameFilter = new NodeClassNameFilter(
TableTag.class, parserModel);
NodeList contentList = getAllNodeList(url,
contentNodeClassNameFilter);
// 对table的处理 只取第一个table中的一项记录
//如果全部抓取内容,则要去掉最后一个break;
for (int i = 1; i < contentList.size(); i++)
{
if (contentList.elementAt(i) instanceof TableTag)
{
TableTag tableContent = (TableTag) contentList
.elementAt(i);
int rowCount = tableContent.getRowCount();
TableRow[] arrRows = tableContent.getRows();
for (int j = 0; j < arrRows.length; j++)
{
TableRow tableRow = arrRows[j];
TableColumn[] arrColumm = tableRow.getColumns();
for (int k = 0; k < arrColumm.length; k++)
{
String columContent = arrColumm[k].toHtml();
if(columContent != null)
{
String[] split = columContent.split("<br>");
if(split.length>2)
returnContent = split[1].substring(0,split[1].length()-4);
}
break;
}
}
}
break;
}
} catch (IllegalArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnContent;
}
public static void main(String[] args) throws Exception
{
BaiduResultAction action = new BaiduResultAction();
//抓取sohu的内容.通过百度
String url = "http://www.baidu.com/s?wd=%BA%DA%BF%CD%B5%DB%B9%FAII+11%28112%29++site%3Asohu.com";
// String url = "http://bbs.hoopchina.com/htm_data/96/0712/274754.html";
// List<String> hrefList = sinaAction.parseLink(url, getIndexFilter());
/**//* logger.debug(sinaAction.compNews(url)); */
action.compNews(url);
}
}效果如下:http://www.tondou.cn/c/2008-05-12/314146 u
由于我就是通过百度搜索关键字来填充内容。下面就是我通过htmlParser抓取的代码。
public class BaiduResultAction extends BaseAction
{
public static final Logger logger = Logger
.getLogger(BaiduResultAction.class);
/** *//**
* 组装新闻
*
* @param url
* @return
*/
public String compNews(String url)
{
String returnContent = null;
try
{
ParserModel parserModel = new ParserModel();
//table 的抓取标签
String content = "border=/"0/" cellpadding=/"0/" cellspacing=/"0/"";
parserModel.setContent(content);
NodeClassNameFilter contentNodeClassNameFilter = new NodeClassNameFilter(
TableTag.class, parserModel);
NodeList contentList = getAllNodeList(url,
contentNodeClassNameFilter);
// 对table的处理 只取第一个table中的一项记录
//如果全部抓取内容,则要去掉最后一个break;
for (int i = 1; i < contentList.size(); i++)
{
if (contentList.elementAt(i) instanceof TableTag)
{
TableTag tableContent = (TableTag) contentList
.elementAt(i);
int rowCount = tableContent.getRowCount();
TableRow[] arrRows = tableContent.getRows();
for (int j = 0; j < arrRows.length; j++)
{
TableRow tableRow = arrRows[j];
TableColumn[] arrColumm = tableRow.getColumns();
for (int k = 0; k < arrColumm.length; k++)
{
String columContent = arrColumm[k].toHtml();
if(columContent != null)
{
String[] split = columContent.split("<br>");
if(split.length>2)
returnContent = split[1].substring(0,split[1].length()-4);
}
break;
}
}
}
break;
}
} catch (IllegalArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnContent;
}
public static void main(String[] args) throws Exception
{
BaiduResultAction action = new BaiduResultAction();
//抓取sohu的内容.通过百度
String url = "http://www.baidu.com/s?wd=%BA%DA%BF%CD%B5%DB%B9%FAII+11%28112%29++site%3Asohu.com";
// String url = "http://bbs.hoopchina.com/htm_data/96/0712/274754.html";
// List<String> hrefList = sinaAction.parseLink(url, getIndexFilter());
/**//* logger.debug(sinaAction.compNews(url)); */
action.compNews(url);
}
}效果如下:http://www.tondou.cn/c/2008-05-12/314146 u
相关文章推荐
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- PHP抓取百度搜索结果页面的【相关搜索词】并存储
- Python使用HTMLParser抓取网页内容
- 【转】C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- HTMLParser使用详解(4) - 通过Visitor访问内容
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- HTMLParser使用详解(4)- 通过Visitor访问内容
- 熊掌号SEO:如何让我的内容被百度抓取收录
- 通过代理服务器验证后在抓取网页内容
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- HTMLParser使用详解(4)- 通过Visitor访问内容
- 通过Url抓取网页内容
- 通过java.net.URL类抓取某个网页的内容
- 如何通过VC的 CHttpFile 抓取网页内容
- 通过urllib2抓取网页内容(1)
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- 网曝百度不顾robots协议擅自抓取微信内容
- HTMLParser使用详解(3)- 通过Filter访问内容
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- HTMLParser使用详解(3)- 通过Filter访问内容