【问题标题】:Failing to scrape data from webpage using JSoup无法使用 JSoup 从网页中抓取数据
【发布时间】:2018-03-21 00:26:00
【问题描述】:

我的问题是:从网页上刮掉诅咒价格(8875.53)。

       <span class="inst-rate">8875.53</span>

但是我的方法失败了。有人知道我的错误是什么吗?

    import java.io.IOException;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
    public class JavaTest {
    public static void main(String[] args) throws IOException {

    Document doc= 
    Jsoup.connect("https://www.plus500.de/Instruments/BTCUSD").get();
    Elements element =doc.select(".inst-rate");
    System.out.println(element); 
     }
    }

控制台输出:&lt;span class="inst-rate" v-text="BuyPrice"&gt;&lt;/span&gt;

【问题讨论】:

  • * 控制台输出为:

标签: java html jsoup scrape


【解决方案1】:

你需要访问元素的文本:https://jsoup.org/cookbook/extracting-data/attributes-text-html

可能 element.text() 是你需要的

【讨论】:

    【解决方案2】:

    此标记中的文本不是初始 html 的一部分,而是在页面加载后由 JavaScript 设置的。您可以通过在浏览器中禁用 JavaScript 来检查它。 Jsoup 只获取静态 html,不执行 JavaScript 代码。

    当您检查从页面建立的连接时,您会发现该值是通过对该 API 的请求更新的:

    https://www.plus500.de/api/LiveData/FeedUpdate?instrumentId=3406

    向这个 url 发出请求,解析器结果,你会得到想要的值。

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 2019-04-14
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      相关资源
      最近更新 更多