このスレッドの返信数を登録しながら、このmailing listのすべてのタイトルを抽出しようとしています。すべてのタイトルが含まれているFirebugの、<ul>
ために、XPathによる ScrapはFirebugのリストにある "tbody"と "ul"要素を特定できません
である:
/HTML /本体/テーブル[2]/TBODY/TR 1/TD [2] /テーブル/ TBODY/TR/TD/ulの
私はScrapyシェルでこれを直接貼り付ける場合は、それは空のリストが得られます:Iので、(いくつかの試行錯誤の後
scrapy shell http://seclists.org/fulldisclosure/2002/Jul/index.html
response.xpath('/html/body/table[2]/tbody/tr[1]/td[2]/table/tbody/tr/td/ul')
[]
を与えられたセレクタの直下のサブ要素をリストする方法をドキュメントから理解できませんでした(私にあなたが知っているかどうかを知らせてください)、要素 "tbody"がXpath上で動作しなかったことが分かりました。
almost_email_threads = response.xpath('/html/body/table[2]/tr[1]/td[2]/table/tr/td')
しかし、私はリーチ「UL」するために、今しようとした場合、それは動作しません:それらを除去することにより、私は/td
までナビゲートすることができた今
email_threads.xpath('/ul')
[]
を、何が私に最も混乱しますその実行は、次のとおりです。
response.xpath('/html/body/table[2]/tr[1]/td[2]/table/tr/td//ul')
がではなく、ウェブサイト上に表示さと同じ順序で、私のULのを与えるだろう。スレッドをスキップし、異なる順序で実行します。さらに、スレッドごとの返答の数を数えることは不可能に思えます。
私はここで何が欠けていますか?私はScrapyを使ってからしばらくしていましたが、これを理解するのは難しいと思いました。何らかの理由でチュートリアルがBingやGoogleのいずれかを引き出すことはありません。
私はFirebugのを使用したことがない、しかし、あなたが参照するHTMLページを見て、私は次のXPath式はあなたにすべてのトップレベルのスレッド与えることを言うと思います
ありがとうございます。ここではうまくいくようです。 Spacy上のセレクタをリストする方法の答えを知っている人がいるかどうか、他のアドバイスを参考にしたいのですが、私がここであなたの答えを受け入れるかどうかを確認します。私もあなたの答えをupvoted。私の質問とあなたの答えが共に下落した理由を知っていますか?平易な下降の代わりに改善するとコメントしないと改善するのは難しいです。 –
回答の数とセレクタの子を取得する方法を示す答えを更新しました。あなたの質問の下投票に関して、私は推測するしかありません。 MCVの例と少なくとも1つのフォーマットエラーが含まれていると主張されるかもしれない。 http://stackoverflow.com/help/how-to-askを見てみると助かります。しかし、私はそれが説明的なコメントを与えることなしにdownvoteにただ無礼であると思う。 – Markus
親切にありがとう。私はあなたの答えを受け入れた。 –