2

如果还有其他编写的类来执行此操作,那么链接会很棒。如果没有,我怎么能用 PHPCrawl 做到这一点?

是否可以根据特定于站点的一组规则存储来自已爬网站点的特定信息?例如,[div.wantThis, img#defaultPicture]是否为站点 A 返回了数组,并且只[div.shortTextContent]为站点 B 返回了数组?

在 PHPCrawl 中,如何从$page_data数组中获取这些信息?

需求

必须只能针对某些元素。

能够从变量(可以是指定要定位的元素的数组)中读取数据存储规则。

4

1 回答 1

0

您要问的是如何使用 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 Parsing ..

// 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 示例

于 2011-11-29T09:30:08.040 回答