2015-06-20 1 views
2

Вот это же кода я извлеченной с веб-страницы ...Как извлечь ключевое слово с веб-страницы с помощью PHP DOM

 <div class="user-details-narrow"> 
      <div class="profileheadtitle"> 
       <span class=" headline txtBlue size15"> 
        Profession 
       </span> 
      </div> 
      <div class="profileheadcontent-narrow"> 
       <span class="txtGrey size15"> 
        administration 
       </span> 
      </div> 
     </div> 

При отображении на веб-странице он показывает, как «Профессия администрации». То, что я хочу сделать, это извлечь профессию, в данном случае «администрирование». Однако, это не так просто, как может показаться, потому что этот кусок кода повторяется много раз для различных других вопросов, таких как

 <div class="user-details-narrow"> 
      <div class="profileheadtitle"> 
       <span class=" headline txtBlue size15"> 
        Industry 
       </span> 
      </div> 
      <div class="profileheadcontent-narrow"> 
       <span class="txtGrey size15"> 
        banking 
       </span> 
      </div> 
     </div> 

Все идеи на хорошее решение?

+0

Что уникально в отношении «администрирования», я не вижу ничего, кроме «банковского». – chris85

+0

Нет ничего уникального в любом поле, это моя проблема. –

+0

Да, я мог видеть, что это проблема. Я не могу придумать способ программно идентифицировать правильный в этом случае. – chris85

ответ

2

Пожалуйста, не используйте регулярные выражения для получения значений узлов со страницы.

PHP имеет очень хороший класс с именем DOMDocument. Вы можете просто получить страницу в виде документа DOMDocument:

$dom = new DOMDocument; 
$dom->loadURL("http://test.de/page.html"); 
$finder = new DomXPath($doc); 
$spaner = $finder->query("//*[contains(@class, 'size15')]"); 
echo $spaner->item(0)->nodeValue . "/" . $spaner->item(1)->nodeValue; 
+0

Использование PHP DOM Я до сих пор не могу понять, как правильно разобрать HTML. Как сказал Крис выше, нет никакой разницы в коде между профессией и промышленностью, и есть много других. Как я могу вытащить их все отдельно? –