【发布时间】:2018-02-16 18:05:12
【问题描述】:
我正在创建一个网络 scraper,它通过来自同一域的多个 URL。我有一个带有 URL 列表的文本文件。我使用了 readAllBytes 方法,因此我可以读取文本文件并将其存储在字符串中。 这是我运行程序时遇到的错误。我不确定是什么导致了 URL 中的非法字符。
Illegal character in URL
at sun.net.www.protocol.http.HttpURLConnection.checkURL(HttpURLConnection.java:850)
at sun.net.www.protocol.http.HttpURLConnection.<init>(HttpURLConnection.java:857)
at sun.net.www.protocol.http.Handler.openConnection(Handler.java:62)
at sun.net.www.protocol.http.Handler.openConnection(Handler.java:57)
at java.net.URL.openConnection(URL.java:979)
at com.web.DogsDataExtractorV.GetAllDogsData(DogsDataExtractorV.java:74)
at com.web.DogsDataExtractorV.main(DogsDataExtractorV.java:115)
这是我的代码的一部分,我将文本文件存储在一个字符串中,也是我为 url 指定字符串的地方,
try {
Path file_Path = Paths.get("/home/c/cerda/DogsData/upload", "dog-links.txt");
byte[] link_list = Files.readAllBytes(file_Path);
String Link_String = new String(link_list);
System.out.println(Link_String);
GetAllDogsData(Link_String);
}catch (Exception e) {
System.out.println(e);
这是我设置在哪里查看信息并将数据保存到的代码部分。
Document doc = Jsoup.parse(file, null);
Elements resulCharact = doc.select(("span[class=characteristic item-trigger-title]"));
for (Element link : resulCharact ) {
writeToFile("../upload/characteristic.txt", link.text()+ "\n");
}
Elements resulRating = doc.select(("span[class=star-block stars-column]"));
for (Element ratings : resulRating) {
writeToFile("../upload/ratings.txt", ratings.text()+ "\n");
}
文本文件示例
http://dogtime.com/dog-breeds/boerboel
http://dogtime.com/dog-breeds/bolognese
http://dogtime.com/dog-breeds/border-collie
http://dogtime.com/dog-breeds/border-terrier
http://dogtime.com/dog-breeds/borzoi
http://dogtime.com/dog-breeds/boston-terrier
http://dogtime.com/dog-breeds/bouvier-des-flandres
http://dogtime.com/dog-breeds/boxer
http://dogtime.com/dog-breeds/boykin-spaniel
http://dogtime.com/dog-breeds/bracco-italiano
http://dogtime.com/dog-breeds/briard
该代码适用于一个网址。如果有人能帮忙谢谢。
【问题讨论】:
-
它说:“URL 中有非法字符”当它抱怨时,您尝试连接的 URL 是什么?
-
您能否更新问题以显示文本文件的示例?
-
@Justin 我用文本文件的样本和我更改的其他内容更新了我的问题。我仍然对 URL 中的非法字符有同样的问题。
标签: java web-scraping jsoup