質問するログイン新規登録

質問編集履歴

8

コード追加。

2018/05/04 12:19

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -10,23 +10,50 @@
10
10
  ### 該当のソースコード
11
11
 
12
12
  ```php
13
- $storeInfo = pq($tmp);
13
+ function getData(){
14
+ require_once("phpQuery-onefile.php");
14
15
 
15
- // データを取得
16
- $data_name = $storeInfo->find(".data_name")->text();
17
- $data_url = $storeInfo->find(".sitecolor")->attr("href");
16
+ $original = "https://www.ooooooya.jp/shop/";
18
- $address_data = $storeInfo->find(".address")->text();
19
- $data_tel = $storeInfo->find(".data_tel")->text();
17
+ $html = file_get_contents($original);
20
- $data_time = $storeInfo->find(".data_time")->text();
21
18
 
19
+ $doc = phpQuery::newDocument($html);
20
+
21
+ $filename = "ooooya";
22
+ $filename = $filename. ".csv";
23
+
24
+ foreach($doc["tr"] as $tmp){
25
+ $storeInfo = pq($tmp);
26
+
27
+ // データを取得
28
+ $data_name = $storeInfo->find(".data_name")->text();
29
+ $data_url = $storeInfo->find(".sitecolor")->attr("href");
30
+ $address_data = $storeInfo->find(".address")->text();
31
+ $data_tel = $storeInfo->find(".data_tel")->text();
32
+ $data_time = $storeInfo->find(".data_time")->text();
33
+
22
- // 取得データを配列に格納
34
+ // 取得データを配列に格納
23
- $list = array(
35
+ $list = array(
24
- 'data_name' => $data_name,
36
+ 'data_name' => $data_name,
25
- 'data_url' => $data_url,
37
+ 'data_url' => $data_url,
26
- 'address' => address,
38
+ 'address' => address,
27
- 'data_time' => data_time,
39
+ 'data_time' => data_time,
28
40
  ......
29
41
 
42
+ 'pama_link' => 'oooooya-',
43
+ 'update_date' => date("Y/m/d"),
44
+ );
45
+
46
+ $all_list[] = $list;
47
+ }
48
+
49
+ // $all_listを基にCSVファイルを作成・書き込み
50
+ $fp = fopen($filename, "w");
51
+ foreach ($all_list as $values) fputcsv($fp, $values);
52
+ fclose($fp);
53
+ }
54
+
55
+
56
+ // 対象html
30
57
  <tr>
31
58
    <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td>
32
59
    <td class="data_nearby">

7

コード加筆

2018/05/04 12:19

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,8 @@
10
10
  ### 該当のソースコード
11
11
 
12
12
  ```php
13
+ $storeInfo = pq($tmp);
14
+
13
15
  // データを取得
14
16
  $data_name = $storeInfo->find(".data_name")->text();
15
17
  $data_url = $storeInfo->find(".sitecolor")->attr("href");

6

説明文修正。

2018/05/04 12:10

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
  phpで店舗情報のスクレイピングを行なっています。
4
4
  以下のHTMLにおいてclass属性の名前が被ってしまった場合はどのようにして取得したらいいでしょうか?
5
5
  一行(1店舗ごと: <tr> )の中に class=”date_time” が2つ入ってしまっている状態に困っています。
6
+ 定休日と営業時間を別々に取得したいです。
6
7
 
7
8
  よろしくお願いいたします。
8
9
 

5

インデント修正。

2018/05/04 11:57

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
  $data_tel = $storeInfo->find(".data_tel")->text();
17
17
  $data_time = $storeInfo->find(".data_time")->text();
18
18
 
19
- // 取得データを配列に格納
19
+ // 取得データを配列に格納
20
20
  $list = array(
21
21
  'data_name' => $data_name,
22
22
  'data_url' => $data_url,

4

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

2018/05/04 11:55

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,43 +1,48 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  phpで店舗情報のスクレイピングを行なっています。
4
- class名が被ってしまった場合はどのようにして取得したらいいでしょうか?
4
+ 以下のHTMLにおいてclass属性のが被ってしまった場合はどのようにして取得したらいいでしょうか?
5
- date_time <tr>の中に2つ入ってしまっている状態に困っています。
5
+ 一行(1店舗ごと: <tr>の中に class=”date_time” が2つ入ってしまっている状態に困っています。
6
6
 
7
+ よろしくお願いいたします。
7
8
 
8
- ### 発生している問題・エラーメッセージ
9
-
10
- ```
11
- ```
12
-
13
9
  ### 該当のソースコード
14
10
 
15
11
  ```php
12
+ // データを取得
13
+ $data_name = $storeInfo->find(".data_name")->text();
14
+ $data_url = $storeInfo->find(".sitecolor")->attr("href");
15
+ $address_data = $storeInfo->find(".address")->text();
16
+ $data_tel = $storeInfo->find(".data_tel")->text();
17
+ $data_time = $storeInfo->find(".data_time")->text();
16
18
 
19
+ // 取得データを配列に格納
20
+ $list = array(
21
+ 'data_name' => $data_name,
22
+ 'data_url' => $data_url,
23
+ 'address' => address,
17
- $data_time = $tt->find(".data_time")->text();
24
+ 'data_time' => data_time,
25
+ ......
18
26
 
19
-
20
-
21
- =====データサンプル=====
22
27
  <tr>
23
- <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td>
28
+   <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td>
24
- <td class="data_nearby">
29
+   <td class="data_nearby">
25
- <p class="address">〒ooo-oooo<br />ooo番9号</p>
30
+     <p class="address">〒ooo-oooo<br />ooo番9号</p>
26
- <p class="nearby">分<br />(o条通り)沿い</p>
31
+     <p class="nearby">分<br />(o条通り)沿い</p>
27
- </td>
32
+   </td>
28
- <td class="data_tel">01oo-8o-7ooo</td>
33
+   <td class="data_tel">01oo-8o-7ooo</td>
29
- <td class="data_time">木曜日</td>
34
+   <td class="data_time">木曜日</td> //定休日
30
- <td class="data_time">10:00~18:00</td>
35
+   <td class="data_time">10:00~18:00</td> //営業時間
31
36
  </tr>
32
37
  <tr>
33
- <td class="data_name"><a class="sitecolor" href="http://kotoni.oet/info/">oo店</a></td>
38
+   <td class="data_name"><a class="sitecolor" href="http://kotoni.oet/info/">oo店</a></td>
34
- <td class="data_nearby">
39
+   <td class="data_nearby">
35
- <p class="address">〒0oo-oooo<br />3‐12<br />ビル5階</p>
40
+     <p class="address">〒0oo-oooo<br />3‐12<br />ビル5階</p>
36
- <p class="nearby">地下鉄東口 / 徒歩1分<br />線 駅 / 徒歩2分</p>
41
+     <p class="nearby">地下鉄東口 / 徒歩1分<br />線 駅 / 徒歩2分</p>
37
- </td>
42
+   </td>
38
- <td class="data_tel">011-590-0801</td>
43
+   <td class="data_tel">011-590-0801</td>
39
- <td class="data_time">日曜日</td>
44
+   <td class="data_time">日曜日</td> //定休日
40
- <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td>
45
+   <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td> //営業時間
41
46
  </tr>
42
47
 
43
48
  ```

3

2018/05/04 11:54

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -13,6 +13,7 @@
13
13
  ### 該当のソースコード
14
14
 
15
15
  ```php
16
+
16
17
  $data_time = $tt->find(".data_time")->text();
17
18
 
18
19
 

2

2018/05/03 09:44

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -37,8 +37,10 @@
37
37
  <td class="data_tel">011-590-0801</td>
38
38
  <td class="data_time">日曜日</td>
39
39
  <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td>
40
- </tr>```
40
+ </tr>
41
41
 
42
+ ```
43
+
42
44
  ### 試したこと
43
45
  ・配列にいれる。
44
46
  ・2回とる。

1

deta syuusei

2018/05/03 09:43

投稿

ruuuuch
ruuuuch

スコア6

title CHANGED
File without changes
body CHANGED
@@ -21,8 +21,8 @@
21
21
  <tr>
22
22
  <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td>
23
23
  <td class="data_nearby">
24
- <p class="address">〒078-8237<br />ooo番9号</p>
24
+ <p class="address">〒ooo-oooo<br />ooo番9号</p>
25
- <p class="nearby">分<br />(8条通り)沿い</p>
25
+ <p class="nearby">分<br />(o条通り)沿い</p>
26
26
  </td>
27
27
  <td class="data_tel">01oo-8o-7ooo</td>
28
28
  <td class="data_time">木曜日</td>