如何在Java中为URL输入字符串?

时间:2019-04-26 02:55:57

标签: java web-crawler jsoup

我正在构建一个网络爬网程序,以从craigslist获取学校项目的搜索结果。 我正在尝试让用户输入搜索查询,然后添加它以完成URL。

此功能对于我提交项目不是必需的,但是我想知道如何使此功能起作用。

public static void main(String[] args) throws IOException{
    String incomSite1 = "\"https://houston.craigslist.org/search/sss?query=";
    System.out.println("What would you like to search for?");
    Scanner userIn = new Scanner(System.in);
    String srchItem = userIn.nextLine();
    String comSite = incomSite1 + srchItem + "\"";

    final String url = "https://houston.craigslist.org/search/sss?query=computer";

    try {
        final Document results = Jsoup.connect(url).get();

        System.out.println(results.outerHtml());
    }
    catch (Exception ex) {
        ex.printStackTrace();
    }
}

这部分代码,我应该从网站上刮取搜索结果并显示HTML。

如果我只是将浏览器中的URL复制/粘贴到“最终字符串url =”中,而没有所有其他代码,那么它将正常工作。

但是,当我使用扫描仪,incomSite1,srchItem和comSite填写“最终字符串url”时,出现以下错误:

java.lang.IllegalArgumentException: Malformed URL: "https://houston.craigslist.org/search/sss?query=computer"
    at org.jsoup.helper.HttpConnection.url(HttpConnection.java:136)
    at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:76)
    at org.jsoup.Jsoup.connect(Jsoup.java:73)
    at CraigCrawl.main(CraigCrawl.java:21)
Caused by: java.net.MalformedURLException: no protocol: "https://houston.craigslist.org/search/sss?query=computer"
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at org.jsoup.helper.HttpConnection.url(HttpConnection.java:134)

1 个答案:

答案 0 :(得分:0)

尝试从网址的开头和结尾删除Double Qoutes。由于url已经是一个字符串,您不需要添加这些引号