前提・実現したいこと
phpで店舗情報のスクレイピングを行なっています。
以下のHTMLにおいてclass属性の名前が被ってしまった場合はどのようにして取得したらいいでしょうか?
一行(1店舗ごと: <tr> )の中に class=”date_time” が2つ入ってしまっている状態に困っています。
定休日と営業時間を別々に取得したいです。
よろしくお願いいたします。
該当のソースコード
php
1function getData(){ 2 require_once("phpQuery-onefile.php"); 3 4 $original = "https://www.ooooooya.jp/shop/"; 5 $html = file_get_contents($original); 6 7 $doc = phpQuery::newDocument($html); 8 9 $filename = "ooooya"; 10 $filename = $filename. ".csv"; 11 12 foreach($doc["tr"] as $tmp){ 13 $storeInfo = pq($tmp); 14 15 // データを取得 16 $data_name = $storeInfo->find(".data_name")->text(); 17 $data_url = $storeInfo->find(".sitecolor")->attr("href"); 18 $address_data = $storeInfo->find(".address")->text(); 19 $data_tel = $storeInfo->find(".data_tel")->text(); 20 $data_time = $storeInfo->find(".data_time")->text(); 21 22 // 取得データを配列に格納 23 $list = array( 24 'data_name' => $data_name, 25 'data_url' => $data_url, 26 'address' => address, 27 'data_time' => data_time, 28 ...... 29 30 'pama_link' => 'oooooya-', 31 'update_date' => date("Y/m/d"), 32 ); 33 34 $all_list[] = $list; 35 } 36 37 // $all_listを基にCSVファイルを作成・書き込み 38 $fp = fopen($filename, "w"); 39 foreach ($all_list as $values) fputcsv($fp, $values); 40 fclose($fp); 41} 42 43 44// 対象html 45<tr> 46 <td class="data_name"><a class="sitecolor" href="http://asahia.net/info/">ooo店</a></td> 47 <td class="data_nearby"> 48 <p class="address">〒ooo-oooo<br />ooo番9号</p> 49 <p class="nearby">分<br />(o条通り)沿い</p> 50 </td> 51 <td class="data_tel">01oo-8o-7ooo</td> 52 <td class="data_time">木曜日</td> //定休日 53 <td class="data_time">10:00~18:00</td> //営業時間 54</tr> 55<tr> 56 <td class="data_name"><a class="sitecolor" href="http://kotoni.oet/info/">oo店</a></td> 57 <td class="data_nearby"> 58 <p class="address">〒0oo-oooo<br />3‐12<br />ビル5階</p> 59 <p class="nearby">地下鉄東口 / 徒歩1分<br />線 駅 / 徒歩2分</p> 60 </td> 61 <td class="data_tel">011-590-0801</td> 62 <td class="data_time">日曜日</td> //定休日 63 <td class="data_time">平日 10:00~18:00<br />土・祝日 10:00~17:00<br /></td> //営業時間 64</tr> 65
試したこと
・配列にいれる。
・2回とる。
補足情報(FW/ツールのバージョンなど)
あなたの回答
tips
プレビュー