質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Scrapy

Scrapyは、Pythonで開発されたオープンソースソフトウェアです。スクレイピングという、Webサービスから必要な情報を取り出したり自動操作をしたりする技術を使うものです。

Q&A

解決済

1回答

1603閲覧

scrapyを用いたクローリングでタイトルの抽出が出来ない

m.delliver

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Scrapy

Scrapyは、Pythonで開発されたオープンソースソフトウェアです。スクレイピングという、Webサービスから必要な情報を取り出したり自動操作をしたりする技術を使うものです。

0グッド

0クリップ

投稿2018/11/29 02:15

編集2018/11/29 02:16

前提・実現したいこと

scrapyを用いてクローリングのプログラムを作成中です。
wiredjpのページのタイトルを取得するプログラムを作成したいです。

発生している問題・エラーメッセージ

クローリングは行われていますがタイトルの取得が出来ていません。

scrapy crawl wiredjp 2018-11-29 11:08:27 [scrapy.utils.log] INFO: Scrapy 1.5.1 started (bot: myproject) 2018-11-29 11:08:27 [scrapy.utils.log] INFO: Versions: lxml 4.2.5.0, libxml2 2.9.8, cssselect 1.0.3, parsel 1.5.1, w3lib 1.19.0, Twisted 18.9.0, Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 03:13:28) - [Clang 6.0 (clang-600.0.57)], pyOpenSSL 18.0.0 (OpenSSL 1.1.0i 14 Aug 2018), cryptography 2.4.1, Platform Darwin-18.2.0-x86_64-i386-64bit 2018-11-29 11:08:27 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'myproject', 'DOWNLOAD_DELAY': 1, 'FEED_EXPORT_ENCODING': 'utf-8', 'NEWSPIDER_MODULE': 'myproject.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['myproject.spiders']} 2018-11-29 11:08:27 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats'] 2018-11-29 11:08:27 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2018-11-29 11:08:28 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2018-11-29 11:08:28 [scrapy.middleware] INFO: Enabled item pipelines: [] 2018-11-29 11:08:28 [scrapy.core.engine] INFO: Spider opened 2018-11-29 11:08:28 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2018-11-29 11:08:28 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023 2018-11-29 11:08:28 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET https://wired.jp/robots.txt> from <GET http://wired.jp/robots.txt> 2018-11-29 11:08:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://wired.jp/robots.txt> (referer: None) 2018-11-29 11:08:31 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET https://wired.jp/robots.txt> from <GET http://wired.jp/robots.txt> 2018-11-29 11:08:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://wired.jp/robots.txt> (referer: None) 2018-11-29 11:08:32 [scrapy.core.engine] INFO: Closing spider (finished) 2018-11-29 11:08:32 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 868, 'downloader/request_count': 4, 'downloader/request_method_count/GET': 4, 'downloader/response_bytes': 1856, 'downloader/response_count': 4, 'downloader/response_status_count/200': 2, 'downloader/response_status_count/301': 2, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2018, 11, 29, 2, 8, 32, 236654), 'log_count/DEBUG': 5, 'log_count/INFO': 7, 'memusage/max': 49451008, 'memusage/startup': 49451008, 'response_received_count': 2, 'scheduler/dequeued': 2, 'scheduler/dequeued/memory': 2, 'scheduler/enqueued': 2, 'scheduler/enqueued/memory': 2, 'start_time': datetime.datetime(2018, 11, 29, 2, 8, 28, 180780)} 2018-11-29 11:08:32 [scrapy.core.engine] INFO: Spider closed (finished)

該当のソースコード

python

1from scrapy.spiders import SitemapSpider 2 3 4class WiredjpSpider(SitemapSpider): 5 name = "wiredjp" 6 allowed_domains = ["wired.jp"] 7 8 # XMLサイトマップのURLのリスト。 9 # robots.txtのURLを指定すると、SitemapディレクティブからXMLサイトマップのURLを取得する。 10 sitemap_urls = [ 11 'http://wired.jp/robots.txt', 12 ] 13 # サイトマップインデックスからたどるサイトマップURLの正規表現のリスト。 14 # このリストの正規表現にマッチするURLのサイトマップのみをたどる。 15 # sitemap_followを指定しない場合は、すべてのサイトマップをたどる。 16 sitemap_follow = [ 17 r'post-2015-', 18 ] 19 # サイトマップに含まれるURLを処理するコールバック関数を指定するルールのリスト。 20 # ルールは (正規表現, 正規表現にマッチするURLを処理するコールバック関数) という2要素のタプルで指定する。 21 # sitemap_rulesを指定しない場合はすべてのURLのコールバック関数はparseメソッドとなる。 22 sitemap_rules = [ 23 (r'/2015/\d\d/\d\d/', 'parse_post'), 24 ] 25 26 def parse_post(self, response): 27 # 詳細ページから投稿のタイトルを抜き出す。 28 yield { 29 'title': response.css('h1.post-title::text').extract_first(), 30 } 31

試したこと

プログラムのチェックとwiredのcssセレクタのチェックは行いました。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wwbQzhMkhhgEmhU

2018/11/29 05:40

問題が多分複数ある上に試していることが明らかに不十分です。まずは何が出来ていなくてタイトルの取得ができないのかを調べましょう。順番に一つずつ学習してください。全部他人に聞いていくのはただの時間の浪費です。
m.delliver

2018/11/29 06:11 編集

他の人に質問するので大丈夫です。ありがとうございました。
guest

回答1

0

ベストアンサー

robots.txtにsitemapが見つからないので
sitemapを指定すると動きました

python

1sitemap_urls = ['https://wired.jp/sitemap.xml']

投稿2018/12/01 06:42

barobaro

総合スコア1286

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問