标签: crawler4j

使用java进行Web爬行(支持Ajax/JavaScript的页面)

我对这个网络抓取非常新.我正在使用crawler4j来抓取网站.我通过抓取这些网站收集所需的信息.我的问题是我无法抓取以下网站的内容.http://www.sciencedirect.com/science/article/pii/S1568494612005741.我想从上述网站抓取以下信息(请查看附带的屏幕截图).

在此输入图像描述

如果您观察到附加的屏幕截图,则它有三个名称(在红色框中突出显示).如果单击其中一个链接,您将看到一个弹出窗口,该弹出窗口包含有关该作者的全部信息.我想抓取该弹出窗口中的信息.

我使用以下代码来抓取内容.

public class WebContentDownloader {

private Parser parser;
private PageFetcher pageFetcher;

public WebContentDownloader() {
    CrawlConfig config = new CrawlConfig();
    parser = new Parser(config);
    pageFetcher = new PageFetcher(config);
}

private Page download(String url) {
    WebURL curURL = new WebURL();
    curURL.setURL(url);
    PageFetchResult fetchResult = null;
    try {
        fetchResult = pageFetcher.fetchHeader(curURL);
        if (fetchResult.getStatusCode() == HttpStatus.SC_OK) {
            try {
                Page page = new Page(curURL);
                fetchResult.fetchContent(page);
                if (parser.parse(page, curURL.getURL())) {
                    return page;
                }
            } catch (Exception e) {
                e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

java web-crawler crawler4j

11
推荐指数
2
解决办法
2万
查看次数

Crawler4j与Jsoup一起用于Java中的页面爬行和解析

我想获取页面的内容并提取其中的特定部分.据我所知,至少有两种解决方案可以完成这样的任务:Crawler4jJsoup.

它们都能够检索页面的内容并提取它的子部分.我唯一不明白的是它们之间的区别是什么?有一个类似的问题,标记为已回答:

Crawler4j是一个爬虫,Jsoup是一个解析器.

但我刚刚检查过,除了解析功能外,Jsoup 1.8.3还能够抓取页面,而Crawler4j不仅可以抓取页面而且可以解析其内容.

那么,请你澄清Crawler4j和Jsoup之间的区别吗?

java web-crawler html-parsing jsoup crawler4j

9
推荐指数
1
解决办法
3817
查看次数

XPath follow-sibling用于爬行而不返回兄弟

我正在尝试创建一个爬虫来从供应商网站中提取一些我可以针对我们的内部属性数据库进行审核的属性数据,并且是import.io的新手.我观看了一堆视频,但虽然我的语法似乎是正确的,但我的手动xpath覆盖不会返回属性值.我有以下示例html代码:

<table>
<tbody><tr class="oddRow">
<td class="label">&nbsp;Adhesive Type&lrm;</td><td>&nbsp;Epoxy&lrm;
</td>
</tr>
<tr>
<td class="label">&nbsp;Applications&lrm;</td><td>&nbsp;Hard Disk Drive Component Assembly&lrm;
</td>
</tr>
<tr class="oddRow">
<td class="label">&nbsp;Brand&lrm;</td><td>&nbsp;Scotch-Weld&lrm;
</td>
</tr>
<tr>
<td class="label">&nbsp;Capabilities&lrm;</td><td>&nbsp;Sustainability&lrm;
</td>
</tr>
<tr class="oddRow">
<td class="label">&nbsp;Color&lrm;</td><td>&nbsp;Clear Amber&lrm;
</td>
Run Code Online (Sandbox Code Playgroud)

我试图在sibling语句之后写一个xpath来通过import.io爬虫抓取"Color".选择"Color"时的xpath代码是:

//*[@id="attributeList"]/table/tbody/tr[5]/td[1]
Run Code Online (Sandbox Code Playgroud)

我试过用:

//*[@id="attributeList"]/table/tbody/tr/td[.="Color"]/following-sibling::td
Run Code Online (Sandbox Code Playgroud)

但它并没有从表中获取颜色属性值.我不确定它是否与奇数和偶数行类有关?当我看到HTML时,它似乎具有逻辑意义; color是"Color",属性值位于以下td括号中.

xpath crawler4j import.io

7
推荐指数
1
解决办法
236
查看次数

为什么crawler4j示例会出错?

我正在尝试使用crawler4j中的基本爬虫示例.我把代码从crawler4j网站在这里.

package edu.crawler;

import edu.uci.ics.crawler4j.crawler.Page;
import edu.uci.ics.crawler4j.crawler.WebCrawler;
import edu.uci.ics.crawler4j.parser.HtmlParseData;
import edu.uci.ics.crawler4j.url.WebURL;
import java.util.List;
import java.util.regex.Pattern;
import org.apache.http.Header;

public class MyCrawler extends WebCrawler {

    private final static Pattern FILTERS = Pattern.compile(".*(\\.(css|js|bmp|gif|jpe?g" + "|png|tiff?|mid|mp2|mp3|mp4"
                    + "|wav|avi|mov|mpeg|ram|m4v|pdf" + "|rm|smil|wmv|swf|wma|zip|rar|gz))$");

    /**
     * You should implement this function to specify whether the given url
     * should be crawled or not (based on your crawling logic).
     */
    @Override
    public boolean shouldVisit(WebURL url) {
            String href = url.getURL().toLowerCase();
            return !FILTERS.matcher(href).matches() && href.startsWith("http://www.ics.uci.edu/");
    }

    /**
     * …
Run Code Online (Sandbox Code Playgroud)

java crawler4j

6
推荐指数
1
解决办法
4552
查看次数

Groovy中的Crawler(JSoup VS Crawler4j)

我希望在Groovy中开发一个Web爬虫(使用Grails框架和MongoDB数据库),它能够抓取网站,创建站点URL列表及其资源类型,内容,响应时间和涉及的重定向数量.

我正在讨论JSoup vs Crawler4j.我已经阅读了他们基本上做了什么,但我无法理解两者之间的区别.任何人都可以建议哪个更适合上述功能?或者比较两者完全不正确?

谢谢.

web-crawler jsoup crawler4j

6
推荐指数
1
解决办法
1500
查看次数

设置crawler4j的指南

我想设置抓取工具抓取一个网站,比如说博客,然后只获取网站中的链接并将链接粘贴到文本文件中.你可以一步一步地指导我设置爬虫吗?我正在使用Eclipse.

java web-crawler crawler4j

5
推荐指数
1
解决办法
2548
查看次数

如何让crawler4j更快地从页面下载所有链接?

我所做的是:
- 抓取页面
- 获取页面的所有链接,将它们放入列表中
- 启动一个新的爬虫,访问列表的每个链接
- 下载它们

必须有一个更快的方式,我可以在访问页面时直接下载链接?谢谢!

java crawler4j

5
推荐指数
1
解决办法
6500
查看次数

语法错误,插入“... VariableDeclaratorId”完成FormalParameterList

我在使用此代码时遇到了一些问题:

import edu.uci.ics.crawler4j.crawler.CrawlConfig;
import edu.uci.ics.crawler4j.crawler.CrawlController;
import edu.uci.ics.crawler4j.fetcher.PageFetcher;
import edu.uci.ics.crawler4j.robotstxt.RobotstxtConfig;
import edu.uci.ics.crawler4j.robotstxt.RobotstxtServer;

public class Controller {

     String crawlStorageFolder = "/data/crawl/root";
     int numberOfCrawlers = 7;

     CrawlConfig config = new CrawlConfig();
     config.setCrawlStorageFolder(crawlStorageFolder);
     /*
      * Instantiate the controller for this crawl.
      */
     PageFetcher pageFetcher = new PageFetcher(config);
     RobotstxtConfig robotstxtConfig = new RobotstxtConfig();
     RobotstxtServer robotstxtServer = new RobotstxtServer(robotstxtConfig, pageFetcher);
     CrawlController controller = new CrawlController(config, pageFetcher, robotstxtServer);

     /*
      * For each crawl, you need to add some seed urls. These are the first
      * URLs that …
Run Code Online (Sandbox Code Playgroud)

java web-crawler crawler4j

5
推荐指数
1
解决办法
4万
查看次数

调试带有IntelliJ的Maven依赖源

我正在IntelliJ中调试Maven项目,并且试图弄清楚如何进入pom.xml中指定的依赖项之一的源代码。具体来说,我的项目依赖于Crawler4J,我从Parser.parse()看到一些奇怪的行为,并且我想采用该方法。我尝试用源设置本地克隆的Git存储库,并通过“项目结构”下的“源”选项将其附加,但是我仍然无法进入已编译的Crawler4J方法。作为一个长期的C#开发人员(和相对的Java nub),我理想中希望使用的是.NET Reflector的功能,以便在调试时即时进行反编译,但是附加源代码的方式就足够了。

java debugging intellij-idea maven crawler4j

4
推荐指数
1
解决办法
5254
查看次数

使用java解析robot.txt并确定是否允许使用url

我目前在应用程序中使用jsoup来解析和分析网页.但我想确保我遵守robot.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 web-scraping jsoup crawler4j

4
推荐指数
1
解决办法
5462
查看次数