我想要完成的任务可能有点硬核,但我想知道它是否可能:
问题:
我的问题与PHP-Retrieve content from page相同,但我想在多个页面上使用它。
情况:
我正在使用一个关于电视节目的网站。所有的电视节目都有相同的网址,然后是节目的名称:
http://bierdopje.com/shows/NAME_OF_SHOW
在每个节目页面上,都有一行告诉您节目是否已取消或仍在运行。我想检索该行以概述已取消的节目(该网站仅支持正在运行的节目的概述,因此我想制作一个额外的功能)。
真正的问题:
如何告诉DOM检索所有节目并检查节目的状态?
(http://bierdopje.com/shows/ *)。
注意:
我知道这个过程可能需要一段时间,因为它正在阅读整个网站(或者数据太多了吗?)。
答案 0 :(得分:1)
使用此代码仅从单个网站获取链接。
include_once('simple_html_dom.php');
$html = file_get_html('http://www.couponrani.com/');
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
答案 1 :(得分:0)
我使用phpquery从网页获取数据,例如Dom中的jQuery。
例如,要获取所有节目的列表,您可以执行以下操作:
<?php
require_once 'phpQuery/phpQuery/phpQuery.php';
$doc = phpQuery::newDocumentHTML(
file_get_contents('http://www.bierdopje.com/shows')
);
foreach (pq('.listing a') as $key => $a) {
$url = pq($a)->attr('href'); // will give "/shows/07-ghost"
$show = pq($a)->text(); // will give "07 Ghost"
}
现在,您可以单独处理所有节目,为每个节目制作新的phpQuery :: newDocumentHTML,并使用选择器提取您需要的信息。
获取节目的状态
$html = file_get_contents('http://www.bierdopje.com/shows/alcatraz');
$doc = phpQuery::newDocumentHTML($html);
$status = pq('.content>span:nth-child(6)')->text();