用于从浏览器中的网页提取信息的脚本

时间:2014-01-15 09:46:09

标签: javascript html browser scripting

背景

我有一个网络性能测试工具,每次测试后,都会在新的结果页面中显示所有结果。下面是我找到最终值的工作流程。(这里的细节不相关,但我正在寻找的html元素可能

1.转到名为“数据框”的部分(其中包含一个带有时间戳,传输,接收和百分比为列的表),并在百分比首次降至99.9以下时获取时间戳 这是“数据框”表的一个片段 Data frame snippet

2.转到另一个名为“数据吞吐量”的部分(带时间戳的表,吞吐量为列),并在先前找到的时间戳之前获得吞吐量的最大值。

每次测试后,我都必须手动执行此操作,但应该有一些自动执行此操作。

问题

1.是否可以编写一个脚本(可能是javascript)来自动化每个新结果页面的工作流程?

示例算法

section = webpage.section_with_title("Data frames")
for each row in section
    find first my_timestamp with percent < 99.9
done

section2 = webpage.section_with_title("Data Throughput")
for each row in section2
    find max row.throughput if row.timestamp < my_timestamp
don

2.一旦我编写脚本,我如何在网页中执行它?

3.我能以某种方式利用firefox / chrome开发者控制台吗?

注意:我主要使用C,C ++和ruby开发,具有非常基本的HTML和CSS经验。我几乎没有使用过javascript,但我有一个模糊的想法,即浏览器使用它来处理每个页面的内容。

我的思维过程是以某种方式通过firefox控制台执行脚本,它会为我提供结果......难道很难吗?

编辑:因为我不熟悉网页开发术语,生病了一个不同的选择... 1.i打开结果页面 2.i打开firefox / chrome的控制台窗口 3.运行我的脚本(不知道用什么语言)。 4.i应该在控制台中获得结果。我不想修改结果页面。我只需要显示给我的结果(在控制台或文本文件中)。

2 个答案:

答案 0 :(得分:0)

是的,你可以用你的Javascript做你想的。请查看XMLHttpRequest

答案 1 :(得分:0)

这是一种启动方式(使用Java):

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class YourClass
{
    private WebDriver webDriver = null;

    public void open() throws Exception
    {
        webDriver = new FirefoxDriver();
    }

    public void close() throws Exception
    {
        webDriver.quit();
    }

    public void doStuff() throws Exception
    {
        WebElement element = webDriver.findElement(By.id(...));
        ...
        // Alternatively, it might be easier to parse the entire
        // page-source instead of searching elements in the DOM
        String pageSource = webDriver.getPageSource();
        ...
    }
}   

您需要下载以下JAR文件并将其添加到项目的类路径中:

  • selenium-java-2.xx.0.jar(目前xx = 39)

  • selenium-server-standalone-2.xx.0.jar(目前xx = 39)