TA的每日心情 | 擦汗 2022-8-30 09:02 |
---|
签到天数: 2 天 连续签到: 2 天 [LV.1]测试小兵
|
2#
楼主 |
发表于 2018-3-15 16:54:26
|
只看该作者
- 4、里面用了一个异常类:RuleException.java
- [java] view plain copy
- package com.zhy.spider.rule;
- public class RuleException extends RuntimeException
- {
- public RuleException()
- {
- super();
- // TODO Auto-generated constructor stub
- }
- public RuleException(String message, Throwable cause)
- {
- super(message, cause);
- // TODO Auto-generated constructor stub
- }
- public RuleException(String message)
- {
- super(message);
- // TODO Auto-generated constructor stub
- }
- public RuleException(Throwable cause)
- {
- super(cause);
- // TODO Auto-generated constructor stub
- }
- }
- 5、最后是测试了:这里使用了两个网站进行测试,采用了不同的规则,具体看代码吧
- [java] view plain copy
- package com.zhy.spider.test;
- import java.util.List;
- import com.zhy.spider.bean.LinkTypeData;
- import com.zhy.spider.core.ExtractService;
- import com.zhy.spider.rule.Rule;
- public class Test
- {
- @org.junit.Test
- public void getDatasByClass()
- {
- Rule rule = new Rule(
- "http://www1.sxcredit.gov.cn/public/infocomquery.do?method=publicIndexQuery",
- new String[] { "query.enterprisename","query.registationnumber" }, new String[] { "兴网","" },
- "cont_right", Rule.CLASS, Rule.POST);
- List<LinkTypeData> extracts = ExtractService.extract(rule);
- printf(extracts);
- }
- @org.junit.Test
- public void getDatasByCssQuery()
- {
- Rule rule = new Rule("http://www.11315.com/search",
- new String[] { "name" }, new String[] { "兴网" },
- "div.g-mn div.con-model", Rule.SELECTION, Rule.GET);
- List<LinkTypeData> extracts = ExtractService.extract(rule);
- printf(extracts);
- }
- public void printf(List<LinkTypeData> datas)
- {
- for (LinkTypeData data : datas)
- {
- System.out.println(data.getLinkText());
- System.out.println(data.getLinkHref());
- System.out.println("***********************************");
- }
- }
- }
复制代码 [java] view plain copy
深圳市网兴科技有限公司
http://14603257.11315.com
***********************************
荆州市兴网公路物资有限公司
http://05155980.11315.com
***********************************
西安市全兴网吧
#
***********************************
子长县新兴网城
#
***********************************
陕西同兴网络信息有限责任公司第三分公司
#
***********************************
西安高兴网络科技有限公司
#
***********************************
陕西同兴网络信息有限责任公司西安分公司
#
***********************************
最后使用一个Baidu新闻来测试我们的代码:说明我们的代码是通用的。
[java] view plain copy
/**
* 使用百度新闻,只设置url和关键字与返回类型
*/
@org.junit.Test
public void getDatasByCssQueryUserBaidu()
{
Rule rule = new Rule("http://news.baidu.com/ns",
new String[] { "word" }, new String[] { "支付宝" },
null, -1, Rule.GET);
List<LinkTypeData> extracts = ExtractService.extract(rule);
printf(extracts);
}
我们只设置了链接、关键字、和请求类型,不设置具体的筛选条件。
结果:有一定的垃圾数据是肯定的,但是需要的数据肯定也抓取出来了。我们可以设置Rule.SECTION,以及筛选条件进一步的限制。
[html] view plain copy
按时间排序
/ns?word=支付宝&ie=utf-8&bs=支付宝&sr=0&cl=2&rn=20&tn=news&ct=0&clk=sortbytime
***********************************
x
javascript:void(0)
***********************************
支付宝将联合多方共建安全基金 首批投入4000万
http://finance.ifeng.com/a/20140409/12081871_0.shtml
***********************************
7条相同新闻
|
|