辞書を追加しようとすると、すべての異なるページを通過することでキャリア検索サイトを削っていますforループを使用してリストに追加します。私がPython 3.4で以下のコードを実行すると、コードは各ページのすべての関連データを辞書(私はprint()でチェックした)にプルし、 "FullJobDetails"に追加しますが、forループの最後には最後のページからの辞書でいっぱいのリストを取得します。辞書の数はリスト "ListofJobs"のページ数とまったく同じです。 "ListofJobs"は、私が廃棄している各ページへのHTMLリンクのリストです。forループを通して辞書に辞書を追加すると、最後の辞書のみが取得されます
私はちょうどコードを学習し始めました。そのため、以下のコードはどのような形、方法、形でもないことがわかりました。任意の提案をいただければ幸いです。前もって感謝します!
FullJobDetails = []
browser = webdriver.Chrome()
dictionary = {}
for jobs in ListofJobs:
browser.get(jobs)
dictionary["Web Page"] = jobs
try:
dictionary["Views"] = browser.find_element_by_class_name('job-viewed-item-count').text
except NoSuchElementException:
dictionary["Views"] = 0
try:
dictionary['Applicants'] = browser.find_element_by_class_name('job-applied-item-count').text
except NoSuchElementException:
dictionary["Applicants"] = 0
try:
dictionary["Last Application"] = browser.find_element_by_class_name('last-application-time-digit').text
except NoSuchElementException:
dictionary["Last Application"] = "N/A"
try:
dictionary["Job Title"] = browser.find_element_by_class_name('title').text
except NoSuchElementException:
dictionary["Job Title"] = "N/A"
try:
dictionary['Company'] = browser.find_element_by_xpath('/html/body/div[3]/article/section[2]/div/ul/li[4]/span/span').text
except NoSuchElementException:
dictionary['Company'] = "Not found"
try:
dictionary['Summary'] = browser.find_element_by_class_name('summary').text
except NoSuchElementException:
dictionary['Summary'] = "Not found"
FullJobDetails.append(dictionary)
ホールド。あなたは 'job.content'を実際のHTMLパーサーで解析し、直ちに*解読して原文を正規表現で検索します。 – user2357112
表示したコードが実行しているコードですか?あなたが書いている問題は、 'dict = {}'という行が表示されている場所ではなく、ループの外側にあったとすれば、私が期待するところです。 (あなたの問題に無関係な点: 'dict'を変数名として使うことは非常に悪い考えです。後で非常に混乱するバグを引き起こす可能性のある組み込み' dict'クラスの名前を隠しています) – Blckknght
はい表示されているコード実行しているものとまったく同じです、 "インデント"とすべて。もし自分自身をリセットしていたら、最後の辞書に対応する複数の辞書の代わりに、リストに1つの辞書(最後のもの)が1つだけ存在すると思います。 dictの名前を変更していただきありがとうございます。私はそれを別の変数に変更します。 –