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

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

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

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

Scrapy

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

Q&A

解決済

1回答

2011閲覧

PythonのWebスクレイピングフレームワークであるscrapyでの疑問です。

RarigoB

総合スコア26

Python 3.x

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

Scrapy

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

0グッド

0クリップ

投稿2018/03/16 15:19

scrapy shell でURLを指定するとき、URLに日本語などが混ざっていた場合やURLによって起動しません。、正常に起動しないのですが、理由はなんなのでしょうか。

例として紀伊国屋書店の在庫の情報をクローラーで自動で収集しようと考えたのですが、
https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01&GOODS_STK_NO=9784041052068&MAN_ENTR_CD1=FA

このようなURLの場合正常に起動しません。

scrapy

1 scrapy shell https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01&GOODS_STK_NO=9784041052068&MAN_ENTR_CD1=FA 2[2] 9412 3[3] 9413 4maname@myname-To-be-filled-by-O-E-M:~$ 2018-03-16 23:37:23 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: scrapybot) 52018-03-16 23:37:23 [scrapy.utils.log] INFO: Versions: lxml 3.5.0.0, libxml2 2.9.3, cssselect 1.0.1, parsel 1.3.1, w3lib 1.18.0, Twisted 17.9.0, Python 3.5.2 (default, Nov 23 2017, 16:37:01) - [GCC 5.4.0 20160609], pyOpenSSL 17.5.0 (OpenSSL 1.1.0g 2 Nov 2017), cryptography 2.1.4, Platform Linux-4.4.0-116-generic-x86_64-with-Ubuntu-16.04-xenial 62018-03-16 23:37:23 [scrapy.crawler] INFO: Overridden settings: {'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter', 'LOGSTATS_INTERVAL': 0} 72018-03-16 23:37:23 [scrapy.middleware] INFO: Enabled extensions: 8['scrapy.extensions.telnet.TelnetConsole', 9 'scrapy.extensions.memusage.MemoryUsage', 10 'scrapy.extensions.corestats.CoreStats'] 112018-03-16 23:37:23 [scrapy.middleware] INFO: Enabled downloader middlewares: 12['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 13 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 14 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 15 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 16 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 17 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 18 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 19 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 20 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 21 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 22 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 232018-03-16 23:37:23 [scrapy.middleware] INFO: Enabled spider middlewares: 24['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 25 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 26 'scrapy.spidermiddlewares.referer.RefererMiddleware', 27 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 28 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 292018-03-16 23:37:23 [scrapy.middleware] INFO: Enabled item pipelines: 30[] 312018-03-16 23:37:23 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6025 322018-03-16 23:37:23 [scrapy.core.engine] INFO: Spider opened 332018-03-16 23:37:23 [scrapy.core.engine] DEBUG: Crawled (404) <GET https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01> (referer: None) 34[s] Available Scrapy objects: 35[s] scrapy scrapy module (contains scrapy.Request, scrapy.Selector, etc) 36[s] crawler <scrapy.crawler.Crawler object at 0x7fd8d08b80b8> 37[s] item {} 38[s] request <GET https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01> 39[s] response <404 https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01> 40[s] settings <scrapy.settings.Settings object at 0x7fd8cf3efcc0> 41[s] spider <DefaultSpider 'default' at 0x7fd8ceff9630> 42[s] Useful shortcuts: 43[s] fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed) 44[s] fetch(req) Fetch a scrapy.Request and update local objects 45[s] shelp() Shell help (print this help) 46[s] view(response) View response in a browser 47^C 48 49[2]+ 停止 scrapy shell https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01 50[3] 終了 GOODS_STK_NO=9784041052068 51

原因を教えていただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

■ログの読み方
1,リクエスト

Python

1scrapy shell https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01&GOODS_STK_NO=9784041052068&MAN_ENTR_CD1=FA

2,レスポンス

Python

1[s] request <GET https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01> 2[s] response <404 https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01>

ログの1と2を比較するとリクエストURLが&以降が無視されURLが変わっています。
responseの数字:404はHTTP ステータスコードでリクエスト対象が存在しないことを表しています。

■理由
&記号は特殊な意味をもつ事が多い記号です。

リクエストURLを""で囲って実行してみてくださいな。

Python

1scrapy shell "https://www.kinokuniya.co.jp/disp/CKnSfStockSearchStockView.jsp?CAT=01&GOODS_STK_NO=9784041052068&MAN_ENTR_CD1=FA"

投稿2018/03/16 23:25

編集2018/03/16 23:45
umyu

総合スコア5846

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

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

RarigoB

2018/03/17 13:55

単純なことすぎて自分で笑ってしまいました。 解答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問