2012-02-08 44 views
5

Nói tóm lại, tôi đang tìm kiếm một cách để làm điều này:Đọc kết quả Tìm kiếm của Google thành mảng PHP?

$results_array = google("search terms"); // returns array of URLs 

Vì vậy, ví dụ, nếu thuật ngữ tìm kiếm của tôi đã "video mèo" của tôi $ results_array [0] có thể là một URL Youtube, và $ results_array 1 có thể trên Vimeo.

Tôi đã nhìn thấy API tìm kiếm tùy chỉnh của Google, nhưng tất cả đều yêu cầu chuyển đổi JSON phức tạp, ATOM, REST hoặc một số hệ thống khác quá phức tạp đối với những gì tôi đang cố gắng thực hiện.

Có giải pháp đơn giản nào không?

EDIT: Tôi tìm thấy nó, nhờ bài khác

Nhờ this post tôi đã có thể hình dung nó ra. Nói tóm lại, tôi chỉ đơn giản sử dụng như sau:

$results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

echo $results->responseData->results[$resultNumber]->url; 

Tôi là một chút ngạc nhiên và disapointed bởi downvotes - nó có vẻ là khá một câu hỏi chung với, quả thật vậy, một câu trả lời khá đơn giản. Điều này liên quan đến JSON, nhưng nó hoàn toàn minh bạch đối với người dùng. Có lẽ giải pháp chính xác hơn cho những gì tôi hỏi sẽ là:

function google($query) { 
    $results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

    return $results->responseData->results 
} 
+4

JSON quá phức tạp như thế nào? Có vẻ như lựa chọn đầu tiên cho việc triển khai của bạn. Chắc chắn ít phức tạp hơn so với phân tích kết quả tìm kiếm HTML ... –

+2

google không thích bất kỳ thứ gì cố gắng bỏ qua api của họ, vì vậy nếu bạn cố gắng thực hiện yêu cầu trực tiếp và phân tích kết quả - máy chủ của bạn có thể bị cấm. – Cheery

Trả lời

3

nếu bạn muốn nhận kết quả video thì bạn có thể thử điều này.

//replace space between words with + 
$query = "cat+video"; 
$start = 0; 
/* 
this url will give you json response with 4 results each time. 
u have to change the $start like 0, 4, 8,... 
use json_decode() and get it in array 
*/ 

$url = 'https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q='.$query.'&start='.$start 

hy vọng nó sẽ hữu ích.

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