Ben kişisel kullanım için temel bir ekran kazıyıcı bina ve öğrenme amaçları, bu yüzden vb "izin istemek gerekir" gibi yorumlar göndermeyin lütfen değilim
Aşağıdaki gibi erişmeye çalışıyorum veriler yapılandırılmış:
<tr>
<td>
<div class="wrapper">
<div class="randomDiv">
<div class="divContent">
<div class="event">asd</div>
<div class="date">asd</div>
<div class="venue">asd</div>
<div class="state">asd</div>
</div>
</div>
</div>
</td>
</tr>
Ben (yaklaşık 20 satır verilen sayfada olduğu gibi) tüm bu verileri toplamak için çalışılıyor.
Ben ihtiyacım verileri toplamak başardı aşağıdaki kodu kullanarak:
$remote = file_get_contents("linktoURL");
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$file = @$doc->loadHTML($remote);
$rows = $doc->getElementsByTagName('tr');
$xp = new DOMXpath($doc);
//initialize variables
$rows = array();
foreach($xp->query('//*[contains(@class, \'wrapper\')]', $doc) as $found) {
echo "<pre>";
print_r($found->nodeValue);
}
Şimdi soru nasıl aşağıdaki gibi bir ilişkisel dizi içine tüm bu verileri depolamak hakkında gitmek olduğunu:
Array (
[0] => Array
(
[Event] => Name
[Date] => 12/12/12
[Venue] => NameOfPlace
[state] => state
)
[1] => Array
(
[Event] => Name
[Date] => 12/12/12
[Venue] => NameOfPlace
[state] => state
)
[2] => Array
(
[Event] => Name
[Date] => 12/12/12
[Venue] => NameOfPlace
[state] => state
)
)
Şu anda, akla gelen tek çözüm foreach döngü içinde her sınıf adının //*[contains(@class, \'className\')]
için XPath sorgusu aramak olacaktır.
Ben yukarıda bir veri ilişkisel dizi oluşturmak mümkün duyuyorum neyin DOMDocument ve XPath yoluyla daha deyimsel bir yolu var mı?
edit:
Ben daha kolay olabilir başka çözümler varsa, sonra onları gönderin, DOMDocument ve XPath kullanarak sınırlı değilim.