我想用Java上的Jsoup来获取亚马逊价格

时间:2016-11-10 19:14:34

标签: java jsoup amazon fetch

我想获得亚马逊产品的价格,然后将它们放入电子表格中,价格接近时间。我正在尝试使用Jsoup(我对此非常新) 这就是我现在拥有的。 我甚至无法得到价格,所以这是我最需要的帮助

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package amazon;

/**
 *
 * @author kennethkreindler
 */
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Amazonmain {

    /**
     * @param args the command line arguments
     * @throws java.lang.Exception
     */

   public static void main(String[] args) throws Exception {
        String url = "http://www.amazon.de/DJI-CP-PT-000498-Mavic-Drohne-grau/dp/B01M0AVO1P/";
        Document document = Jsoup.connect(url).userAgent("Mozilla/17.0").get();

        String question = document.select("span.priceblock_ourprice");
        System.out.println("Price is" + question);


        }
    }

1 个答案:

答案 0 :(得分:2)

你在这里遇到的问题很少:

  1. 您的用户代理已过时,因此您的响应完全不同于预期。使用较新的。
  2. document.select返回Element,而不是String
  3. 你的seletor不对。 使用以下代码:

    String url = "http://www.amazon.de/DJI-CP-PT-000498-Mavic-Drohne-grau/dp/B01M0AVO1P/";
    Document document = Jsoup.connect(url).userAgent("Mozilla/49.0").get();
    Elements question = document.select("#priceblock_ourprice");
    System.out.println("Price is " + question.html());