我是一个完全的新手,但我正在尝试把一些代码放在一起,每小时自动从网页下载一个.csv文件,并将其保存到我的计算机上(最好是在特定的地方)。这些数据是苏格兰每小时的降雨量数据,位于以下网站。
http://apps.sepa.org.uk/rainfall
基本上,我需要能够选择左侧地图中的一个站点(每次都是相同的站点),并从图表右上角的下拉菜单中下载每小时降雨量.csv文件。手动操作时,将鼠标悬停在download按钮上,然后悬停在"Download as...“上。然后在出现时选择"CSV“。
从我在这里读到的内容来看,Chrome Tampermonkey extension used in conjunction with the Windows Task Scheduler可能是实现这一点的最佳方式。上一个问题中的代码如下:
document.getElementById("download_button").click();
我尝试用可能描述页面上CSV按钮元素ID的东西来替换"download_button“部分,比如使用”CSV“;但是我真的不确定按钮的元素ID是什么。我试过检查源代码中的元素,但由于我是新手,我真的不知道我在寻找什么。
我还尝试按类和路径搜索元素,但我仍然不确定要为类和路径输入什么值才能到达所需的特定下载按钮。
document.getElementByClass("export-main").click();
document.getElementByPath("//*[@id=\"chartdiv\"]/div/div[2]/ul/li/ul/li[1]/ul/li[3]/a/span").click();
任何帮助都会非常感谢,我甚至不确定这是否可能,或者这是不是最好的方法。
提前感谢您可能会给我的任何帮助。
发布于 2018-01-22 20:29:03
作为概念证明,更好的方法是针对您需要的数据(位置)的特定http GET请求。这样,您就可以获得所请求的JSON格式的响应(可以转换为CSV)。谷歌如何打开Chrome DevTools (F12),你会在网络选项卡上找到你需要的请求(一堆请求,其中一些包含你需要的响应数据)。在复制请求URL (从网络选项卡)时,请按照此page中的说明从命令行执行下载。准备好后,您可以通过windows任务计划程序执行该命令。
https://stackoverflow.com/questions/48094254
复制相似问题