2015-09-14 2 views
-1

мне нужно, чтобы очистить числовые значения, что имеет «CR» на этом сайте, таких как:скоблить сайт передачи данных с использованием Symfony в DomCrawler компонент

http://webapps.nyc.gov:8084/cics/f704/f403001i?BBL=1-00259-0071

К сожалению, я не могу найти решение этой проблемы с помощью фильтра DomCrawler метод

http://symfony.com/doc/current/components/dom_crawler.html

Любой опытные пользователи Symfony может мне помочь? Или дайте мне совет

Это то, что я с помощью метода XPATH:

$crawler->filterXPath('//div/center/table/tbody/tr/td[contains(., 'CR')]')->text() 

Update мне удалось захватить все ЧР, используя:

//td/font[contains(., 'CR')] 

Но что мне нужно являются номера

Спасибо

+4

SO это не место для людей, чтобы получить разработчикам работ для них бесплатно. Разместите код, что вы пробовали до сих пор и что ошибка, которую вы получаете. Это можно сделать с помощью только curl и regex. – tftd

+0

Я не знаком или не имею опыта работы с xpath. Это то, что у меня есть метод xpath $ crawler-> filterXPath ('//div/center/table/tbody/tr/td [содержит (., 'CR')] ') -> text(); –

ответ

2

Гусеничное похоже на SimpleXML и JQuery. Если вы не знакомы с ними, вам нелегко выяснить, как получить контент. Вам не нужно явно использовать xpath для получения контента. Вы можете сделать это с filter (по аналогии с JQuery, то есть filter('body > .my_class')

$url = '...'; 

$crawler = new Crawler(file_get_contents($url)); 

$crawler->filterXPath("//td/font[contains(., ' CR')]")->each(function(Crawler $node, $i){ 
    $string = filter_var($node->parents()->first()->text(), FILTER_SANITIZE_URL); 
    $string = str_replace('CR', ' CR', $string); 
    var_dump($string); 
}); 
Смежные вопросы