2015-04-18 21 views
5

Mã này, trả về href cho nội dung, bây giờ tôi muốn trích xuất nội dung dạng này href và gửi nó cho quan điểm của tôi. Tên divs mà tôi cần phải giải nén:Làm cách nào để trích xuất dữ liệu bằng Trình thu thập dữ liệu Goutte?

<div class="c_pad"> 
    <div class="c_label"> 
    <span class="std_header2">Contact:</span> 
    </div> 
<div class="c_name"> 
    <span class="std_text_b">Monkey</span> 
</div> 
<div class="clear"></div> 
</div> 

<div class="c_pad"> 
    <div class="c_label"> 
     <span class="std_header2">Phone number:</span> 
    </div> 
    <div class="c_phone"> 
     <span class="std_text_b">001111111</span> 
    </div> 
    <div class="clear"></div> 
</div> 

for($i=0; $i <= 1; $i++) 
    { 
     $p = new Client(); 
     $d = $p->request('GET', ''.$link.'&std=1&results='. $i); 
     $n = $d->filter('a[class="o_title"]')->each(function ($node) 
     { 
     $pp = new Client(); 
     $dd = $pp->request('GET', $node->attr('href')); 
     $kk = $dd->filter('div[id="adv_desc"]')->each(function ($tekst) { echo $node->attr('href').'<br>'.$tekst->text(); 
        }); 
     }); 
    } 

Trả lời

3

Bạn muốn lọc thẻ cụ thể với các thuộc tính.

Nhưng bạn đang sử dụng $d->filter('a[class="o_title"]'). Bộ lọc này gắn thẻ a với thuộc tính class="o_title". Và đó không phải là một phần của nội dung của bạn.

Bạn chỉ cần điều chỉnh bộ lọc nút để chọn các phần tử chính xác.

Sử dụng jQuery Selectors Cú pháp: https://api.jquery.com/category/selectors/

Tham khảo tài liệu của DomCrawler Symfony, mà được sử dụng bởi Goutte: http://symfony.com/doc/current/components/dom_crawler.html#node-filtering

+0

sửa bài viết đầu tiên .. nhưng bây giờ: 'biến Không xác định: node' – user3458952

+0

Bạn đang làm việc trên một cái gì đó, nơi mà không ai có thể giúp bạn, bởi vì chúng tôi không thể tái tạo vấn đề. Ví dụ: Trong ví dụ của bạn là một 'div' với' id = adv_desc' là gì? Tại sao 'each (function ($ tekst)'? Đầu ra biến $ node để kiểm tra nội dung. Var_dump() là bạn của bạn. –

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