我是Java的新手。
现在,我想使用Google新闻搜索检索新闻文章内容-keyword:" toy"从第1页到第10页。
这是从第1页 - 第10页检索100个新闻内容。(假设每页有10篇新闻文章)
读完之后 Crawler4j vs. Jsoup for the pages crawling and parsing in Java
我决定尽可能使用Crawler4j
提供基本URI(主页)
从每个页面获取所有URI并检索其中的内容 太。
为您检索的每个URI递归移动。
仅检索此网站内的URI的内容(那里 可能 外部URI引用另一个网站,我们不需要那些)。
在我的情况下,我可以将谷歌搜索页面从p1发送到p10。如果我设置intnumberOfCrawlers=1
然而,当我尝试Crawler4j的快速启动时example
它只返回从原始链接中找到的外部链接。 像这样:
URL: http://www.ics.uci.edu/~lopes/
Text length: 2619
Html length: 11656
Number of outgoing links: 38
URL: http://www.ics.uci.edu/~welling/
Text length: 4503
Html length: 23713
Number of outgoing links: 24
URL: http://www.ics.uci.edu/~welling/teaching/courses.html
Text length: 2222
Html length: 15138
Number of outgoing links: 33
URL: http://www.ics.uci.edu/
Text length: 3661
Html length: 51628
Number of outgoing links: 86
因此,我想我可以crawler4j
执行我提出的功能。或者我应该一起使用crawler4j
+ JSoup
吗?
答案 0 :(得分:4)
crawler4j
尊重履带式政治,例如robots.txt
。在您的情况下,此文件是以下one。
检查此文件显示,不允许抓取您给定的种子点:
Disallow: /search
因此,除非您修改classes以忽略robots.txt
,否则您将无法抓取指定的网站。但是,这不被认为是礼貌的,并且不符合爬虫道德规范。
答案 1 :(得分:0)
您的帖子中有很多问题我会尽力回答:
“是否可以通过Crawler4j检索网站内容?”
“因此,我想知道crawler4j可以执行我提出的功能。或者我应该使用crawler4j + JSouptogether吗?”
“它只返回从原始链接中找到的外部链接。就像这些”
BasicCrawler
中,您需要在此处添加允许网址return href.startsWith("http://www.ics.uci.edu/");
修改以包含更多BasicCrawlController
中,您需要在config.setMaxDepthOfCrawling(2);