前提・実現したいこと
scrapyを使ってクローリングをしたいと思っています。
発生している問題・エラーメッセージ
以下ページに対してクローリングを行ったのですが、ブラウザ(Chrome)で確認した時とは異なるレスポンスでした。
https://yoyaku.sports.metro.tokyo.jp/web/
######scrapy crawlコマンドでクロールした際のレスポンス
<html><head><title>TMGBC 東京都スポーツ施設サービス</title><meta http-equiv="content-type" content="text/html;charset=shift_jis"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="expires" content="Sun, 10 Jan 1990 01:01:01 GMT"></head><script type="text/javascript" src="js/paw_common.js"></script><script type="text/javascript" src="js/paw_errormsg.js"></script><FRAMESET ROWS="170,*"><FRAME SRC="pawae1001.jsp;jsessionid=6OQJADB270OJ2CR3CCSJICJ374OMCE1I6HJ38OPH6LH670ARAK36Q08001Q00000.web2_cluster_1_001" NAME="pawae1001" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="no" FRAMEBORDER="0" onLoad="javaScript:errorMsg('', 0)"><FRAMESET COLS="220,*"><FRAME SRC="pawae1002.jsp;jsessionid=6OQJADB270OJ2CR3CCSJICJ374OMCE1I6HJ38OPH6LH670ARAK36Q08001Q00000.web2_cluster_1_001" NAME="pawae1002" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="auto" FRAMEBORDER="0" ><FRAME SRC="pawae1003.jsp;jsessionid=6OQJADB270OJ2CR3CCSJICJ374OMCE1I6HJ38OPH6LH670ARAK36Q08001Q00000.web2_cluster_1_001#chui" NAME="pawae1003" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="auto" FRAMEBORDER="0" ></FRAMESET><noframes><body bgcolor="#ffffff" text="#333333" link="#3366cc" vlink="#9966cc" alink="#ff3366" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"onload="javaScript:msgHide();javaScript:errorMsg('', 0);startInitTimer()"><script type="text/javascript">loadMsgWrite(this.document); </script>このページはフレームを使用しています。<BR>フレーム対応のブラウザを使用して下さい。<script type="text/javascript">endTagWrite(this.document);</script></body></noframes></FRAMESET></html>
toei_spider.py
import scrapy import boto3 class ToeiSpider(scrapy.Spider): name = "toei" allowed_domains = ['yoyaku.sports.metro.tokyo.jp'] start_urls = [ 'https://yoyaku.sports.metro.tokyo.jp/web/' ] def parse(self, response): # test = response.css('frame.pawae1002') print(response.text)
試したこと
レスポンス内容から見るに、User-Agentが原因だと思い、Chromeと同じエージェントをsettings.pyで設定し、リクエスト内容からもエージェントが正常に設定されていることを確認しましたが、結果は変わりませんでした。
setting.py
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
scrapy crawlコマンド実行結果の抜粋
2019-09-06 11:28:39 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'tennisc', 'NEWSPIDER_MODULE': 'tennisc.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['tennisc.spiders'], 'USER_AGENT': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'}
原因
User-Agent以外にレスポンス内容を変える可能性があるリクエストヘッダ等ありますでしょうか?
回答2件
あなたの回答
tips
プレビュー