0

我使用的简历服务要求对于简历中列出的每个活动,都有一个每周小时数字段和总小时数字段。但是,无论经过多少周,总小时数字段都不会自动更新。我的目标是编写一个执行此操作的脚本。

脚本背后的想法是:登录网站 -> 转到某个页面 -> 在该页面上提交表单** 更新总小时数

**不幸的是,要打开表单,您需要先单击“编辑”标题元素才能显示它。我查看了网页的 html,但找不到与我希望提交的表单相对应的表单或输入标签,只是表单是使用我认为来自元素的 onclick 字段的 javascript 函数调用生成的。我相信相关的html片段是:

<a title="edit" class="edit" href="#entry-type" onclick="editComponent('10227041','education');">Edit</a>

但以防万一这篇文章后面有更大的代码片段(检查底部的第二个 pastebin 链接)

问题:是否有特定的语言/库/方式(最好在 python 中,虽然我可以使用 Java)来模拟 onclick 事件并导致表单加载?

我已经解决了这个问题,从 python 的 mechanize 库开始。我写了两个函数,

def login(br,url):...
def navigate(br,baseurl,url):...

这将满足我剧本计划的前两部分,但第三部分是麻烦的开始。当我使用打印页面上的所有表格时

for form in br.forms():
    print form

我得到http://pastebin.com/Gxy2tc1A

该网站的 html 可以在http://pastebin.com/PySri5cb上找到

后来我尝试使用 Selenium(firefox IDE 插件),然后将代码导出到 python 中,在那里我将对其进行编辑以满足我的特定需求,但由于一些尴尬的错误,这是不行的。

4

1 回答 1

1

你看过 GreaseMonkey 吗?您应该能够使用它来提取每周的小时数,进行数学计算并填充总小时数字段。你可能可以做整个事情。可以在 JavaScript 页面上完成的任何事情都可以在 GreaseMonkey 中完成。

编辑:该网站的代码很糟糕。我特别喜欢在它写入的元素之前对 loadResume() 的内联调用(#build-wrap)。

于 2013-08-30T04:05:10.077 回答