0

私はscrapyを使おうとしていますが、このばかげたhtmlを試してみました。Xpath Checker firefoxプラグインを使用すると、これはテーブルの最初の行になります。

id('page')/x:table/x:tbody/x:tr[1]/x:td[2]/x:table/x:tbody/x:tr/x:td/x:table/x:tbody/x:tr[1]

そのxpathを次の場所にコピーするとエラーが発生します:

def parse(self, response):
      hxs = HtmlXParseSelector(response)
      data = hx.select("id('page')/x:table/x:tbody/x:tr[1]/x:td[2]/x:table/x:tbody/x:tr/x:td/x:table/x:tbody/x:tr[1]")

raise ValueError("Invalid XPath: %s" % xpath)

なぜこのxpathを認識しないのですか?

また、scrapyが3行目以降のすべてのデータを取得する方法はありますか?最初の2行は、タイトルと凡例だけです。

4

1 に答える 1

1

Firefox は html タグ "tbody" を追加しますが、実際には html にはそれがなくてもかまいません。プログラムで html ページを取得して、タグ「tbody」がどこにあるかを確認してください。Firefoxでも同じ問題に直面しました。

于 2013-03-14T23:53:49.687 に答える