PHP и скручиваемость результатов для очистки экрана - PullRequest
0 голосов
/ 24 декабря 2011

Я ищу, чтобы получить точный список URL, который содержит список элементов для хранения в базе данных и использовать его после.Дело в том, что я получаю только первый предмет этого.Я хочу получить список этой страницы, а затем перейти на страницу 2, затем 3, затем 4 ... и по возможности очистить все ссылки.

Я хочу получить http: .............. html сообщения и заголовка, затем перейдите на следующую страницу, получите все страницы и так далее и сохраните их в базе данных.

Вот код, который я использовал:1005 *

$url ='http://newyork.craigslist.org/search/jjj?addFour=part-time';

$timeout = 10; 
$ch = curl_init($url); 

curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


  $data = curl_exec($ch);
  curl_close($ch);

 function get_matched($pattern,$data)
 {
 preg_match($pattern,$data,$match);
 return $match[1];
  }

  $pattern= "/<p>(.*?)<\/p>/";
  $caty= get_matched($pattern,$data);


 echo "$caty";

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 24 декабря 2011
  1. Неправильное использование preg_*

    preg_match попытается найти только одно совпадение, а затем вернется - вы ищете preg_match_all, так как вам нужно более одного совпадения.

  2. Где находится цикл / рекурсия?

    Если вы хотите сделать это правильно, вам понадобится какая-то петля или рекурсивная функция, чтобы продолжать извлекать данные из найденных новых ссылок, и данные там должны извлекаться по той же схеме.

    В Интернете есть много ресурсов о том, как написать простой скребок, среди них:

0 голосов
/ 24 декабря 2011

это лучшая ссылка:

http://php.net/manual/en/book.curl.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...