質問編集履歴

8

コード追加。

2018/05/04 12:19

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -22,39 +22,93 @@
22
22
 
23
23
  ```php
24
24
 
25
- $storeInfo = pq($tmp);
25
+ function getData(){
26
+
27
+ require_once("phpQuery-onefile.php");
26
28
 
27
29
 
28
30
 
29
- // データを取得
31
+ $original = "https://www.ooooooya.jp/shop/";
30
32
 
31
- $data_name = $storeInfo->find(".data_name")->text();
32
-
33
- $data_url = $storeInfo->find(".sitecolor")->attr("href");
34
-
35
- $address_data = $storeInfo->find(".address")->text();
36
-
37
- $data_tel = $storeInfo->find(".data_tel")->text();
33
+ $html = file_get_contents($original);
38
-
39
- $data_time = $storeInfo->find(".data_time")->text();
40
34
 
41
35
 
42
36
 
43
- // 取得データを配列に格納
37
+ $doc = phpQuery::newDocument($html);
44
38
 
45
- $list = array(
46
39
 
47
- 'data_name' => $data_name,
48
40
 
49
- 'data_url' => $data_url,
41
+ $filename = "ooooya";
50
42
 
51
- 'address' => address,
43
+ $filename = $filename. ".csv";
52
44
 
45
+
46
+
47
+ foreach($doc["tr"] as $tmp){
48
+
49
+ $storeInfo = pq($tmp);
50
+
51
+
52
+
53
+ // データを取得
54
+
55
+ $data_name = $storeInfo->find(".data_name")->text();
56
+
57
+ $data_url = $storeInfo->find(".sitecolor")->attr("href");
58
+
59
+ $address_data = $storeInfo->find(".address")->text();
60
+
61
+ $data_tel = $storeInfo->find(".data_tel")->text();
62
+
63
+ $data_time = $storeInfo->find(".data_time")->text();
64
+
65
+
66
+
67
+ // 取得データを配列に格納
68
+
69
+ $list = array(
70
+
71
+ 'data_name' => $data_name,
72
+
73
+ 'data_url' => $data_url,
74
+
75
+ 'address' => address,
76
+
53
- 'data_time' => data_time,
77
+ 'data_time' => data_time,
54
78
 
55
79
  ......
56
80
 
57
81
 
82
+
83
+ 'pama_link' => 'oooooya-',
84
+
85
+ 'update_date' => date("Y/m/d"),
86
+
87
+ );
88
+
89
+
90
+
91
+ $all_list[] = $list;
92
+
93
+ }
94
+
95
+
96
+
97
+ // $all_listを基にCSVファイルを作成・書き込み
98
+
99
+ $fp = fopen($filename, "w");
100
+
101
+ foreach ($all_list as $values) fputcsv($fp, $values);
102
+
103
+ fclose($fp);
104
+
105
+ }
106
+
107
+
108
+
109
+
110
+
111
+ // 対象html
58
112
 
59
113
  <tr>
60
114
 

7

コード加筆

2018/05/04 12:19

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,10 @@
21
21
 
22
22
 
23
23
  ```php
24
+
25
+ $storeInfo = pq($tmp);
26
+
27
+
24
28
 
25
29
  // データを取得
26
30
 

6

説明文修正。

2018/05/04 12:10

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,8 @@
7
7
  以下のHTMLにおいてclass属性の名前が被ってしまった場合はどのようにして取得したらいいでしょうか?
8
8
 
9
9
  一行(1店舗ごと: <tr> )の中に class=”date_time” が2つ入ってしまっている状態に困っています。
10
+
11
+ 定休日と営業時間を別々に取得したいです。
10
12
 
11
13
 
12
14
 

5

インデント修正。

2018/05/04 11:57

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- // 取得データを配列に格納
37
+ // 取得データを配列に格納
38
38
 
39
39
  $list = array(
40
40
 

4

説明文修正。ソースコード加筆、変数名変更。

2018/05/04 11:55

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,21 +4,13 @@
4
4
 
5
5
  phpで店舗情報のスクレイピングを行なっています。
6
6
 
7
- class名が被ってしまった場合はどのようにして取得したらいいでしょうか?
7
+ 以下のHTMLにおいてclass属性のが被ってしまった場合はどのようにして取得したらいいでしょうか?
8
8
 
9
- date_time が<tr>の中に2つ入ってしまっている状態に困っています。
9
+ 一行(1店舗ごと: <tr> )の中に class=”date_time が2つ入ってしまっている状態に困っています。
10
10
 
11
11
 
12
12
 
13
-
14
-
15
- ### 発生る問題・エラーメッセージ
13
+ よろくお願いたします。
16
-
17
-
18
-
19
- ```
20
-
21
- ```
22
14
 
23
15
 
24
16
 
@@ -28,55 +20,73 @@
28
20
 
29
21
  ```php
30
22
 
23
+ // データを取得
31
24
 
25
+ $data_name = $storeInfo->find(".data_name")->text();
32
26
 
27
+ $data_url = $storeInfo->find(".sitecolor")->attr("href");
28
+
29
+ $address_data = $storeInfo->find(".address")->text();
30
+
31
+ $data_tel = $storeInfo->find(".data_tel")->text();
32
+
33
- $data_time = $tt->find(".data_time")->text();
33
+ $data_time = $storeInfo->find(".data_time")->text();
34
34
 
35
35
 
36
36
 
37
+ // 取得データを配列に格納
38
+
39
+ $list = array(
40
+
41
+ 'data_name' => $data_name,
42
+
43
+ 'data_url' => $data_url,
44
+
45
+ 'address' => address,
46
+
47
+ 'data_time' => data_time,
48
+
49
+ ......
37
50
 
38
51
 
39
52
 
40
-
41
- =====データサンプル=====
42
-
43
53
  <tr>
44
54
 
45
- <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td>
55
+   <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td>
46
56
 
47
- <td class="data_nearby">
57
+   <td class="data_nearby">
48
58
 
49
- <p class="address">〒ooo-oooo<br />ooo番9号</p>
59
+     <p class="address">〒ooo-oooo<br />ooo番9号</p>
50
60
 
51
- <p class="nearby">分<br />(o条通り)沿い</p>
61
+     <p class="nearby">分<br />(o条通り)沿い</p>
52
62
 
53
- </td>
63
+   </td>
54
64
 
55
- <td class="data_tel">01oo-8o-7ooo</td>
65
+   <td class="data_tel">01oo-8o-7ooo</td>
56
66
 
57
- <td class="data_time">木曜日</td>
67
+   <td class="data_time">木曜日</td> //定休日
58
68
 
59
- <td class="data_time">10:00~18:00</td>
69
+   <td class="data_time">10:00~18:00</td> //営業時間
60
70
 
61
71
  </tr>
62
72
 
63
73
  <tr>
64
74
 
65
- <td class="data_name"><a class="sitecolor" href="http://kotoni.oet/info/">oo店</a></td>
75
+   <td class="data_name"><a class="sitecolor" href="http://kotoni.oet/info/">oo店</a></td>
66
76
 
67
- <td class="data_nearby">
77
+   <td class="data_nearby">
68
78
 
69
- <p class="address">〒0oo-oooo<br />3‐12<br />ビル5階</p>
79
+     <p class="address">〒0oo-oooo<br />3‐12<br />ビル5階</p>
70
80
 
71
- <p class="nearby">地下鉄東口 / 徒歩1分<br />線 駅 / 徒歩2分</p>
81
+     <p class="nearby">地下鉄東口 / 徒歩1分<br />線 駅 / 徒歩2分</p>
72
82
 
73
- </td>
83
+   </td>
74
84
 
75
- <td class="data_tel">011-590-0801</td>
85
+   <td class="data_tel">011-590-0801</td>
76
86
 
77
- <td class="data_time">日曜日</td>
87
+   <td class="data_time">日曜日</td> //定休日
78
88
 
79
- <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td>
89
+   <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td> //営業時間
80
90
 
81
91
  </tr>
82
92
 

3

2018/05/04 11:54

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -27,6 +27,8 @@
27
27
 
28
28
 
29
29
  ```php
30
+
31
+
30
32
 
31
33
  $data_time = $tt->find(".data_time")->text();
32
34
 

2

2018/05/03 09:44

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -76,7 +76,11 @@
76
76
 
77
77
  <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td>
78
78
 
79
- </tr>```
79
+ </tr>
80
+
81
+
82
+
83
+ ```
80
84
 
81
85
 
82
86
 

1

deta syuusei

2018/05/03 09:43

投稿

ruuuuch
ruuuuch

スコア6

test CHANGED
File without changes
test CHANGED
@@ -44,9 +44,9 @@
44
44
 
45
45
  <td class="data_nearby">
46
46
 
47
- <p class="address">〒078-8237<br />ooo番9号</p>
47
+ <p class="address">〒ooo-oooo<br />ooo番9号</p>
48
48
 
49
- <p class="nearby">分<br />(8条通り)沿い</p>
49
+ <p class="nearby">分<br />(o条通り)沿い</p>
50
50
 
51
51
  </td>
52
52