質問するログイン新規登録

質問編集履歴

1

ソースコード、エラーを追加

2020/06/09 15:45

投稿

pumskin
pumskin

スコア1

title CHANGED
File without changes
body CHANGED
@@ -10,17 +10,45 @@
10
10
  ご教示願います。
11
11
 
12
12
 
13
+ ### 試したこと
14
+ 参考書では店舗名のテキスト取得のコードが使用されていました。
15
+ これは店舗名しかうまくいかなかったのでネットで検索したところ、google chromeで生成できるxpathで抽出しようと思い試みましたがエラーも出ず、何も抽出されませんでした。
16
+ ```python
13
17
 
18
+ import scrapy
19
+ #https://ramendb.supleks.jp/s/4227.html
20
+ scrapy shell https://ramendb.supleks.jp/s/4227.html
21
+ #店舗名のテキストを取得
22
+ response.css('.shopname').xpath('string()').get()
23
+ #開店日のテキストを取得①
24
+ response.xpath('//*[@id="data-table"]/tbody/tr[12]/text()').extract()
25
+ #開店日のテキストを取得②
26
+ response.xpath('/html/body/div[5]/div/div[1]/div/div[5]/div[1]/div/table/tbody/tr[12]/td/text()').extract()
14
27
  ```
15
28
 
16
- ### 試したこと
17
- google chromeでました。
29
+ ### 生している問題・エラーメッセージ
18
- どちらも何も抽出できませんでした。
19
30
 
20
- ```python
31
+ ```
21
- response.xpath('//*[@id="data-table"]/tbody/tr[12]/text()').extract()
32
+ #scrapy shellの部分は省略
22
33
 
34
+ >>> response.css('.shopname').xpath('string()').get()
35
+ 'ちばから'
36
+ >>> #開店日のテキストを取得①
37
+ >>> response.xpath('//*[@id="data-table"]/tbody/tr[12]/text()').extract()
38
+ []
39
+ >>> #開店日のテキストを取得②
23
- response.xpath('/html/body/div[5]/div/div[1]/div/div[5]/div[1]/div/table/tbody/tr[12]/td/text()').extract()
40
+ >>> response.xpath('/html/body/div[5]/div/div[1]/div/div[5]/div[1]/div/table/tbody/tr[12]/td/text()').extract()
41
+ []
24
42
 
25
43
 
44
+ ```
45
+
46
+ ###追加と修正
47
+ octoparse様の回答を参考に行ったところ。抽出はできました。
48
+ ですが、ここからテキストのみを取得したいです。
49
+ ```
50
+ >>>response.xpath('//th[text()="開店日"]/following-sibling::td[1]').get()
51
+ '<td>2004年10月8日</td>'
52
+ >>> response.xpath('//div[@id="shop-data"]//span[@itemprop="address"]').get()
53
+ '<span itemprop="address">〒290-0072 <a href="/search/shop?state=chiba">千葉県</a><a href="/search/shop?state=chiba&amp;city=%E5%B8%82%E5%8E%9F%E5%B8%82">市原市</a>西国分寺台1-3-16</span>'
26
54
  ```