回答編集履歴
2
補足
answer
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
```
|
32
32
|
考えてみました。収集した記事のタイトルとURLは「URL集」に保存されます。
|
33
33
|
###補足
|
34
|
-
Neverまとめ
|
34
|
+
Neverまとめを理解していませんでした。よく見てみると
|
35
35
|
開いたときに出てくる記事が全てではないということが分かりました。
|
36
36
|
|
37
37
|
変更
|
1
補足
answer
CHANGED
@@ -29,4 +29,44 @@
|
|
29
29
|
}
|
30
30
|
|
31
31
|
```
|
32
|
-
考えてみました。収集した記事のタイトルとURLは「URL集」に保存されます。
|
32
|
+
考えてみました。収集した記事のタイトルとURLは「URL集」に保存されます。
|
33
|
+
###補足
|
34
|
+
Neverまとめの構造を理解していませんでした。よく見てみると
|
35
|
+
開いたときに出てくる記事が全てではないということが分かりました。
|
36
|
+
|
37
|
+
変更
|
38
|
+
```Ruby
|
39
|
+
#encoding : utf-8
|
40
|
+
require"open-uri"
|
41
|
+
require"certified"
|
42
|
+
|
43
|
+
base = "https://matome.naver.jp/topic/1Lv56"
|
44
|
+
|
45
|
+
url = base
|
46
|
+
|
47
|
+
puts "作業開始"
|
48
|
+
|
49
|
+
loop{
|
50
|
+
sleep(4)
|
51
|
+
page = open(url, &:read)
|
52
|
+
title = page.scan(%r|<a href="(.+?)" >(.+?)</a></h3>|)
|
53
|
+
|
54
|
+
File.open("URL集.txt", "a") do |f|
|
55
|
+
title.each do |element|
|
56
|
+
f.puts("#{element[1]}" + "\t" + "#{element[0]}")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
next_page = page.scan(%r|<strong>(.+?)</strong>|).flatten[0].to_i + 1
|
61
|
+
list = page.scan(%r|<a href="#" onclick="(.+?)" >(\d+?)</a>|).map{|e| e[1].to_i}
|
62
|
+
if list.include?(next_page)
|
63
|
+
url = base + "?page=" + next_page.to_s
|
64
|
+
puts "次は#{next_page}ページ目です。"
|
65
|
+
else
|
66
|
+
break
|
67
|
+
end
|
68
|
+
}
|
69
|
+
```
|
70
|
+
各トピックのURLをとることができれば、eachで配列から一つずつbaseに入れて
|
71
|
+
動かせます。どうやって各トピックのURLを集めるのかという問題がありますが。
|
72
|
+
記事被りについては、別で対応した方が楽だろうと私個人は思います。
|