1

今月コーディングを学び始めたばかりで、Python を使い始めました。簡単なタスク (私の最初のプロジェクト) を自動化したいと考えています。会社のキャリア Web サイトにアクセスし、その日に投稿されたすべての求人を取得してファイルに保存します。だから、これは私がやりたいことです。

  1. http://www.nov.com/careers/jobsearch.aspxにアクセスしてください
  2. オプションを選択 - 1 ページあたり 25 ジョブ
  3. 日付オプションを選択 - 今日
  4. 「求人を探す」をクリック
  5. 結果をファイルに保存 (役職のみ)

いろいろ調べたところ、Selenium が .aspx ページの処理に最適な方法であることがわかりました。

Selenium を使用して手順 1 ~ 4 を実行しました。ただし、次の 2 つの問題があります。

  1. ブラウザを開きたくありません。出力をファイルに保存するだけです。
  2. ブラウザーのポップアップに問題がなくても、IDLE (Windows OS を使用している) で Python コード (Selenium から Web ドライバーとしてエクスポート) を使用すると、エラーが発生します。Python コードを実行すると、ブラウザーが開き、リンクが読み込まれます。しかし、フォームの選択は行われず、ブラウザーが閉じる前にエラーメッセージ (以下のリンク) が表示されます。では、エラーメッセージは何を意味するのでしょうか? http://i.stack.imgur.com/lmcDz.png

ヘルプ/ガイダンスをいただければ幸いです...ありがとう!

4

2 に答える 2

1

最初にあなたが得たエラーについて、式NoSuchElementExceptionとメッセージUnable to locate elementによると、web-driver に提供したセレクターが間違っていて、web-driver が要素を見つけられないことを言わなければなりません。

コードを投稿しておらず、入力したウェブサイトのリンクを開くことができないため、サンプル コードを提供して、できるだけ多くの詳細を数えます。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("url")
number_option = driver.find_element_by_id("id_for_25_option_indicator")
number_option.click()
date_option = driver.find_element_by_id("id_for_today_option_indicator")
date_option.click()
search_button = driver.find_element_by_id("id_for_search_button")
search_button.click()
all_results = driver.find_elements_by_xpath("some_xpath_that_is_common_between_all_job_results")

result_file = open("result_file.txt", "w")

for result in all_results:
    result_file.write(result.text + "\n")

driver.close()
result_file.close()

あなたは最近コーディングを学び始めたばかりだとおっしゃっていたので、いくつか説明をしなければならないと思います。

  1. driver.find_element_by_id要素が ID プロパティを持つすべての場合に使用することをお勧めします。より堅牢です。
  2. の代わりにまたはresult.textを使用できます。result.get_attribute("value")result.get_attribute("innerHTML")

これですべてが頭に浮かびました。ただし、コードを投稿して、何が問題なのかを確認することをお勧めします。さらに、コードに詳細を追加できるように、ウェブサイトへの新しいリンクを教えていただければ幸いです。あなたの現在のリンクは壊れています。

于 2013-10-07T14:23:15.143 に答える