Java 如何调整我想要在crawler4j中爬行的URL

Java 如何调整我想要在crawler4j中爬行的URL,java,parsing,web-crawler,jsoup,crawler4j,Java,Parsing,Web Crawler,Jsoup,Crawler4j,我试图修改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.Tmd9nARKIr

我试图修改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
这是一个谷歌新闻搜索链接,关键词为“奥巴马”

我试图修改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 logger实现,正如您在错误消息中看到的那样

要解决此问题,请将SLF4J绑定jar文件添加到项目中,例如
SLF4J simple-.jar

有关更详细的解释,请参阅

更新

我不认为你被允许对谷歌搜索结果进行爬网,因为这样就不允许对带有后缀
/search
的网站进行爬网,也不允许在他们的网站中进行爬网

不要滥用我们的服务。例如,不要干涉我们的工作 服务或尝试使用接口以外的方法访问它们 以及我们提供的说明。您只能在以下情况下使用我们的服务: 法律允许,包括适用的出口和再出口管制 法律法规。我们可能会暂停或停止向客户提供服务 如果您不遵守我们的条款或政策,或者如果我们 调查涉嫌不当行为


您可以考虑使用与它们的TOS一致性。

错误说明:<代码> org。SLF4j.IMP.StasLogLoggBeld< <代码>未正确加载。您是否正确导入了所有依赖项?@Samuel Kok您能详细说明一下吗?没有可用的slf4j绑定。通常它是由缺少jar或配置错误引起的。我尝试再次添加jar文件。我使用示例url进行测试。它可以工作。此外,我尝试使用另一个url进行测试。它也可以工作。我想这与URL问题有关。(谷歌链接不起作用)至于抓取谷歌搜索结果,我不认为你可以通过查阅他们的TOS和政策来检查这样做是否合法。是的,我读了谷歌的机器人。它说它阻止了抓取程序。我尝试了雅虎搜索,但它也不起作用。我尝试了一些由谷歌或雅虎提供的搜索引擎的新闻网站。它们也不起作用。对于我的项目,我想抓取一些特定的对象,比如100篇“奥巴马”新闻文章。我试图抓取新闻搜索结果网站,以及谷歌、雅虎新闻搜索引擎。他们都不成功。有什么想法可以提供吗?我建议你要么搜索允许爬行的新闻来源,要么寻找爬行提要或推文。希望这有帮助。
crawler4j
尊重爬虫伦理,所以塞缪尔·科克是对的。