私はPythonとSeleniumを使ってスクレーパーに取り組んでいますが、私はxpathを横断する問題があります。私はこれがシンプルでなければならないと感じますが、明らかに何かが欠けています。xpath/pythonの検索で子ノードを取得しますか?
私は閲覧しているサイトをナビゲートすることができますが、XPATH検索に基づいていくつかのSPANテキストを取得する必要があります。
は私が
(driver.find_elements_by_name("start-date"))[0].click()
(この場合は第一1)に該当するラジオボタンをクリックすることですが、私はまた、次のspanタグでキャプチャされるラジオボタンにテキストをキャプチャする必要があります。上記の例では
<label>
<input type="radio" name="start-date" value="1" data-start-date="/Date(1507854300000)/" data-end-date="/Date(1508200200000)/" group="15" type-id="8">
<span class="start-date">
10/12/2017<br>Summary text
</span>
</label>
、私はラジオボタンを見つけるために使用find_elements_by_name検索に基づいて2列変数に「2017年10月12日」と「要約テキスト」をキャプチャするために探しています。
次に、クラス名で検索した後にスパンタグを取得する必要がある、同様のコレクションに関する2番目の問題があります。これは、ページ上の適切な親ノードを検索します。その検索によって返されたノードに基づいて
(driver.find_element_by_xpath("//div[@class=\"MyClass\"]"))
、私は「テキスト1」とその下のspanタグから「テキスト2」をつかむしたいです。
<div class="MyClass">
<span>
<span>Text 1</span>
</span>
<span class="bullet">
</span>
<span>
<span>Text 2</span>
</span>
</div>
私は、XPathに新しいですが、私は集めることができるものから、私が探していますスパンノードが、私は私の検索で見つかったノードの子でなければなりません、と私は何とか階層を下にトラバースすることができるはずです値を取得するには、私はちょうどよく分からない。
良い質問、両方が同じスパンであるので – iamsankalp89