2016-03-28 15 views
1

私はxpathでpythonを使用していますが、xpath構文で迷っています。私がしたいのは、HTMLページのテーブルにタグがないかどうかをチェックすることです。だから私はこれを行うためにxpathを使用しています。次に、このタグがない場合は、セクションに関連したxpath検索を実行します。私は何か働いているようですが、それは逆のことで、理由を理解できません。コードの例を以下に示します。Xpath - xpathの結果内で検索する

​​

私はxpathが価格に対して正しいとは思わない。うまくいけば、誰かが私を啓発することができるでしょう:)

+0

あなたは問題のhtmlを共有してもいいですか、ドキュメントの正確な構造を前提とすることはできません – danidee

答えて

2

ここでXPathを正しく使用しているとは思わないでしょう。

必要なノードをフィルタリングして、独自のループとフラグをスローします。

cars_without_tag_price = '''//td[ 
    @class="cars" and not(span[@class="colorRed"]) 
]/following-sibling::td[@class="price"]/span[@class="amount-value"] 
''' 

for price_node in tree.xpath(cars_without_tag_price): 
    price_str = price_node.text.strip() 
+0

ホーリー・モリー!ありがとう - 私はxpathがそれをすることができるとは思わなかった。ちょうどもう1つの質問 - empathy文字列はxpath文字列の最初と最後で何を意味しますか? – area9

+0

XPathがツリーから特定のノードを選ぶときにできることに驚くでしょう。それは基本的なことを学ぶ価値があります。 - このコードサンプルには空の文字列はありません。三重引用符は、複数行の文字列をマークするためのPythonの方法です。 – Tomalak

+0

ahhはい。これを忘れてしまった。この時点で私は非常に初心者だと言うことができます:) – area9