小编Ama*_*mar的帖子

使用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万
查看次数

使用Java在MongoDB中创建数据库用户

我是MongoDB的新手.我正在尝试通过Java Driver在MongoDB中为数据库创建用户.我使用的是mongo-java-driver 3.0.1版本.我在谷歌搜索,我没有找到相关的答案.我看到mongo-java-driver 2.13.0中有直接方法,但在最新版本中已弃用.我尝试使用以下代码来创建用户,但我得到了异常.

码:

MongoClient mongoClient = new MongoClient("127.0.0.1","27017");
MongoDatabase mongoDatabase = this.mongoClient
                        .getDatabase(doc);
BasicDBObject commandArguments = new BasicDBObject();
commandArguments.put("user", mongoDatabase.getName());
commandArguments.put("pwd", "Cip#erCloud@123");
String[] roles = { "readWrite" };
commandArguments.put("roles", roles);
BasicDBObject command = new BasicDBObject("createUser",
                        commandArguments.toString());
mongoDatabase.runCommand(command);
Run Code Online (Sandbox Code Playgroud)

例外:

com.mongodb.MongoCommandException: Command failed with error 2: 'Must provide a 'pwd' field for all user documents, except those with '$external' as the user's source db' on server 127.0.0.1:27017. 
The full response is { "ok" : 0.0, "errmsg" …
Run Code Online (Sandbox Code Playgroud)

java mongodb

6
推荐指数
2
解决办法
4237
查看次数

Hbase Java API示例

我对HBase开发非常陌生。我正在跟踪链接。我正在使用Hbase-1.1.2版本。使用示例代码时,我会收到警告。不推荐使用几种方法(例如,新的HBaseAdmin(conf);)。我看到HBaseAdmin类具有3个构造函数。在3个构造函数中,有2个已弃用。只有一个接受“ ClusterConnection”作为参数的构造函数。我不知道我是否遵循正确的链接来使用HBase。可以使用最新的hbase库提供示例示例吗?我将HBase作为独立模式运行。

java hadoop hbase

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

关于 DBPedia Access

我对 DBPedia 很陌生,我不知道如何以及从哪里开始。我对此做了一些研究,从中我了解到我们可以使用 SPARQL 查询语言(Apache Jena)访问数据。所以我开始下载Ontology Infobox Properties的 .ttl 文件。之后,我提取了这个文件,它几乎有 2GB。我的问题由此开始 没有一个编辑器无法打开这个文件。我访问此文件的示例程序在这里...

public class OntologyExample {
public static void main(String[] args) {
    FileManager.get().addLocatorClassLoader(
            OntologyExample.class.getClassLoader());
    Model model = FileManager
            .get()
            .loadModel("D:\\Dell XPS\\DBPEDIA\\instance_types_en.ttl\\instance_types_en.ttl");


    String q = "SELECT * WHERE { "
            + "?e <http://dbpedia.org/ontology/series> <http://dbpedia.org/resource/The_Sopranos>  ."
            + "?e <http://dbpedia.org/ontology/releaseDate> ?date"
            + "?e <http://dbpedia.org/ontology/episodeNumber>  ?number   "
            + "?e <http://dbpedia.org/ontology/seasonNumber>   ?season"
            + " }" + "ORDER BY DESC(?date)";

    Query query = QueryFactory.create(q);
    QueryExecution queryExecution = QueryExecutionFactory.create(query,
            model);
    ResultSet resultSet = queryExecution.execSelect();
    ResultSetFormatter.out(System.out, …
Run Code Online (Sandbox Code Playgroud)

sparql jena dbpedia

3
推荐指数
1
解决办法
1420
查看次数

找出缺少的属性资源

我对这个语义网很新,我正在用Sparql和DBPEDIA做一些实验.我编写了一个查询来查找具有firstName(givenName)和lastName(surName)的所有记录.

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
select count(DISTINCT ?x) where {
?x foaf:givenName ?y;
foaf:surname ?z.
}
Run Code Online (Sandbox Code Playgroud)

当我运行此查询时,我得到了9,80,000条记录.但是当我运行单个查询(对于firstName和lastName)时,我获得了firstName的9,92,000条记录和lastName的9,80,000条记录.

在这里我的问题是如何获得只有firstName但不是lastName的资源...... ???

sparql dbpedia

3
推荐指数
1
解决办法
556
查看次数

如何从SPARQL中的DBpedia中检索空白节点,并使用DISTINCT解释减少的结果

我想要使​​用SPARQL查询检索空白节点.我使用DBpedia作为我的数据集.例如,当我使用以下查询时,我得到了大约340万个结果.

PREFIX prop:<http://dbpedia.org/property/>
select count(?x) where {
?x prop:name ?y
}
Run Code Online (Sandbox Code Playgroud)

SPARQL结果

当我使用DISTINCT解决方案修饰符时,我得到大约220万个结果.

PREFIX prop:<http://dbpedia.org/property/>
select count(DISTINCT ?x) where {
?x prop:name ?y
}
Run Code Online (Sandbox Code Playgroud)

SPARQL结果

我有两个问题:

  1. 是否在第二个查询中删除了120万条记录重复或空白节点或其他内容?
  2. 如何从DBpedia中检索空白节点及其值?

rdf semantic-web sparql dbpedia blank-nodes

2
推荐指数
1
解决办法
524
查看次数