0

私が使用している履歴書サービスでは、履歴書に記載されている活動ごとに、1 週間あたりの時間数フィールドと合計時間数フィールドが必要です。ただし、合計時間フィールドは何週間経過しても自動的に更新されません。私の目標は、これを行うスクリプトを書くことです。

スクリプトの背後にあるアイデアは次のとおりです: Web サイトにログイン -> 特定のページに移動 -> そのページのフォーム ** を送信して合計時間を更新

**残念ながら、フォームを開くには、最初に「編集」タイトル要素をクリックして表示する必要があります。Web ページの html を見てみましたが、送信したいフォームに対応するフォームまたは入力タグが見つかりません。フォームは、要素の onclick フィールドからの JavaScript 関数呼び出しであると思われるもので生成されているだけです。関連するhtmlスニペットは次のとおりだと思います。

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

ただし、この投稿の後半にもっと大きなコード スニペットがある場合に備えて (一番下の 2 つ目のペーストビン リンクを確認してください)。

質問: onclick イベントをシミュレートするための特定の言語/ライブラリ/方法 (Java を使用することもできますが、Python が望ましい) はありますか? その結果、フォームが読み込まれますか?

Python の mechanize ライブラリから始めて、この問題に少し取り組みました。私は2つの関数を書きました、

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

これで、スクリプトの計画の最初の 2 つの部分は満たされますが、3 つ目の部分から問題が始まります。を使用してページ上のすべてのフォームを印刷すると

for form in br.forms():
    print form

http://pastebin.com/Gxy2tc1Aを取得します

Web サイトの html はhttp://pastebin.com/PySri5cbにあります。

その後、Selenium (firefox IDE プラグイン) を使用してコードを Python にエクスポートし、特定のニーズを満たすように編集しようとしましたが、厄介なエラーが発生したため、それはうまくいきませんでした。

4

1 に答える 1

1

GreaseMonkey を調べましたか? それを使用して週あたりの時間を抽出し、計算を行い、合計時間フィールドに入力できるはずです。あなたはおそらくすべてを行うことができます。JavaScript のページで実行できることはすべて、GreaseMonkey 内で実行できます。

編集: そのサイトのコードはひどいです。(#build-wrap) に書き込む要素の前に行われる loadResume() のインライン呼び出しが特に気に入っています。

于 2013-08-30T04:05:10.077 に答える