質問編集履歴

4

コードを修正

2017/03/22 04:22

投稿

katsuya_ds
katsuya_ds

スコア35

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,8 @@
7
7
 
8
8
 
9
9
  ```ruby
10
+
11
+ keyword = [ファッション ブログ,ファッション 女性]
10
12
 
11
13
  driver.navigate.to("https://search.yahoo.co.jp/search?p=ファッション+ブログ")
12
14
 

3

実際のコードを入力

2017/03/22 04:22

投稿

katsuya_ds
katsuya_ds

スコア35

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,71 @@
2
2
 
3
3
 
4
4
 
5
- 配列
5
+ yahooで「ファッション ブログ」で検索した時に表示されるタイトル(<h3>)に「ファッション」、「ブログ」の両方が含まれるタイトルの数を取りたい思っおります。
6
6
 
7
- array = ["あいうえおか","かきくけこ","さしすせそか","たちつてと"]
8
7
 
9
- があった時に
10
8
 
11
- str = "あ か"
9
+ ```ruby
12
10
 
13
- という半角スペースで仕切られた文字列が↑の配列の中で一致する要素の数を取りたいと思っております。
11
+ driver.navigate.to("https://search.yahoo.co.jp/search?p=ファッション+ブログ")
14
12
 
13
+ h3 = driver.find_element(:id, 'WS2m').find_elements(:tag_name, 'h3')
14
+
15
+ titles = []
16
+
17
+ for i in 0..h3.count - 1
18
+
19
+ titles << h3[i].text
20
+
21
+ end
22
+
23
+ words = keyword[0].split(" ")
24
+
25
+ matched_count = 0
26
+
27
+ matched_title_count = 0
28
+
29
+ for i in 0..titles.count - 1
30
+
31
+ for x in 0..words.count - 1
32
+
33
+ if titles[i].include?(words[x])
34
+
15
- 上記の例だと一致する数は1だと思います。
35
+ matched_count += 1
36
+
37
+ end
38
+
39
+ end
40
+
41
+ if matched_count == words.count
42
+
43
+ matched_title_count += 1
44
+
45
+ end
46
+
47
+ end
48
+
49
+ ```
50
+
51
+
52
+
53
+ こう書いたのですが、matched_title_countは1となってしまいます。
54
+
55
+ 実際の取得したタイトルは、
56
+
57
+ ```ruby
58
+
59
+ titles = ["ファッション by AmebaGG | Ameba(アメーバ)人気ブログランキング", "ファッションブログランキング|Ameba (アメーバ)", "いつたけオフィシャルブログ「ARIGATO」Powered by Ameba", "yokoオフィシャルブログ「プチプラコーデ術」Po
60
+
61
+ wered by Ameba", "40代ファッション - 人気ブログランキング", "ファッションブログ人気ランキング - ファッションブログ村 人気ブログ ...", "ファッションブログランキング - ファッション・ブランド・アクセサリー村", "大人カジュア
62
+
63
+ ル系 - ファッションブログ村", "ファッション|人気ブログランキング - 楽天ブログ", "50代になっても 洋服好き主婦のファッションブログ"]
64
+
65
+ ```
66
+
67
+
68
+
69
+ なので、1件のみのヒットでは無いはずなのですが、理由がわかりません。
16
70
 
17
71
 
18
72
 

2

言語を追加

2017/03/22 04:17

投稿

katsuya_ds
katsuya_ds

スコア35

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ rubyでの質問になります。
2
+
3
+
4
+
1
5
  配列として
2
6
 
3
7
  array = ["あいうえおか","かきくけこ","さしすせそか","たちつてと"]

1

変数名と変数名を追加しました。

2017/03/22 03:14

投稿

katsuya_ds
katsuya_ds

スコア35

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,12 @@
1
1
  配列として
2
2
 
3
- ["あいうえおか","かきくけこ","さしすせそか","たちつてと"]
3
+ array = ["あいうえおか","かきくけこ","さしすせそか","たちつてと"]
4
4
 
5
5
  があった時に
6
6
 
7
+ str = "あ か"
8
+
7
- 「あ か」という半角スペースで仕切られた文字列が↑の配列の中で一致する要素の数を取りたいと思っております。
9
+ という半角スペースで仕切られた文字列が↑の配列の中で一致する要素の数を取りたいと思っております。
8
10
 
9
11
  上記の例だと一致する数は1だと思います。
10
12