问题标签 [crawler4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用 crawler4j 提取页面上的所有链接?
我正在实现一个网络爬虫,我正在使用 Crawler4j 库。我没有得到网站上的所有链接。我尝试使用 Crawler4j 提取一页上的所有链接,但错过了一些链接。
Crawler4j 版本: crawler4j-3.3
我使用的网址:http://testsite2012.site90.com/frontPage.html
此页面上的链接数:几乎 60 和其中 4-5 是重复的
crawler4j 给出的链接数:23
这是页面上的 URL 列表,这是 Crawler4j 给出的 URL 列表。
我查看了 crawler4j 使用的“HtmlContentHandler.java”文件来提取链接。在此仅提取与“src”和“href”链接相关的链接。
我发现这些文件之间的区别。Crawler4j 缺少与“src”或“href”属性无关且位于“脚本”标签下的链接。 这是 crawler4j 没有抓取的链接列表。
如何提取此页面上的所有链接?我需要在 HTML 解析页面上进行字符串操作(例如查找 'http' )还是应该更改 'HtmlContentHandler.java' 文件的代码?
哪个是最好的方法?
即使我进行字符串操作并提取此页面上的所有链接,但 Crawler4j 正在使用自己爬取的链接来爬取网站,在这种情况下它不会错过一些页面吗?
java - 如何在运行时在 Crawler4j 中添加种子?
我正在使用 crawler4j,我需要在运行时添加链接。比方说,我添加了一个种子“LinkA”,crawler4j 开始抓取它。在程序运行时,我想再添加一个种子“LinkB”。可以做到吗?如果是,如何?
提前致谢。
java - 控制要在运行时抓取的 URL 列表
在 crawler4j 中,我们可以重写一个函数boolean shouldVisit(WebUrl url)
并通过返回“true”和“false”来控制是否应该允许抓取特定的 url。
但是我们可以在运行时添加 URL 吗?如果是,有什么方法可以做到这一点?目前我可以在程序开头使用addSeed(String url)
函数start(BasicCrawler.class, numberOfCrawlers)
在CrawlController
类之前添加 URL,如果我尝试使用添加新 url addSeed(String url)
,它会给出错误。这是错误图像。
任何帮助将不胜感激,如果需要有关项目的更多详细信息来回答问题,请告诉我。
scala - 在 Play 控制台中选择性地禁用 log4j 调试日志
我有一个 Play 2.0 应用程序,play console
从命令行运行。在我使用的一个库中的某个地方,它使用log4j
并开始流式传输调试输出[crawler4j][1]
,我试图弄清楚如何在播放控制台中选择性地禁用该输出。我尝试更改以下内容application.conf
但logger.xml
没有任何运气
这是流式调试日志的示例
需要明确的是,当我从命令行运行 Play 应用程序时会强制执行日志设置,而当我从命令行运行它时,play console
不会强制执行设置。
web-crawler - 如何抓取我的网站以检测 404/500 错误?
是否有任何快速(可能是多线程)的方式来抓取我的网站(单击所有本地链接)以查找 404/500 错误(即确保 200 响应)?
我还希望能够将其设置为仅单击每种类型的链接中的 1 个。因此,如果我有 1000 个类别页面,它只会点击进入一个。
http://code.google.com/p/crawler4j/是一个不错的选择吗?
我想要一些超级容易设置的东西,而且我更喜欢 PHP 而不是 Java(尽管如果 Java 快得多,那也可以)。
crawler4j - crawler4j 爬取 url 列表而不爬取整个网站
我有一个需要抓取的网址列表。是否可以仅抓取网页列表而不进行深度抓取。如果我将 url 添加为种子,它会以完整的深度抓取整个网站。
java - crawler4j CrawelController 类中的 NoSuchMethodError
我正在使用此处给出的示例并包含来自[此处](http://code.google.com/p/crawler4j/downloads/list)的必要文件(crawler4j-3.3.zip &crawler4j-3.x-dependencies.zip)我的构建路径和运行路径。
我收到此错误:
Exception in thread "main" java.lang.NoSuchMethodError: com.sleepycat.je.EnvironmentConfig.setAllowCreate(Z)Lcom/sleepycat/je/EnvironmentConfig;
at edu.uci.ics.crawler4j.crawler.CrawlController.<init>(CrawlController.java:90)
at edu.uci.ics.crawler4j.examples.basic.BasicCrawlController.main(BasicCrawlController.java:100)
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
.
我无法理解错误原因,因为此文件中有必需的功能,请参见第 75 行。
请帮帮我。我在 Java 方面没有太多专业知识。难道这个问题和这个有关。如果是,如何解决。
java - 我应该使用什么 html 解析器?
我正在开发一个需要解析 HTML 文档的产品。我寻找 Jericho、TagSoup、Jsoup 和 Crawl4J。我应该使用哪个解析器来解析 HTML,因为我需要使用石英在多线程环境中运行此进程?
如果一次有 10 个线程在内存中运行,那么我需要一个消耗更少内存的 API。在杰里科,我在某处读到它是基于文本的搜索 API,并且消耗的内存更少。我对吗?或者我应该去其他的,为什么?
java - Java - Eclipse - 声明的包“edu.uci.ics.crawler4j.examples.basic”与预期的包“”不匹配
我正在尝试为Crawler4j设置示例代码,但 Eclipse 抛出了一个我不理解的错误。错误是:
路径“edu.uci.ics.crawler4j.examples.basic”在那里并且正确。