私が使用している履歴書サービスでは、履歴書に記載されている活動ごとに、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 にエクスポートし、特定のニーズを満たすように編集しようとしましたが、厄介なエラーが発生したため、それはうまくいきませんでした。