Jsoup Document / Response在文档是Sysout或userAgent更改之前返回null

时间:2018-04-11 17:10:37

标签: java web-scraping jsoup amazon

这不是What is a NullPointerException, and how do I fix it?的重复,因为这是自发发生的。该应用程序将工作,然后在完全相同的情况下不工作。代码不是原因。

我正在使用Jsoup解析亚马逊搜索,它将完美地用于几十个关键字,然后开始返回null。我发现通过将文档打印到控制台,它再次开始工作并且不返回null。我还发现更改userAgent将起作用,它将停止返回null。

以下是代码:

System.setProperty("http.proxyport","127.o.o.1");
System.setProperty("http.proxyport","5267");
String keywordString = newKeywordList.get(i).replaceAll("\\s","+");
String url = "https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Ddigital-text&field-keywords=" + keywordString;
Response urlGet = Jsoup.connect(url).ignoreContentType(true).userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36").referrer("http://www.google.com").timeout(12000).followRedirects(true).execute();
Document response = urlGet.parse();

打印文档或更改userAgent后,我可以清理并构建项目,它可以完美地再工作几十次。我试图找出导致此问题的原因,如何解决它,以及为什么打印文档暂时解决它。似乎Jsoup有Document但由于某种原因返回null,直到它被打印出来。我应该创建userAgent迭代器还是随机userAgent方法?提前感谢您的帮助。

0 个答案:

没有答案