我尝试修改代码crawler4j-快速入门示例
我想抓取以下链接
https://www.google.com/search?biw=1366&bih=645&tbm=nws&q=%22obama%22&oq=%22obama%22&gs_l=serp.3..0l5.825041.826084.0.826833.5.5.0.0.0.0.187.572.2j3.5.0....0...1c.1.64.serp..0.3.333...0i13k1.Tmd9nARKIrU
这是一个Google新闻搜索链接,关键词是obama
我试着修改mycrawler.java
@Override
public boolean shouldVisit(Page referringPage, WebURL url) {
String href = url.getURL().toLowerCase();
return !FILTERS.matcher(href).matches()
&& href.startsWith("https://www.google.com/search?biw=1366&bih=645&tbm=nws&q=%22obama%22&oq=%22obama%22&gs_l=serp.3..0l5.825041.826084.0.826833.5.5.0.0.0.0.187.572.2j3.5.0....0...1c.1.64.serp..0.3.333...0i13k1.Tmd9nARKIrU/");
}
同时,controller.java
/*
* For each crawl, you need to add some seed urls. These are the first
* URLs that are fetched and then the crawler starts following links
* which are found in these pages
*/
//controller.addSeed("http://www.ics.uci.edu/~lopes/");
// controller.addSeed("http://www.ics.uci.edu/~welling/");
controller.addSeed("https://www.google.com/search?biw=1366&bih=645&tbm=nws&q=%22obama%22&oq=%22obama%22&gs_l=serp.3..0l5.825041.826084.0.826833.5.5.0.0.0.0.187.572.2j3.5.0....0...1c.1.64.serp..0.3.333...0i13k1.Tmd9nARKIrU");
/*
* Start the crawl. This is a blocking operation, meaning that your code
* will reach the line after this only when crawling is finished.
*/
controller.start(MyCrawler.class, numberOfCrawlers);
然后显示错误
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
BUILD SUCCESSFUL (total time: 43 seconds)
我的代码修改错了吗?
<标题> 更新
我尝试使用其他的url,而不是谷歌搜索链接。它的工作。我猜它无法抓取谷歌搜索链接。有什么解决办法吗?
标题>您收到的错误与您的代码修改无关。相反,它与不正确的配置和丢失的jar有关。
SLF4J绑定是SLF4J执行日志记录所必需的,否则它将使用NOP日志记录器实现,正如您在错误消息中看到的那样。
要解决这个问题,在您的项目中添加一个SLF4J绑定jar文件,例如slf4j-simple-<version>.jar
您可以参考SLF4J手册获得更详细的解释。
我不认为你被允许抓取谷歌搜索结果基于谷歌的robots.txt,禁止他们的网站与后缀/search
被抓取,也在他们的服务条款。
不要滥用我们的服务。例如,不要干涉我们的服务,或者尝试使用接口以外的方法访问它们以及我们提供的说明。您只能使用我们的服务法律允许的,包括适用的出口和再出口管制法律法规。我们可暂停或停止向以下人士提供服务如果您不遵守我们的条款或政策,或者如果我们遵守我们的条款或政策调查涉嫌不当行为
你可以考虑使用Google的自定义搜索API来符合他们的服务条款。