如果有其他类编写这样做,链接将是很棒的。如果没有,我怎么用PHPCrawl?
是否有可能根据一组特定于网站的规则来存储来自抓取网站的特定信息?例如,[div.wantThis, img#defaultPicture]
是为站点A返回的数组,而只有[div.shortTextContent]
是为站点B返回的数组?
在PHPCrawl中,我如何从$page_data
数组中获得此信息?
必须只能针对某些元素。
能够从一个变量中读取数据存储规则(该变量可以是一个指定目标元素的数组)
您要问的是如何使用PHPCrawl解析来自站点A的特定内容和来自站点B的其他特定内容。
对于站点特定的解析样式可以遵循以下if-else方法:
for url in urls:
content = crawl(url)
if(url of type 1?):
extract_style1(content)
else-if(url of type 2?):
extract_style2(content)
else:
extract_styledefault(content)
对于特定的内容提取可以使用以下算法:
注意:有一系列可用的解析技术,我在这里实现HTML DOM解析 .
// Create DOM from your PHP Crawl Data Source
$html = $page_data[source]
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
参考:
HTML DOM
PHPCrawl示例