Как создать такой парсер?

C
На сайте с 04.02.2005
Offline
291
#61

$urlosearch = $htmldoc->find('a'); //нашли все ссылки на странице

Это уже массив

$massive = array($urlosearch); //заключили в $massive

а это

$massive[0] - массив

Busgame
На сайте с 10.07.2011
Offline
24
#62

Ругается, что $urlosearch - не массив.

"Warning: array_shift() [function.array-shift]: The argument should be an array"

C
На сайте с 04.02.2005
Offline
291
#63

var_dump($urlosearch)

Я не знаю что возвращает $htmldoc->find('a') - и лень лезть в библиотеку.

Busgame
На сайте с 10.07.2011
Offline
24
#64
var_dump($urlosearch)

Функция сработала, выводится другой вид массива, а что это дает?

C
На сайте с 04.02.2005
Offline
291
#65

Busgame, а показать? или религия не позволяет?

Busgame
На сайте с 10.07.2011
Offline
24
#66

Chukcha, про var_dump в Библии ничего не сказано, ловите.

---------- Добавлено 30.12.2012 в 21:03 ----------

Библиотека - phpQuery (раньше уже говорил).

C
На сайте с 04.02.2005
Offline
291
#67

object(phpQueryObject)#65 (13) {

Это вам что нибудь говорит?

Вот жеш, все таки заставил лезть в библиотеку :)

подозреваю, что нужно сделать что-то типа такого

foreach ($urlosearch as $link) {

$links_arr[] = pq($link)->attr('href');

}

pq - это алиас.

Busgame
На сайте с 10.07.2011
Offline
24
#68

Говорит, просто я сначала не понял контекста фразы:

лень лезть в библиотеку

при таком коде:

$htmldoc = phpQuery::newDocument($res); //выполнение поиска


$urlosearch = $htmldoc->find('a');

foreach ($urlosearch as $link) {

$links_arr[] = pq($link)->attr('href');

}

$firstlink = array_shift($links_arr[]);

$perehod = curl_setopt($ch, CURLOPT_URL, $firstlink);

echo $perehod;

также выдается ошибка, что код вне массива "Warning: array_shift() [function.array-shift]: The argument should be an array", ругается именно на "$firstlink = array_shift($links_arr[]);". По ходу дела зря я на библиотеки нарвался. Нужно было регулярки добивать.

C
На сайте с 04.02.2005
Offline
291
#69

var_dump($links_arr);

:)

У вас там того кода...

Пользуйте echo, print_r, var_dump

Busgame
На сайте с 10.07.2011
Offline
24
#70

Наверное уже заколебал вас... Не хочет, зараза, выводить первую страницу в браузер(хотя массив получается читаемым).

foreach ($urlosearch as $link) {


$links_arr[] = pq($link)->attr('href');

}

$first = array_shift($links_arr);

curl_setopt($ch, CURLOPT_URL, $first);

curl_setopt($ch, CURLOPT_HEADER, 1);

$res2 = curl_exec($ch);

echo $res2;

Может еще разок подскажете?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий