simple_html_dom在页面上找到链接并从每个链接中删除详细信息

时间:2017-03-31 11:01:20

标签: php html dom scrape

我有一个包含多个链接的页面,每个链接指向包含表格详细信息的新页面。我想存储原始页面中的所有链接,并从每个链接(页面)中删除表格数据。 所以:

OriginalPage -|- Link1 -> TableData
              |- Link2 -> TableData
              |- Link3 -> TableData

我成功从原始页面中提取链接,并从一个链接中提取表格数据,但我不知道如何制作循环以立即从所有链接中提取数据。 所有链接都有一个简单的模式,所有页面都有相同的表(但不同的数据)。 这就是我所拥有的:

    $city1 = file_get_html('http://www.xxxx.xx/sl/cities/city1');
    // Get links from page that contain word "info" and extract date from URL (date is important)
//Example link on original page: http://www.xxxx.xx/sl/cities/info-onday-19-05-2017-d"
    foreach($city1->find('a[href]') as $link){
        if(strstr($link, 'info')){
            preg_match('#onday (.*?). #', $link, $match);
            $date = $match[1];
        }
    }
    //Get table data from one link
    $city1DetailsUrl = "http://www.xxxx.xx/sl/cities/info-onday-".$date."-d";

    $city1Details = file_get_html($city1DetailsUrl);
    $table = $city1Details->find('table', 0);
    $rowData = array();
    foreach($table->find('tr') as $row) {
        // initialize array to store the cell data from each row
        $info = array();
        foreach($row->find('td') as $cell) {
            // push the cell's text to the array
            $info[] = $cell->plaintext;
        }
        $rowData[] = $info;
    }
    foreach ($rowData as $row => $tr) {
        foreach ($tr as $td) {
            echo  $td .'<br>';
        } 
    }

摘要:在原始页面上查找包含某些字词(info)的链接,每个链接(页面)的剪贴簿表数据。

0 个答案:

没有答案