使用python下载动态加载的网页

时间:2016-09-18 22:17:47

标签: javascript jquery python html selenium

我有这个website,我想下载该页面的内容。

我尝试了 selenium ,并点击了按钮,但没有成功。

if ($result->num_rows > 0) {
    $header_printed = false;
    // output data of each row
    while($row = $result->fetch_assoc()) {
        if (!$header_printed) {
            echo '<tr><td>' . $row['User'] . '</td><td>Rd1</td><td>Rd2</td><td>Cut</td><td>Rd3</td><td>Rd4</td></tr>';
            $header_printed = true;
        }
        echo '<tr><td>' . $row['GName'] . '</td><td>'.$row['Rd1P'].'</td><td>'.$row['Rd2P'].'</td><td>'.$row['CP'].'</td><td>'.$row['Rd3P'].'</td><td>'.$row['Rd4P'].'</td></tr>'; 
    }
} else {
    echo "0 results"
}

此代码仅下载隐藏数据的源代码。

有人能告诉我正确的方法吗?或者告诉我如何下载隐藏的数据?

提前致谢!

2 个答案:

答案 0 :(得分:4)

我一直试图在刮痧时避免瘟疫之类的硒;它非常慢,几乎不是最好的方式。在刮擦之前你应该更多地挖掘源头;在这个页面上很清楚html是进来的,然后单独调用来获取表的数据。为什么不与网页进行同一次通话?它闪电般快,不需要html解析;只返回原始数据,这似乎是你正在寻找的。 python requests导入是完美的。快乐的刮痧!

3

PS:查找这些调用的最佳方法是打开开发控制台,然后查看网络选项卡。您可以在此处查看正在进行的呼叫。另一种方法是转到源选项卡,查找一些javascript,并搜索ajax调用(这是我获取上面调用的url的地方,路径是:top / odds-server.com / odds-server / JS / table_slow.js)。后一种选择有时更容易,有时几乎不可能(如果文件被缩小/丑化)。做任何适合你的事情!

答案 1 :(得分:0)

查看Chrome开发工具中的“网络”标签。 Nab the URL离开那里。

您所看到的是DataTable。您可以使用他们的API来获取您需要的内容。

调整“开始”和/或“长度”参数以逐页获取数据。

这是JSON数据,因此解析起来非常容易。

但要善良,不要打击这个可怜人的服务器。