相关文章推荐
豁达的钢笔  ·  ByteArrayInputStream ...·  9 月前    · 
淡定的萝卜  ·  Power ...·  10 月前    · 
刚毅的刺猬  ·  mysql ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I'm a new Java Dev.
I'm having troubles with JSoup. A few days I made a Web Crawler (with the sole purpose of practicing and learning something new) and it was working, bad due to errors in the code that I have to solve, but at least it ran well through the console. I mean, it wasn't giving the expected result, but running. But now I don't understand what happened and I have troubles related to compilation.

This is the error in the output:

Scanning for projects...
--------------< com.webcrawler.jsoupexample:jsoupexample >--------------
Building jsoupexample 1.0-SNAPSHOT
--------------------------------[ jar ]---------------------------------
--- maven-resources-plugin:2.6:resources (default-resources) @ jsoupexample ---
Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
Copying 0 resource
--- maven-compiler-plugin:3.1:compile (default-compile) @ jsoupexample ---
Changes detected - recompiling the module!
File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
Compiling 2 source files to C:\Users\**\**\**\**\**\web-crawler-jsoup-example-master\webcrawler\target\classes
-------------------------------------------------------------
COMPILATION ERROR : 
-------------------------------------------------------------
com/webcrawler/jsoupexample/ParserEngine.java:[3,17] package org.jsoup does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[4,23] package org.jsoup.nodes does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[5,23] package org.jsoup.nodes does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[6,24] package org.jsoup.select does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[22,9] cannot find symbol
  symbol:   class Document
  location: class com.webcrawler.jsoupexample.ParserEngine
com/webcrawler/jsoupexample/ParserEngine.java:[22,24] cannot find symbol
  symbol:   variable Jsoup
  location: class com.webcrawler.jsoupexample.ParserEngine
com/webcrawler/jsoupexample/ParserEngine.java:[23,9] cannot find symbol
  symbol:   class Elements
  location: class com.webcrawler.jsoupexample.ParserEngine
com/webcrawler/jsoupexample/ParserEngine.java:[25,14] cannot find symbol
  symbol:   class Element
  location: class com.webcrawler.jsoupexample.ParserEngine
8 errors 
-------------------------------------------------------------
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time:  3.465 s
Finished at: 2020-12-06T20:00:55-03:00
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jsoupexample: Compilation failure: Compilation failure: 
com/webcrawler/jsoupexample/ParserEngine.java:[3,17] package org.jsoup does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[4,23] package org.jsoup.nodes does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[5,23] package org.jsoup.nodes does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[6,24] package org.jsoup.select does not exist
com/webcrawler/jsoupexample/ParserEngine.java:[22,9] cannot find symbol
  symbol:   class Document
  location: class com.webcrawler.jsoupexample.ParserEngine
com/webcrawler/jsoupexample/ParserEngine.java:[22,24] cannot find symbol
  symbol:   variable Jsoup
  location: class com.webcrawler.jsoupexample.ParserEngine
com/webcrawler/jsoupexample/ParserEngine.java:[23,9] cannot find symbol
  symbol:   class Elements
  location: class com.webcrawler.jsoupexample.ParserEngine
com/webcrawler/jsoupexample/ParserEngine.java:[25,14] cannot find symbol
  symbol:   class Element
  location: class com.webcrawler.jsoupexample.ParserEngine
-> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

This is my pom.mxl

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.webcrawler.jsoupexample</groupId>
    <artifactId>jsoupexample</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>
    </dependencies>
</project>

And this is the class ParserEngine.java where I have error in the imports (before I didn't have this errors).

package com.webcrawler.jsoupexample;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; //this 4 imports has error now, days ago didn't have error
import java.io.IOException;
import java.util.ArrayList;
public class ParserEngine {
    private String baseUrl;
    private ArrayList<String> urlList;
    public ParserEngine(String baseUrl){
        this.baseUrl = baseUrl;
        this.urlList = new ArrayList<String>();
    public void crawl(String url) throws IOException {
        Document doc = Jsoup.connect(url).ignoreContentType(true).get();
        Elements links = doc.select("a[href]");
        //here I found the problem why the crawler doesn't work as I want,         
        //but it isn't my actual issue, i want to be able to run it again in console
        for (Element link : links) {
            String actualUrl = link.attr("abs:href"); 
            if (!urlList.contains(actualUrl) & actualUrl.startsWith(baseUrl)){
                print(" * a: <%s>  (%s)", actualUrl, trim(link.text(), 35));
                urlList.add(actualUrl);
                crawl(actualUrl);
    private static void print(String msg, Object... args) {
        System.out.println(String.format(msg, args));
    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width-1) + ".";
            return s;
    public String getBaseUrl(){
        return baseUrl;
    public void setBaseUrl(String url){
        baseUrl = url;
    public ArrayList<String> getUrlList(){
        return urlList;

And here is the Main.Java

package com.webcrawler.jsoupexample;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        String url = "http://elfreneticoinformatico.com";
        ParserEngine parser = new ParserEngine(url);
        parser.crawl(parser.getBaseUrl());
        System.out.println("Crawler finished. Total URLs: " + parser.getUrlList().size());

Can anyone help with this please?

If you are not using a decent Java IDE (Integrated Development Environment) I suggest that you do e.g. NetBeans, IntelliJ IDEA, maybe Eclipse. NetBeans can be easier to start with, because it can work directly with the Maven projects. IDEs can detect issues before you even do a build.

...update I've tried building it, with Maven clean and compile goals, and running it, with IntelliJ IDEA Community 2020.3 and in NetBeans 12.2, and ... it builds and runs fine, so I'm not sure what's up. NetBeans build output was:

cd P:\Users\infernoz\Documents\Java_Projects\infernoz\jsoup-question; "JAVA_HOME=C:\\Program Files\\AdoptOpenJDK\\jdk-8.0.275.1-hotspot" cmd /c "\"C:\\Program Files\\NetBeans-12.2\\netbeans\\java\\maven\\bin\\mvn.cmd\" -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans-12.2\\netbeans\\java\\maven-nblib\\netbeans-eventspy.jar\" --errors --errors clean compile"
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------< com.webcrawler.jsoupexample:jsoupexample >--------------
[INFO] Building jsoupexample 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jsoupexample ---
[INFO] Deleting P:\Users\infernoz\Documents\Java_Projects\rwperrott\jsoup-question\target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jsoupexample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jsoupexample ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 2 source files to P:\Users\infernoz\Documents\Java_Projects\rwperrott\jsoup-question\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.496 s
[INFO] Finished at: 2020-12-22T02:06:04Z
[INFO] ------------------------------------------------------------------------

IntelliJ run output was:

"C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\bin\java.exe" -javaagent:C:\Users\infernoz\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-1\203.5981.155\lib\idea_rt.jar=65151:C:\Users\infernoz\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-1\203.5981.155\bin -Dfile.encoding=UTF-8 -classpath "C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\charsets.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\access-bridge-64.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\cldrdata.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\dnsns.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\jaccess.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\localedata.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\nashorn.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\sunec.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\sunjce_provider.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\sunmscapi.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\sunpkcs11.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\ext\zipfs.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\jce.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\jfr.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\jsse.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\management-agent.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\resources.jar;C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\jre\lib\rt.jar;P:\Users\infernoz\Documents\Java_Projects\rwperrott\jsoup-question\target\classes;M:\Repository\org\jsoup\jsoup\1.13.1\jsoup-1.13.1.jar" com.webcrawler.jsoupexample.Main
Crawler finished. Total URLs: 0
Process finished with exit code 0
                I've got the same output before. But now I don't know why itsn't working and don't know how to solve it
– Gii
                Dec 22, 2020 at 18:55
                I suggest setting a breakpoint at the Elements line, below the Document line, and debugging the class, to see where the data is missing. Debugging and stepping through code is something developers need to learn how to do.
– Infernoz
                Dec 24, 2020 at 1:28
                Yes I know about that error, and that I have to debug to solve it but I'm not able to debug or run the app when I run it, the console says BUILD FAILURE
– Gii
                Dec 28, 2020 at 17:33
                Finally I solved it. I added manually the jar file throw NetBeans, in the project file, Dependencies -> jsoup-1.13.1.jar -> right click -> "Manually install artifact", then selecting the jsoup jar file. It's very strange for me and don't understand a lot. But it's solved now. Now I can run and debug. Thank for you time trying to help me! I appreciate it.
– Gii
                Jan 4, 2021 at 19:42
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.