2012-07-19 45 views
5

thể trùng lặp:
HTML Scraping in PhpTrích xuất dữ liệu cụ thể từ một trang web sử dụng PHP

Tôi muốn biết nếu có cách nào để có được từ một trang web một chuỗi cụ thể của văn bản được cập nhật mọi lúc và sau đó sử dụng PHP. Tôi đã tìm kiếm "trên internet" và không tìm thấy gì cả. Chỉ thấy rằng preg_match có thể làm được, nhưng tôi không hiểu cách sử dụng nó.

tưởng tượng rằng một trang web chứa này:

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

Làm thế nào tôi có thể làm điều đó bằng PHP, sau khi đã sử dụng file_get_contents đặt trang trong một biến?

Cảm ơn trước :)

+0

Quên tên div. LOL –

+2

Chủ đề bạn đang tìm kiếm là "cạo màn hình". Xem thêm thông tin tại đây http://stackoverflow.com/tags/screen-scraping/info – jumpnett

Trả lời

10

Bạn có thể sử dụng DOMDocument, như thế này:

$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** 
+0

thats help me :) –

0

Bạn đang nói về data scraping: các hoạt động để lấy dữ liệu từ một đầu ra có thể đọc được của con người. Trong trường hợp của bạn, đây là bất kỳ thứ gì nằm giữa các thẻ <div>. Sử dụng tiện ích mở rộng của PHP DOM để truy cập vào thẻ bạn muốn và trích xuất dữ liệu. Google tìm kiếm một hướng dẫn PHP DOM.

0
$delements= file_get_html('url will go here'); 

foreach($elements->find('element') as $ele) { 

  //traverse according to your preferences 

} 

//return or output 
Các vấn đề liên quan