5

大文字と小文字を区別せずに、name属性を持つメタタグを「keyword」という単語を含む値と一致させようとしているXPathがあります。基本的に、私は一致させようとしています:

<meta name="KEYWORDS">
<meta name="Keywords">
<meta name="keywords">

XPathを使用

'descendant::meta[contains(lower-case(@name), "keyword")]/@content'

Scrapyを使用していて、セレクターが組み込まれていますが、このXPathを試してみると、「Invalid XPath:...」というエラーが表示されます。私は何を間違っているのですか、そして私がやりたいことをする正しい方法は何ですか?

4

1 に答える 1

13

Scrapy Selectorsは、libxml2ライブラリ上に構築されています。libxml2ライブラリは、AFAIKではXPath2.0をサポートしていません。少なくともlibxsltは確かではありません。

これを解決するには、XPath 1.0 translate()を使用できます。一般的に、次のようになります。

translate(yourString, 
          'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
          'abcdefghijklmnopqrstuvwxyz')
于 2011-01-04T20:58:59.997 に答える