回答編集履歴
4
サンプルコード修正
test
CHANGED
@@ -192,7 +192,7 @@
|
|
192
192
|
|
193
193
|
if thumbnails && thumbnails.length > 0
|
194
194
|
|
195
|
-
link_to_original_image = thumbnail.parent
|
195
|
+
link_to_original_image = thumbnails[0].parent
|
196
196
|
|
197
197
|
page_of_original_image = agent.get(link_to_original_image[:href])
|
198
198
|
|
3
テキスト追加
test
CHANGED
@@ -263,3 +263,65 @@
|
|
263
263
|
|
264
264
|
|
265
265
|
以上、参考になれば幸いです。
|
266
|
+
|
267
|
+
---
|
268
|
+
|
269
|
+
※以下追記です。
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
OTNさんのご回答のコードにあるように、XPathでは
|
276
|
+
|
277
|
+
"//a/img/.."
|
278
|
+
|
279
|
+
の末尾のように、".."を使えるので、私が最後に挙げたコードは
|
280
|
+
|
281
|
+
以下のように少し短くできます。
|
282
|
+
|
283
|
+
```lang-ruby
|
284
|
+
|
285
|
+
# coding: utf-8
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
require 'mechanize'
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
agent = Mechanize.new
|
294
|
+
|
295
|
+
page = agent.get('http://matome.naver.jp/odai/2141968391848272501')
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
links = page.search('//a/img[@class="MTMItemThumb"]/..')
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
if links && links.length > 0
|
304
|
+
|
305
|
+
puts "href:[" + links[0][:href] + "]" #確認のための表示
|
306
|
+
|
307
|
+
page_of_original_image = agent.get(links[0][:href])
|
308
|
+
|
309
|
+
img = page_of_original_image.image_with(src: /jpg\Z/).fetch.save_as('img.jpg')
|
310
|
+
|
311
|
+
end
|
312
|
+
|
313
|
+
```
|
314
|
+
|
315
|
+
|
316
|
+
|
317
|
+
望ましい動きをしてくれるスクレイピングのプログラムを書けるようになるためには、
|
318
|
+
|
319
|
+
今回の $1 の使い方含めて正規表現を使いこなせるようになることに加えて、
|
320
|
+
|
321
|
+
XPathも自分のものにしておくとよいと思います。
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
以上です。
|
326
|
+
|
327
|
+
|
2
テキスト修正
test
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
また、上記の要件で「オリジナル画像」という言い方を
|
43
|
+
また、上記の要件(1)で「オリジナル画像」という言い方を
|
44
44
|
|
45
45
|
している理由は、上記の(2)の正規表現が
|
46
46
|
|
1
テキスト修正
test
CHANGED
@@ -40,7 +40,9 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
+
また、上記の要件で「オリジナル画像」という言い方を
|
44
|
+
|
43
|
-
|
45
|
+
している理由は、上記の(2)の正規表現が
|
44
46
|
|
45
47
|
|
46
48
|
|
@@ -50,11 +52,15 @@
|
|
50
52
|
|
51
53
|
となっていて、<a href="オリジの画像があるページのURL">の
|
52
54
|
|
53
|
-
リンクで囲まれた部分が<img>要素なので、この<img>要素
|
55
|
+
リンクで囲まれた部分が<img>要素なので、この<img>要素が
|
54
|
-
|
56
|
+
|
55
|
-
ダウンロードしたい画像のサムネイルになっているようなページ
|
57
|
+
ダウンロードしたい画像のサムネイルになっているようなページなのかな
|
56
|
-
|
58
|
+
|
57
|
-
|
59
|
+
と思ったからです。
|
60
|
+
|
61
|
+
このサムネイルからオリジ画像だけがあるページにいって、そこから
|
62
|
+
|
63
|
+
画像データを取り込みたいという状況と想定しました。
|
58
64
|
|
59
65
|
|
60
66
|
|