PHP веб-сканер, структура данных и хранилище, будет ли он работать с PHPCrawl? - PullRequest
2 голосов
/ 18 ноября 2011

Если для этого написаны другие классы, ссылка будет отличной.Если нет, то как я могу это сделать с помощью PHPCrawl?

Можно ли хранить определенную информацию с просканированного сайта на основе набора правил, характерных для этого сайта?Например, [div.wantThis, img#defaultPicture] - это массив, возвращаемый для сайта A, и только [div.shortTextContent] - это массив, возвращаемый для сайта B?

В PHPCrawl как я могу получить эту информацию из массива $page_data?

Требуется

Должен быть в состоянии предназначаться только для определенных элементов.

Умеет читать правило хранения данных из переменной (которая может быть массивом, определяющимэлемент (ы) к цели).

1 Ответ

0 голосов
/ 29 ноября 2011

То, что вы спрашиваете, - это как проанализировать определенный контент с сайта A и некоторый другой конкретный контент с сайта B с помощью PHPCrawl.

Для стиля синтаксического анализа, специфичного для сайта можно следовать следующему подходу 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

...