3

私はこの分野で初めてであり、より多くの情報が必要です。インターネットで情報が見つかりませんでした。たとえば、今私はこの関数を使用していますhxs.select('//div[@id="CategoryBreadcrumb"]//text()').extract()。これdivで私は1つを除いてそれぞれにnchorsを持っていulます。タグが含まれていないからのテキストが必要です。hxsフィルタリングについても教育的なリンクを提供していただければ幸いです。前もって感謝します!これは、必要なものを視覚化できない場合の例です。lialilia

<div id='CategoryBreadcrumb'>
<ul>
  <li><a href=#>I dont need</a></li>
  <li><a href=#>I dont need</a></li>
  <li><a href=#>I dont need</a></li>
  <li>Text that i need</li>
</ul>
</div>
4

2 に答える 2

3

試す:

hxs.select('//div[@id = "CategoryBreadcrumb"]/ul/li/text()')

XPathの詳細については、基本についてはw3schoolsを、完全な仕様についてはw3.orgを参照してください。


PS:scrapyはlxmlを使用します。次のようなコードを使用してXPathをテストできます。

import lxml.html as LH

text = '''
<div id='CategoryBreadcrumb'>
<ul>
  <li><a href=#>I dont need</a></li>
  <li><a href=#>I dont need</a></li>
  <li><a href=#>I dont need</a></li>
  <li>Text that i need</li>
</ul>
</div>
'''

doc = LH.fromstring(text)
print(doc.xpath('//div[@id = "CategoryBreadcrumb"]/ul/li/text()'))

# ['Text that i need']
于 2012-05-27T16:58:39.483 に答える
1

次のコマンドを使用してscrapyshellコマンドを試すこともでき
scrapy shell "http://yourdomain.com"
ます。hxs(HtmlXPathSelector)を含むさまざまなすぐに使用できる変数を備えたPythonシェルを取得します。
そこでxpathをテストします。

于 2012-05-28T03:22:24.727 に答える