java抓取隐藏在html和脚本

时间:2016-09-27 16:50:16

标签: javascript java html web-scraping

我希望java能够显示网页的特定行。这一行是服务器上jpg的src链接。但是Jsoup方法或OpenStreamReader方法无法获取仅在按下地图上的引脚时生成的行。  这是一个网站: https://webgispu.wigeogis.com/kunden/omvpetrom/client/map.php?BRAND=OMV&LNG=SI&CTRISO=SVN&MODE=NEXTDOOR&VEHICLE=CAR

在框架中一次显示一个gass工作站的数据,仅当您单击地图中的图钉时才会打开。更重要的是,src链接到.jpg,每两小时更换一次汽油价格。我想得到我的程序来获得那些jpg-s,但我不知道如何。当我使用OpenStremReader获取此站点的html时,我无法确定下一步的位置。 这是一行代码(它是一个img标签)我正在寻找(它是一个eksample,' tmp2C31'每2小时更改一次):

' img src =" https://webgispu.wigeogis.com/temp/tmp2C31.tmp.png" ALT =""标题=""风格="边距:5像素;显示:块;"类=" preisImageClass" '

请查看上层链接,了解我应该在我的程序中采用哪些类和方法。我已经阅读过有关OCR的内容,因此无需从jpgs解释geting数据。

thanx

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是HTML解析器。在我看来,最好的解析器是jsoup

来自网站:

  

jsoup是一个用于处理真实HTML的Java库。它提供了一个非常方便的API,用于提取和操作数据,使用最好的DOM,CSS和类似jquery的方法。

有了这个,您可以直接从html文档中指定要在程序中显示的内容。

答案 1 :(得分:0)

此代码返回一个html.txt文件:

public void htmlToTxt(String startSite) throws Exception {
    URL u = new URL(startSite);
    InputStream is = u.openStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    BufferedWriter bw = new BufferedWriter(new FileWriter("htmlž.txt"));
    String code = new String();
    while ((code = br.readLine()) != null) {
        bw.write(code);
        bw.newLine();
    }
    bw.close();
    br.close();
    isr.close();
    is.close();
}

public static void main(String[] args) throws Exception {
    TestOMV a = new TestOMV();
    a.htmlToTxt(
            "https://webgispu.wigeogis.com/kunden/omvpetrom/client/map.php?BRAND=OMV&LNG=SI&CTRISO=SVN&MODE=NEXTDOOR&VEHICLE=CAR");

}

}