2017-04-23 10 views
-2

CSSセレクタをxpathに変換するライブラリを使用したいと思います。誰もが、戻り値の意味が何であるかを私に説明することができ、どのように私はcssselectorを使用してCSSをxpathに変換する方法

訪問このlink与えられたCSSクラスのXPathを返します//div//*[[email protected]""]

from cssselect import GenericTranslator 

try 
    sel = CSSSelector('div.w3-container.top') 
except SelectorError: 
    print('Invalid selector.') 
print(sel) 

sel: 
'descendant-or-self::div[@class and contains(concat(\\' \\', normalize-space(@class), \\' \\'), \\' w3-container \\') and (@class and contains(concat(\\' \\', normalize-space(@class), \\' \\'), \\' top \\'))]' 
+1

変換は必要ありません。 'descendant-or-self'で始まるので、あなたはあなたの検索のためにルートにしたいノード上でクエリを開始することを期待しています。 '/'を前に付けてルートにすることができます。 – tdelaney

+0

投稿されたコードが機能しません(CSSSelectorが定義されていません)。後でこれを見る他人のために働くもので更新できますか? – tdelaney

答えて

1

XPath(GenericTranslator().css_to_xpath('div.w3-container.top'))

このようにXPathのためにカバーすることができます詳細は

+1

すでにxpath ...これは、xpathが事前に解析され、複数回使用される場合にはより速くなる 'lxml' XPathオブジェクトを作成します。しかし、必要はありません。 – tdelaney

関連する問題