Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting specific data from a web page using PHP [duplicate]

Possible Duplicate:
HTML Scraping in Php

I would like to know if is there any way to get from a webpage a specific string of text wich is updated every now and then using PHP. I´ve searched "all over the internet" and have found nothing. Just saw that preg_match could do it, but I didn't understand how to use it.

imagine that a webpage contains this:

<div name="changeable_text">**GET THIS TEXT**</div>

How can I do it using PHP, after having used file_get_contents to put the page in a variable?

Thanks in advance :)

like image 600
Daniel Silva Avatar asked Jul 19 '12 19:07

Daniel Silva


2 Answers

You can use DOMDocument, like this:

$html = file_get_contents( $url);

libxml_use_internal_errors( true);
$doc = new DOMDocument;
$doc->loadHTML( $html);
$xpath = new DOMXpath( $doc);

// A name attribute on a <div>???
$node = $xpath->query( '//div[@name="changeable_text"]')->item( 0);

echo $node->textContent; // This will print **GET THIS TEXT**
like image 158
nickb Avatar answered Nov 05 '22 15:11

nickb


You might want to have a look at the

Simple HTML DOM Library

There is a little tutorial here: http://www.developertutorials.com/tutorials/php/easy-screen-scraping-in-php-simple-html-dom-library-simplehtmldom-398/

That one is a screen scraping API that lets you feed html to it and then get parts of it in a jQuery similiar language.

like image 28
Kai Mattern Avatar answered Nov 05 '22 15:11

Kai Mattern