2010-05-18 34 views
5

Bất cứ ai có giải pháp tốt để tìm nguồn HTML của trang có nội dung (trong trường hợp này là các bảng HTML) được tạo bằng Javascript?Bất cứ ai có giải pháp tốt để tìm nguồn HTML của một trang có nội dung (trong trường hợp này là các bảng HTML) được tạo bằng Javascript?

Một xấu hổ đơn giản, mặc dù giải pháp khả thi sử dụng Crowbar:

<?php 
function get_html($url) // $url must be urlencode(d) 
{ 
$context = stream_context_create(array(
    'http' => array('timeout' => 120) // HTTP timeout in seconds 
    )); 
    $html = substr(file_get_contents('http://127.0.0.1:10000/?url=' . $url . '&delay=3000&view=browser', 0, $context), 730, -32); // substr removes HTML from the Crowbar web service, returning only the $url HTML 
return $html; 
} 
?> 

Ưu điểm khi sử dụng Crowbar là các bảng sẽ được trả lại (và dễ tiếp cận) nhờ vào trình duyệt không đầu mozilla-based. Edit: phát hiện ra rằng vấn đề với Crowbar là một ứng dụng xung đột, không phải là thời gian chết máy chủ, mà chỉ là một sự trùng hợp ngẫu nhiên.

Trả lời

2

Đây là một phiên bản mạnh mẽ hơn của ví dụ trong OP sử dụng cURL/Crowbar:

<?php 
function get_html($url) 
{ 
$curl = curl_init(); 
curl_setopt ($curl, CURLOPT_URL, 'http://127.0.0.1:10000/?url=' . $url . '&delay=3000&view=as-is'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$html = curl_exec ($curl); 
return $html; 
} 
?> 

Đã nhận được thường xuyên "thất bại trong việc mở dòng: HTTP yêu cầu không thành" lỗi sử dụng f_g_c với nhiều URL.

Ngoài ra, hãy nhớ để url mã hóa url $ (ví dụ: 'http% 3A% 2F% 2Fwww.google.com'> 'http://www.google.com').

2

Vâng, Java cung cấp một số giải pháp tiện lợi, như HtmlUint, giải thích đúng Javascript và kết quả là sẽ cho phép hiển thị html được tạo.

Các vấn đề liên quan