我正在构建一个网络爬网程序,以从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)
答案 0 :(得分:0)
尝试从网址的开头和结尾删除Double Qoutes
。由于url
已经是一个字符串,您不需要添加这些引号