質問編集履歴

2

発生している問題

2017/02/17 11:23

投稿

shota101207
shota101207

スコア8

test CHANGED
File without changes
test CHANGED
@@ -22,19 +22,61 @@
22
22
 
23
23
 
24
24
 
25
+ 下記コードにて、検索結果件数・タイトル・ディスクリプションの取得は出来ました。
26
+
25
- ネット上情報や書籍(Rubyによるローラー開発技法)などを調べ色々と試しましたが、全く上手くません。
27
+ ですが、検索結果10件分の「タイトル」「ディスリプションしか取得出来ていません。
26
28
 
27
29
 
28
30
 
29
- 具体的に、
30
-
31
- 1-検索結果のタイトルディスクリプション上で「B(例:詐欺)などと記載されているもの抽出する事出来ません。
31
+ 検索結果全件数タイトル」「ディスクリプション」を取得する事出来ないのでしょうか?
32
32
 
33
33
 
34
34
 
35
+ ```
36
+
35
- 2-上記に加え、検索結果10件までしかスクレイピングされません
37
+ require 'nokogiri'
38
+
39
+ require 'open-uri'
40
+
41
+ require 'uri'
42
+
43
+ require 'cgi'
44
+
45
+ require 'sanitize'
36
46
 
37
47
 
48
+
49
+ escaped_url = URI.escape("https://www.google.com/search?q=クローラー&oe=utf-8&hl=ja")
50
+
51
+ doc = Nokogiri::HTML(open(escaped_url))
52
+
53
+
54
+
55
+ # 検索結果の数
56
+
57
+ puts doc.xpath("//*[@id='resultStats']/text()")
58
+
59
+ doc.xpath('//h3/a').each do |link|
60
+
61
+ puts CGI.parse(link[:href])["adurl"]
62
+
63
+ puts link.content
64
+
65
+ end
66
+
67
+
68
+
69
+ # タイトルと解説文
70
+
71
+ doc.at('#search').css('.g').each do |result|
72
+
73
+ puts result.at('h3 > a').text
74
+
75
+ puts Sanitize.clean result.at('.st')
76
+
77
+ end
78
+
79
+ ```
38
80
 
39
81
  ###補足情報(言語/FW/ツール等のバージョンなど)
40
82
 

1

発生している問題について詳細を記載

2017/02/17 11:23

投稿

shota101207
shota101207

スコア8

test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,14 @@
26
26
 
27
27
 
28
28
 
29
+ 具体的に、
30
+
31
+ 1-検索結果のタイトル・ディスクリプション上で「B(例:詐欺)」などと記載されているものを抽出する事が出来ません。
32
+
33
+
34
+
35
+ 2-上記に加え、検索結果10件までしかスクレイピングされません
36
+
29
37
 
30
38
 
31
39
  ###補足情報(言語/FW/ツール等のバージョンなど)