2013-07-25 3 views
0

저는 cURL을 처음 사용합니다. this amazon link의 내용 (예 : 이미지, 책 제목, 저자 및 20 권의 책)을 html 페이지로 긁어 내려고 노력했습니다. 지금까지 나는 아래의 코드를 사용하여 페이지를 인쇄하고있다.PHP 및 cURL을 사용하여 div 내용 스크랩

<?php 
function curl($url) { 
    $options = Array(
     CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_FOLLOWLOCATION => TRUE, 
     CURLOPT_AUTOREFERER => TRUE, 
     CURLOPT_CONNECTTIMEOUT => 120, 
     CURLOPT_TIMEOUT => 120, 
     CURLOPT_MAXREDIRS => 10, 
     CURLOPT_URL => $url, 
    ); 

    $ch = curl_init(); 
    curl_setopt_array($ch, $options); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 
?> 

$url = "http://www.amazon.in/gp/bestsellers/books/1318209031/ref=zg_bs_nav_b_2_1318203031"; 
$results_page = curl($url); 
echo $results_page; 

나는 정규 표현식을 사용해 보았는데 실패했다. 나는 6hrs를 위해 가능한 모든 것을 똑바로 시도하고 진짜로 피로하게 해, 나가 해결책을 여기에서 발견 할 것이라는 점을 희망했다; 솔루션에 대한 감사만으로는 충분하지 않지만 tq는 사전에 충분합니다. :)

업데이트 : 나를 (초보자도 사용하지 않고) 초보자를위한 유용한 사이트 (click here)을 찾았습니다.

+0

는이에 대한 API를 사용하지 않는 이유가 거기가? 훨씬 쉬울거야. –

+1

DOMDocument, XPath, phpquery, simple_html_dom을 사용하십시오. regexp하지 마십시오. – DevZer0

+0

http://docs.aws.amazon.com/AWSECommerceService/latest/DG/TopSellers.html :) –

답변

1

당신 정말 AWSECommerce API을 사용해야하지만, 여기에 야후의 YQL 서비스를 활용하는 방법 :

<?php 
$query = sprintf(
    'http://query.yahooapis.com/v1/public/yql?q=%s', 
    urlencode('SELECT * FROM html WHERE url = "http://www.amazon.in/gp/bestsellers/books/1318209031/ref=zg_bs_nav_b_2_1318203031" AND xpath=\'//div[@class="zg_itemImmersion"]\'') 
); 

$xml = new SimpleXMLElement($query, null, true); 

foreach ($xml->results->div as $product) { 
    vprintf("%s\n", array(
     $product->div[1]->div[1]->a, 
    )); 
} 

/* 
    Engineering Thermodynamics 
    A Textbook of Fluids Mechanics 
    The Design of Everyday Things 
    A Forest History of India 
    Computer Networking 
    The Story of Microsoft 
    Private Empire: ExxonMobil and Americ... 
    Project Management Metrics, KPIs, and... 
    Design and Analysis of Experiments: I... 
    IES - 2013: General English 
    Foundation of Software Testing: ISTQB... 
    Faster: 100 Ways to Improve your Digi... 
    A Textbook of Fluid Mechanics and Hyd... 
    Software Engineering for Embedded Sys... 
    Communication Skills for Engineers 
    Making Things Move DIY Mechanisms for... 
    Virtual Instrumentation Using Labview 
    Geometric Dimensioning and Tolerancin... 
    Power System Protection & Switchgear... 
    Computer Networks 
*/ 
+0

나는 충분히 감사 할 수 없다. 모두에게 유용한 답을 표시하고 +1을 ... tq 다시 할 수있다. – John

관련 문제