org.jsoup.HttpStatusException:HTTP错误提取URL。 Status = 504尝试抓取HTML内容时出错

时间:2016-08-14 16:02:41

标签: html web-scraping jsoup httpurlconnection http-status-code-504

我想从下面列出的网址中删除HTML代码。问题是,我收到了这个错误: -

  

2016年8月14日下午6:40:36 booksscraper.BooksScraper主要   严重:空   org.jsoup.HttpStatusException:HTTP错误提取URL。状态= 504,网址= http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10293&langId=-1&programId=636&termId=100043741&divisionDisplayName=%20&departmentDisplayName=ACCG&courseDisplayName=16971&sectionDisplayName=P15%20DAVIS&demoKey=d&purpose=browse       at org.jsoup.helper.HttpConnection $ Response.execute(HttpConnection.java:590)       at org.jsoup.helper.HttpConnection $ Response.execute(HttpConnection.java:540)       在org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227)       在org.jsoup.helper.HttpConnection.get(HttpConnection.java:216)       at booksscraper.BooksScraper.main(BooksScraper.java:52)

我已将超时设置为无穷大,但这没有帮助。该网站的HTML代码非常大,即14833行代码。这是问题的原因吗?

String url = "http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10293&langId=-1&programId=636&termId=100043741&divisionDisplayName=%20&departmentDisplayName=ACCG&courseDisplayName=16971&sectionDisplayName=P15%20DAVIS&demoKey=d&purpose=browse";

Document doc = Jsoup.connect(url)
                .maxBodySize(0)
                .timeout(0)
                .get();

System.out.println(doc);

2 个答案:

答案 0 :(得分:0)

这不是Jsoup API或您的代码问题。出现错误消息的原因是网址没有响应并抛出"网关超时"错误消息(代理服务器未从上游服务器收到及时响应)。

您程序中的异常消息: -

  

获取URL时出现HTTP错误。状态= 504

HTTP状态代码:504

  

504网关超时

     

服务器在充当网关或代理时,没有收到   来自URI指定的上游服务器的及时响应(例如   HTTP,FTP,LDAP)或它需要的一些其他辅助服务器(例如DNS)   尝试完成请求时访问。

  Note: Note to implementors: some deployed proxies are known to
  return 400 or 500 when DNS lookups time out.

答案 1 :(得分:0)

我确实通过将 UserAgent 设置为 Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 51.0.2704.106 Safari来设置连接到网站/537.36 即可。但是,大约需要4分钟才能做出回应。