在我的工作中,我经常需要从ethics.ga.gov查看我所在州的竞选披露报告。但是,状态系统是我曾经处理过的最狡猾的Web应用程序之一。
它仅提供每份报告的贡献数据。每个选举周期有六份报告。而且为了加重伤害,系统很慢。你不仅需要下载大量的文件,还要等待一段时间才能生成该死的东西。
这就像是一个自动化流程的明显机会。我计划做的是编写一个程序,我可以输入链接到所有披露报告的页面的URL,它将下载所有的贡献报告。
对于给定的候选人,我会输入指向此页面的链接 - http://media.ethics.ga.gov/Search/Campaign/Campaign_Name.aspx?NameID=5753&FilerID=C2009000086&Type=candidate(视图报告链接位于标题为“广告系列投放报告”的下拉列表中)。然后,我计划跟踪每个指向报告页面的链接,跟随指向贡献页面的链接,然后下载csv文件。一旦我有了csv文件,(我认为)该项目属于我的编码能力范围。
我现在遇到的问题是我无法弄清楚如何关注视图报告链接。该系统是用ASP编写的。链接调用javascript回发函数,调用“查看报告”排序。 ctl02是控件的标识符。似乎将控件标识符映射到我需要的URL(在本例中为http://media.ethics.ga.gov/search/Campaign/Campaign_ReportOptions.aspx?NameID=5753&FilerID=C2009000086&CDRID=85776)的信息嵌入在加密的__VIEWSTATE字段中。
我安装了Firebug调试器以尝试以这种方式获取数据。虽然我是Firebug的新手,但我所能找到的是,它在网络标签中显示了我需要的URL的GET请求。
显然,不知何故,我的浏览器正在进入下一页,这意味着它应该是自动化的,但我现在不知所措。我一直在python中工作,因为我真的开始喜欢它,但一切都可以协商。我在mac(具有完整的gnu环境)上这样做,并且宁愿继续在我熟悉的环境中工作,但如果我必须走这条路线,我确实有一个带有visual c ++ '10的windows xp vm。 / p>
你们都在想什么?
答案 0 :(得分:1)
原来数据根本不在加密的__VIEWSTATE中。有一个POST操作Firebug正在重定向清除(尽管它设置不清除。)我使用Chrome开发控制台运行它,我能够捕获POST数据并在我的应用程序中复制POST操作。这让我得到了我想要的网址。
感谢所有看过这个的人!