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

回答編集履歴

3

追記

2018/04/03 23:29

投稿

trafalbad
trafalbad

スコア303

answer CHANGED
@@ -4,7 +4,7 @@
4
4
  <img alt="手打蕎麦 じゆうさん - 地図" class="js-map-lazyload lazy-loaded" data-original="https://maps.googleapis.com/maps/api/staticmap?client=gme-kakakucominc&amp;channel=tabelog.com&amp;sensor=false&amp;hl=ja&amp;center=35.729935105434045,139.6771439234143&amp;markers=color:red%7C35.729935105434045,139.6771439234143&amp;zoom=15&amp;size=490x145&amp;signature=VSZ6kU86WFstcOCQz9OYcWo-6EM=" src="https://maps.googleapis.com/maps/api/staticmap?client=gme-kakakucominc&amp;channel=tabelog.com&amp;sensor=false&amp;hl=ja&amp;center=35.729935105434045,139.6771439234143&amp;markers=color:red%7C35.729935105434045,139.6771439234143&amp;zoom=15&amp;size=490x145&amp;signature=VSZ6kU86WFstcOCQz9OYcWo-6EM=">
5
5
  ```
6
6
 
7
- とりあえずreferenceはCSSセレクターなのでscrapyの[これ](http://scrapy-ja.readthedocs.io/ja/latest/topics/selectors.html)。
7
+ とりあえずreferenceはCSSセレクターなのでscrapyの[これ](http://scrapy-ja.readthedocs.io/ja/latest/topics/selectors.html)。また[scrapyのspiderのも](http://scrapy-ja.readthedocs.io/ja/latest/topics/spiders.html)良いです。
8
8
  base URLを取得したいときは
9
9
  ```
10
10
  response.css('base::attr(href)').extract()

2

変更

2018/04/03 23:29

投稿

trafalbad
trafalbad

スコア303

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  ```
13
13
 
14
14
 
15
- を指定したやるので、この解釈だと<img>タグのclass=js-map-lazyload
15
+ を指定したやるので、この解釈だとclass=js-map-lazyloadの<img>タグのdata-original属性を取得する」ということになります
16
16
 
17
17
  ```
18
18
  response.css('<タグ名>.<クラス名>::attr(<URLの属性>)')

1

追記

2018/04/03 23:27

投稿

trafalbad
trafalbad

スコア303

answer CHANGED
@@ -14,6 +14,17 @@
14
14
 
15
15
  を指定したやるので、この解釈だと<img>タグのclass=js-map-lazyloadなので
16
16
 
17
+ ```
17
- ```response.css('<タグ名>.<クラス名>::attr(<URLの属性>)')```
18
+ response.css('<タグ名>.<クラス名>::attr(<URLの属性>)')
19
+ ```
18
20
 
19
- という指定でいいかと
21
+ という指定でいいかと
22
+
23
+ extract_first()は最初の要素(data-original属性の要素)を取り出します。
24
+
25
+ ```
26
+ In [1]: response.css('img.js-map-lazyload::attr("data-original")').extract_first()
27
+
28
+
29
+ Out[1]: 'https://maps.googleapis.com/maps/api/staticmap?client=gme-kakakucominc&channel=tabelog.com&sensor=false&hl=ja&center=35.729935105434045,139.6771439234143&markers=color:red%7C35.729935105434045,139.6771439234143&zoom=15&size=490x145&signature=VSZ6kU86WFstcOCQz9OYcWo-6EM='
30
+ ```