问题标签 [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.
dynamic-data - 在 Crawler4J 中从数据库中动态添加种子
我正在尝试从 csv 文件中读取种子 URL 列表,并使用以下代码将它们加载到爬网控制器中:
我从控制台收到的输出如下:
在启动 controller.start 之前,我是否遗漏了一些允许动态添加种子的东西?
上面的代码中省略了爬虫数量的其余部分以及爬虫控制器中 crawler4j 的所有必要内容,以使其简短易读。
java - 使用 crawler4j 时如何解析 html
最近,我不得不用开源项目crawler4j爬取一些网站。但是,crawler4j没有提供任何api可供使用。现在,我遇到了一个问题,我如何用crawler4j提供的函数和类来解析html并找到像我们使用 jquery 一样的元素
java - 使用java解析robot.txt并识别是否允许url
我目前在应用程序中使用 jsoup 来解析和分析网页。但我想确保我遵守 robots.txt 规则并且只访问允许的页面。
我很确定 jsoup 不是为此而设计的,它完全是关于网络抓取和解析的。所以我打算有一个函数/模块,它应该读取域/站点的robot.txt,并确定我要访问的url是否被允许。
我做了一些研究,发现了以下内容。但我不确定这些,所以如果有人做涉及robot.txt解析的同类项目,那就太好了,请分享你的想法和想法。
http://sourceforge.net/projects/jrobotx/
https://code.google.com/p/crawler-commons/
http://code.google.com/p/crowl/source/browse/trunk/Crow/src/org/crow/base/Robotstxt.java?r=12
java - crawler4j 重新抓取一个无法正常工作的网站
我正在使用 crawler4j 库来爬取一些网站,但是当我调用两次该过程时出现问题。它只适用于第一次。第二次没有给出任何错误,但它什么也不做。
我认为图书馆正在保存抓取的网址,这就是我不能打电话的原因。
我在这里看到了一些信息,但不是解决方案...
http://code.google.com/p/crawler4j/wiki/FrequentlyAskedQuestions
提前致谢,
冬眠者。
java - 将 URL 限制为仅种子 URL 域 crawler4j
我希望 crawler4j 以它们仅属于种子域的方式访问页面。种子中有多个域。我该怎么做?
假设我要添加种子 URL:
- www.google.com
- www.yahoo.com
- www.wikipedia.com
shouldVisit()
现在我开始爬网,但我希望我的爬虫只访问以上三个域中的页面(就像)。显然有外部链接,但我希望我的爬虫仅限于这些域。子域、子文件夹都可以,但不在这些域之外。
java - 在 Crawler4j 中循环调用 Controller.Start?
我在这里问了一个问题。但这是另一个听起来相似的问题。
使用 crawler4j,我想爬取多个限制域名的种子 URL(即在 shouldVisit 中的域名检查)。这是一个如何做到这一点的例子。简而言之,您使用 customData 设置域名列表,然后将其传递给爬虫类(来自控制器),在 shouldVisit 函数中,我们循环访问此数据(这是一个列表,请参见链接的 url)以查看域名是否存在列表,如果是,则返回 true。
这有一个小故障。如果 google.com 和 yahoo.com 在种子 url 域列表的名称中,并且 www.yahoo.com/xyz 链接到 www.google.com/zyx ,它将抓取该页面,因为 www.google.com 在那里在我们的访问域列表中。此外,如果种子 url 的数量很大(数千个),shouldVisit 中的 for 循环可能会很重,并且它也会消耗一些内存。
为了解决这个问题,我可以考虑遍历种子 URL。这可能是这样的:
我不确定这是否是一个糟糕的主意,但在性能方面这样做有什么好处/坏处吗?其他顾虑?
编辑 :
我对其进行了测试,似乎这种方法消耗了太多时间(可能是在每个循环中打开和关闭控制器的实例。)希望有其他解决方案。
crawler4j - crawler4j 打印大量的系统输出堆栈
我开始使用 Crawler4j 并玩了一段时间的 BasicCrawler 示例。我删除了 BasicCrawler.visit() 方法的所有输出。然后我添加了一些我已经拥有的 url 处理。当我现在启动程序时,它突然打印出大量我并不真正需要的内部处理信息。请参阅下面的示例
有没有办法禁用所有输出?或者有谁知道是什么原因造成的?这甚至可能是我应该作为问题发布给社区的错误吗?
谢谢你的时间
java - Crawler4j ImageCrawler String args
I´m trying to start the crawler4j example of: crawler4j
When I start the ImageCrawlController I allready fail by the first step args.length < 3, because its 0. How can I make sure, that args is bigger then 3?
java - crawler4j 获取完整的父列表
我是 crawler4j 的新手。我将网站爬网到一定深度并找到了我搜索的内容。我现在要做的是追溯我的步骤并找出我是如何进入这个页面的。我需要一个链接列表,这些链接将我带到我正在寻找的内容所在的页面。
我的尝试是更改爬虫中的访问方法
这只会给我一个父 url 的字符串。
只给我父的文档ID,但我怎样才能找到这个页面的父?
谢谢!
java - 网店请求中的另一个用户代理字符串是否会更改网店回答的内容?
我们想创建一个 java 爬虫 (crawler4j),它使用许多产品 EAN 与网上商店的主机合作,从一些已定义的网上商店收集价格、图片、产品描述等信息。这些信息应存储在 MSSQL 数据库中。到目前为止,我们已经成功地完成了一些关于从网站抓取图像的测试。
关键是,网店发送回浏览器的 html 页面不包含 ean。但是网上商店会为每个新请求生成 html 代码。
所以基本上可以根据请求User-Agent-String获取其他内容??我们是否只需要在用户代理字符串中包含“bot”或者获取我们想要的内容的常用方法是什么?