、私は次のようにします、しかしこのXPathからリンクテキストを取得するには? PythonのライブラリScrapyを使用して
response.xpath('//div[@class="title-and-desc"]/a')
のみリンクがされています。
scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
そこから私は、個々のリンク+各返された項目のテキストを取得したいのですが返され、テキストは返されません。ここで返されているもののサンプルです:
response.xpath('//div[@class="title-and-desc"]/a')
[<Selector xpath='//div[@class="title-and-desc"]/a' data=u'<a target="_blank" href="http://www.brpr'>, <Selector xpath='//div[@class="title-and-desc"]/a' data=u'<a target="_blank" href="http://www.dive'>, <Selector xpath='//div[@class="title-and-desc"]/a' data=u'<a target="_blank" href="http://rhodesmi'>,
私はできi
は、各反復するための変数である上記の結果、ループスルー:
i.xpath("text()").extract_first(),
i.xpath("@href").extract_first()
しかし、唯一の@href
値が返されます。これは、text()
が検索結果を取得するためのものがないためです。変更する必要があるので、付随するリンクテキストも入手できますか?
参照のため、完全なScrapyの例はここから来ています:Scrapy Tutorial Example。
。私は 'i.xpath(" // text() ")。extract_first()'を試しましたが、うまくいかなかった。 – 4thSpace
@ 4thSpaceは動作しますが、私の編集例を見てください。 – Granitosaurus
もう一つの便利なオプションは、リンクの中でXPathの 'string()'または 'normalize-space()': 'を使用することです:print(l.xpath( 'normalize-space(。)')extract_first xpath( '@ href')。extract_first()) ' –