を使用しています。これは、論文ではweb pageです。抽出するのに役立つ情報があります。カスタムタグでのテキストの抽出は、Scrapy
私はこの論文のタイトル、著者および要約を抽出したいと思います。だから私は次のコードを書いた:
class PublicationSpider(scrapy.Spider):
name = "publications"
start_urls = [
'https://www.ncbi.nlm.nih.gov/pubmed/15721472',
]
def parse(self, response):
for publication in response.css('div.rprt.abstract'):
yield {
'title': publication.css('h1::text').extract_first(),
'author': publication.css('div.auths > a::text').extract(),
'abstract': publication.css('div.abstr abstracttext::text').extract(),
'doi': publication.css('div.aux a::text').extract_first(),
}
残念ながら、上記のコードは正しい内容を返すことができませんでした。 abstracttext
要素はScrapyで認識できないようです。
をh4
に置き換えようとしましたが、スクリプトはうまくいっています。
abstracttext
でコンテンツを抽出するにはどうすればよいですか?
をあなたのコードは私のために動作します。 'scrap shell' '' response.css( 'div.abstr abstracttext :: text') 'を実行し、結果がそこにあります。あなたの 'lxml'バックエンドが何らかの理由で答えを異なってレンダリングしているかもしれませんが、どのオペレーティングシステムを実行していますか? 'pip show lxml'を試してバージョンを教えてください。 –
Granitosaurus
@Granitosaurusはい、 'scrap shell'では動作しますが、Pythonスクリプトでは動作しません。 –
あなたのスパイダーは私のために働きます。 'settings.py'を投稿できますか?あなたはミドルウェアやパイプラインを有効にしていますか?実行ログ全体を投稿することもできますか? 'scrap crawl spider 2>&1> output.log' – Granitosaurus