pythonを2ヶ月前から勉強し始めた初学者です。
今、スクレイピングの参考書を見ながらサイトのスクレイピングを使用と試みています。
発生している問題・エラーメッセージ
https://ramendb.supleks.jp/s/4227.html
このサイトの店舗名、住所、開店日を抽出したいのですがうまくいきません。
ご教示願います。
試したこと
参考書では店舗名のテキスト取得のコードが使用されていました。
これは店舗名しかうまくいかなかったのでネットで検索したところ、google chromeで生成できるxpathで抽出しようと思い試みましたがエラーも出ず、何も抽出されませんでした。
python
1 2import scrapy 3#https://ramendb.supleks.jp/s/4227.html 4scrapy shell https://ramendb.supleks.jp/s/4227.html 5#店舗名のテキストを取得 6response.css('.shopname').xpath('string()').get() 7#開店日のテキストを取得① 8response.xpath('//*[@id="data-table"]/tbody/tr[12]/text()').extract() 9#開店日のテキストを取得② 10response.xpath('/html/body/div[5]/div/div[1]/div/div[5]/div[1]/div/table/tbody/tr[12]/td/text()').extract()
発生している問題・エラーメッセージ
#scrapy shellの部分は省略 >>> response.css('.shopname').xpath('string()').get() 'ちばから' >>> #開店日のテキストを取得① >>> response.xpath('//*[@id="data-table"]/tbody/tr[12]/text()').extract() [] >>> #開店日のテキストを取得② >>> response.xpath('/html/body/div[5]/div/div[1]/div/div[5]/div[1]/div/table/tbody/tr[12]/td/text()').extract() []
###追加と修正
octoparse様の回答を参考に行ったところ。抽出はできました。
ですが、ここからテキストのみを取得したいです。
>>>response.xpath('//th[text()="開店日"]/following-sibling::td[1]').get() '<td>2004年10月8日</td>' >>> response.xpath('//div[@id="shop-data"]//span[@itemprop="address"]').get() '<span itemprop="address">〒290-0072 <a href="/search/shop?state=chiba">千葉県</a><a href="/search/shop?state=chiba&city=%E5%B8%82%E5%8E%9F%E5%B8%82">市原市</a>西国分寺台1-3-16</span>'