java - Java jsoup连接问题
问题描述
我正在尝试获取有关股票的信息,但它不起作用(我最终会将股票代码作为函数的输入)我正在尝试获取每股收益和市盈率,但我不断收到此错误。我将如何解决这个问题?至少我只需要 jsoup 就可以访问 html 代码。本质上,我希望代码从市盈率输出 15.62。
这是我的代码:
import org.jsoup.*;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
class Main {
static Document document;
public static void main(String[] args) throws java.io.IOException{
Document doc = Jsoup.connect("https://www.nasdaq.com/symbol/aapl").get();
Elements elements = doc.select("div#table-table fontS14px");
System.out.println(elements.get(1).getAllElements().get(0).toString());
}
}
这是错误消息:
Exception in thread "main" java.net.SocketTimeoutException: Read timed out
at java.base/java.net.SocketInputStream.socketRead0(Native Method)
at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:746)
at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1604)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:750)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:722)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:306)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:295)
这是我要阅读的 html:
<div class="table-table fontS14px">
<div class="table-row" style="">
<div class="table-cell">
<b>P/E Ratio</b>
</div>
<div class="table-cell">
17.23
</div>
</div>
<div class="table-row" style="">
<div class="table-cell">
<b>Forward P/E (1y)</b>
</div>
<div class="table-cell">
15.62
</div>
</div>
<div class="table-row" style="">
<div class="table-cell">
<b>Earnings Per Share (EPS)</b>
</div>
<div class="table-cell">
$ 11.87
</div>
</div>
<div class="table-row">
<div class="table-cell">
<b>Annualized Dividend</b>
</div>
<div class="table-cell">
$ 2.92
</div>
</div>
<div class="table-row">
<div class="table-cell">
<b>Ex Dividend Date</b>
</div>
<div class="table-cell">
11/8/2018
</div>
</div>
<div class="table-row">
<div class="table-cell">
<b>Dividend Payment Date</b>
</div>
<div class="table-cell">
11/15/2018
</div>
</div>
<div class="table-row">
<div class="table-cell">
<b>Current Yield</b>
</div>
<div class="table-cell">
1.39 %
</div>
</div>
<div class="table-row" style="">
<div class="table-cell">
<b>Beta</b>
</div>
<div class="table-cell">
1.02
</div>
</div>
</div>
解决方案
似乎尝试的 URL 似乎无法访问,您只需先在浏览器中尝试,是否可以访问?如果是,则尝试显式设置超时,例如 Jsoup.connect("...").timeout(10*1000).get()
推荐阅读
- css - 情感不会覆盖 Material UI 默认值
- reactjs - React - Material UI 测试 TypeError:无法读取未定义的属性“获取”
- amazon-web-services - 如何在不使用托管 UI 的情况下使用 Postman 使用 AWS cognito 注册新用户
- c++ - 有没有办法调用对象的重写基类方法?
- ios - Xcode 12.4 中的模拟器很慢
- javascript - 需要帮助来跟踪更高或更低 HTML 的猜测
- javascript - Reactstrap 表头和表体不匹配
- openlayers - openweathermaps 天气图图层未在 openlayers 上正确显示
- php - Xdebug with VSCode for PHP CLI 不附加
- reactjs - 使用 react-csv 将数据导出为 csv