当前位置: 首页 > 知识库问答 >
问题:

获取URL时出错。仅在Heroku上状态=503

狄峻熙
2023-03-14

使用Jsoup连接到时https://rateyourmusic.com通过localhost,它工作得很好,然而,在Heroku上,我总是收到错误503,即使使用userAgent

String url = "https://rateyourmusic.com/charts/top/album/2016";
Document doc = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/70.0").followRedirects(true).timeout(100000).ignoreContentType(true).get();

Heroku日志:

2019-10-26T23:20:06.674831+00:00 heroku[router]: at=info method=GET path="/searchTrack?searchRadio=2&playlistName=&searchNameArtist=&searchNameAlbum=https%3A%2F%2Frateyourmusic.com%2Fcharts%2Ftop%2Falbum%2F2016&amountChart=3&amountRadio=3" host=gettoptracks.herokuapp.com request_id=026060b4-71ab-4510-9809-fe5cffc3f325 fwd="176.32.19.237" dyno=web.1 connect=1ms service=313ms status=200 bytes=11534 protocol=https

    2019-10-26T23:20:06.670478+00:00 app[web.1]: org.jsoup.HttpStatusException: HTTP error fetching URL. Status=503, URL=https://rateyourmusic.com/charts/top/album/2016

    2019-10-26T23:20:06.670652+00:00 app[web.1]:    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:760)

    2019-10-26T23:20:06.670655+00:00 app[web.1]:    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:705)

    2019-10-26T23:20:06.670661+00:00 app[web.1]:    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:295)

    2019-10-26T23:20:06.670663+00:00 app[web.1]:    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:284)

    2019-10-26T23:20:06.670668+00:00 app[web.1]:    at com.spotifyapi.demo.service.ServiceApiImpl.getRYM(ServiceApiImpl.java:561)

   ...

    2019-10-26T23:20:06.671189+00:00 app[web.1]:    at java.lang.Thread.run(Thread.java:748)

如果我尝试连接到Heroku上的另一个网站,它可以工作。

提前谢谢。

共有1个答案

岑俊明
2023-03-14

这在您的代码中不是问题。服务器返回错误503。这意味着服务器不喜欢您的请求或客户端,拒绝返回正常响应。可能是Heroku的原因,它被阻止是为了避免刮伤他们的网站
要百分之百确定您可以使用其他工具下载此页面的内容,以避免使用Jsoup使用普通HttpClient甚至纯Java:如何使用Java从Internet下载和保存文件<如果结果相同,则确认他们阻止了Heroku。您可以尝试通过某个代理连接以克服此问题。

 类似资料:
  • JSoup似乎可以处理我尝试过的所有URL,但这一个给了我400个错误。 我得到的错误是:

  • 我使用JSOUB清理所有网页,如下所示: 但我的问题是,代码一开始运行良好。 过一会儿,它会停止,总是给我“HTTP错误获取URL。状态=503错误”。 当我添加时。ignoreHttpErrors(true)它可以正常工作,但不会刮伤web。 *搜索词是我想要搜索的任何关键字,num是我需要检索的页数。 有人能帮忙吗?这是否意味着谷歌阻止了我的IP刮取?如果是的话,请问有什么解决方案或者我如何替

  • 我正在尝试从这里连接并检索页面标题。如果我从链接中删除“.com”之后的所有内容,代码运行良好。以下代码不起作用: 如果代码有效,返回的标题应该是“Sammamish Washington-Google News”。代码返回的错误是:“org.jsoup.HttpStatusException:HTTP错误获取URL。状态=405,URL=https://news.google.com/news/

  • 我正在尝试从站点获取数据。当我在Intellij IDEA中使用此代码时,一切正常,但当我在Android Studio和real device中使用此代码时,我得到: org.jsoup.HttpStatusException:获取URL的HTTP错误。状态=403 这是我的代码: 我找到的所有信息都是关于“userAgent()”方法的,但它没有帮助。 UPD:对不起,这是我的问题。正确的网址

  • 我想连接到https://www.notebooksbilliger.de/但对于以下代码,它不起作用: 为什么我得到405状态?我如何解决这个问题? 非常感谢... 塞巴斯蒂安

  • 我只是下载了最新版本的j汤(1.7.1)并遵循官方代码(更改了url)。然后我得到了“超文本传输协议错误获取url” 我的代码有什么问题?似乎错误只是发生在Android项目,因为我在一个工作正常的Java项目做同样的事情。 注意:-我已经添加了Internet权限