実現したいこと
Python " scrapy shell " コマンドで、目的の要素を抽出したい。
環境:
Anaconda3
Windows10 Home 64ビット
Scrapyを勉強しています。色々なサイトから、ターゲットデータを抽出する検証を、"scrapy shell " コマンドを使って行っているのですが、以下のナンバーズ4当選番号サイトについて、どう言う訳か、抽出する事ができません。
みずほ銀行『当せん番号案内(ナンバーズ4)』
みずほ銀行 当選番号ナンバーズ4
ナンバーズ4の、最新当選番号を抽出しようとして、試したコマンドです。
AnacondaPrompt
1【 Command 】 2(base) C:\Users\○○○>Scrapy shell https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers4/index.html 3 4 5【 Output 】 62019-11-21 15:12:36 [scrapy.utils.log] INFO: Scrapy 1.6.0 started (bot: scrapybot) 72019-11-21 15:12:36 [scrapy.utils.log] INFO: Versions: lxml 4.4.1.0, libxml2 2.9.9, cssselect 1.1.0, parsel 1.5.2, w3lib 1.21.0, Twisted 19.7.0, Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)], pyOpenSSL 19.0.0 (OpenSSL 1.1.1d 10 Sep 2019), cryptography 2.7, Platform Windows-10-10.0.17763-SP0 82019-11-21 15:12:36 [scrapy.crawler] INFO: Overridden settings: {'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter', 'LOGSTATS_INTERVAL': 0} 92019-11-21 15:12:36 [scrapy.extensions.telnet] INFO: Telnet Password: ea280c4300ff5121 102019-11-21 15:12:36 [scrapy.middleware] INFO: Enabled extensions: 11['scrapy.extensions.corestats.CoreStats', 12 'scrapy.extensions.telnet.TelnetConsole'] 132019-11-21 15:12:36 [scrapy.middleware] INFO: Enabled downloader middlewares: 14['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 15 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 16 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 17 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 18 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 19 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 20 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 21 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 22 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 23 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 24 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 252019-11-21 15:12:36 [scrapy.middleware] INFO: Enabled spider middlewares: 26['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 27 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 28 'scrapy.spidermiddlewares.referer.RefererMiddleware', 29 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 30 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 312019-11-21 15:12:36 [scrapy.middleware] INFO: Enabled item pipelines: 32[] 332019-11-21 15:12:36 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 342019-11-21 15:12:36 [scrapy.core.engine] INFO: Spider opened 352019-11-21 15:12:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers4/index.html> (referer: None) 36[s] Available Scrapy objects: 37[s] scrapy scrapy module (contains scrapy.Request, scrapy.Selector, etc) 38[s] crawler <scrapy.crawler.Crawler object at 0x0000016D71681B08> 39[s] item {} 40[s] request <GET https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers4/index.html> 41[s] response <200 https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers4/index.html> 42[s] settings <scrapy.settings.Settings object at 0x0000016D71681808> 43[s] spider <DefaultSpider 'default' at 0x16d719a4b08> 44[s] Useful shortcuts: 45[s] fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed) 46[s] fetch(req) Fetch a scrapy.Request and update local objects 47[s] shelp() Shell help (print this help) 48[s] view(response) View response in a browser
AnacondaPrompt
1【 Command 】 2In [1]: view(response)・・・【1】 3 4【 Output 】 5Out[1]: True 6 7 8 9【 Command 】 10In [2]: response.xpath('//*[@id="mainCol"]/article/section/section/section/div/div[1]/table[ 11 ...: 1]/tbody/tr[2]/td/strong').extract()・・・【2】 12 13【 Output 】 14Out[2]: ['<strong class="js-lottery-number-pc"></strong>']
【 質問1】
上記【1】で、" view(response) " コマンドでサイト表示させると、添付図の様に『表示に時間がかかっております。再度、ページを更新するか、しばらくお待ちください』と表示され、表の中の、当選番号等の中身が、全く表示されません(添付図②部分)
当選番号を表示させるには、どのようにすれば良いでしょうか?
また、この時のURLバーを見てみると、" file:///C:/Users/○○○/AppData/Local/Temp/tmpw5jxlicy.html "(○○○はユーザー名)と、一時ファイルとして表示されています(添付図①部分)
(但し、他のサイトで、任意のデータ抽出して成功した時も、URLは一時ファイルの場所を、表示しておりました)
【 質問2 】
上記【2】は、最新の当選番号のxpathを、chromeの検証モードでコピぺし、それを元にコマンドを打って、出力させたものです。しかし、肝心の当選番号が表示されません。
これは、何が原因で、どのようにすれば当選番号を表示させる事が出来るのでしょうか?
以上、上記2点の質問につき、解決策をご教示頂きたいです。
どうぞよろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/21 09:14
2019/11/21 09:18 編集
2019/11/21 10:25
2019/11/21 10:30
2019/11/22 01:12