Python 3とSeleniumを使用してページから特定の要素を選択しようとしています。すべてのちょうどこのようにフォーマットされている正しい要素を選択する方法(Python 3、Selenium)
ページは、長いリストで構成されています(項目の数百):
をこのテーブルのHTMLは次のようになります。
そして、私がクリックしようとしている特定の項目の要素を展開すると、次のようになります(プライバシーのために隠されたリンク):
私はこれまでやっている何をは、私は時間のいくつかの作品
titleField = 'Zombie Apocalypse'
searchBuilder = "//*[contains(text(), '" + titleField + "')]"
searchForBook = browser.find_elements_by_xpath(searchBuilder)
searchForBook[0].click()
を使用して必要な要素を検索するためです。私は同じ名前の2つの項目があるとき、またはタイトルにアポストロフィがあるときに問題に遭遇しています。なぜそれが全く機能しなかったのか分からないことがあります。
私が使用している方法よりも、そのテーブルから個々の要素を選択する良い方法はありますか?アイテムのタイトルは、ID番号ではなく、前もって取得します。 ID番号は私が掻き取ろうとしている情報です。
ID番号がそのURLに含まれているので、検索でアイテムのURLが返されても大丈夫ですので、そこから引き出すことができます。しかしタイトルはURLにないので、検索する方法はわかりませんでした。
テーブル内のID番号フィールドを掻き取ることは可能でしょうか?あなたはID番号のすべてを取得し、それは比較的一貫しているように見えるこの方法。あなたが特定のアイテムを探していない限り、テーブルの各URLを取得し、自分の名前フィールドを自分のものと比較することを提案します。 – OmegaNalphA
それは考えです。テーブルをそのままにして、各URLの名前フィールドを取得するにはどうすればよいですか?私が必要とするのはID番号だけですが、特定のアイテムのためには必要です。 – Oxymoronica
同じ名前のアイテムが2つ以上ある場合、どちらをクリックするか、または両方をクリックしますか? – ands