使用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上的另一个网站,它可以工作。
提前谢谢。
这在您的代码中不是问题。服务器返回错误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权限