Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB59.2680
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 07.01.2008, 10:12   #1
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
По умолчанию регулярные выражения для парсинга урлов в серпе гугла

вот эти не работают

preg_match_all ( "/\<a\shref\=\"([^\"]+?)\"[^\>]+?\>(.+?)\<\/a\>.+?class\=\>", $html, $result, PREG_SET_ORDER );

preg_match_all('/<a href="(.*)" ', $html, $result);

в чём ошибка ?

подскажите как будет выглядеть правильный regexp
mudoeb вне форума  
Старый 07.01.2008, 10:35   #2
rivz
Member
 
Регистрация: 14.09.2007
Сообщений: 53
Бабло: $620
По умолчанию

а если так?

<?php
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.google.com/search?hl=en&q=mudoeb&btnG=Google+Search");
curl_setopt($ch, CURLOPT_COOKIEJAR, $vt[cook]);
curl_setopt($ch, CURLOPT_REFERER , '');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$output=curl_exec($ch);
curl_close($ch);
if (!preg_match_all('~h2 class=r><a href=\"(.*?)\"~si',$output,$tdump)) exit('error');
for ($z=0;$z<sizeof($tdump[1]);$z++) echo ($z+1).'. '.$tdump[1][$z].'<br>';
rivz вне форума  
Старый 07.01.2008, 13:35   #3
LorikX
Senior Member
 
Регистрация: 07.01.2008
Сообщений: 148
Бабло: $19810
Отправить сообщение для LorikX с помощью ICQ
По умолчанию

Или мой вариант
<?
$_url = 'http://www.google.com/search?hl=en&q=buy+viagra&btnG=Google+Search';
$_doc = urldecode(file_get_contents($_url));

$_pat = "#<a href=\"(http://[^\"]*)\" class=l#";

preg_match_all( $_pat, $_doc, $m);
print_r($m[1]);
?>
LorikX вне форума  
Старый 07.01.2008, 14:10   #4
benzole
Senior Member
 
Аватар для benzole
 
Регистрация: 25.06.2007
Сообщений: 1,493
Бабло: $490772
По умолчанию

rivz, а зачем ты туда ssl пихнул?
benzole вне форума  
Старый 07.01.2008, 14:26   #5
rivz
Member
 
Регистрация: 14.09.2007
Сообщений: 53
Бабло: $620
По умолчанию

чтобы задавали вопросов побольше

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

curl_setopt($ch, CURLOPT_COOKIEJAR, $vt[cook]);

там также не нужно, фоллоу можно было поскипать, и.т.д...
rivz вне форума  
Старый 07.01.2008, 17:11   #6
v3n0m
Юниор
 
Регистрация: 22.11.2007
Сообщений: 10
Бабло: $500
По умолчанию

PHP код:
preg_match_all('/(?<=href=")http:\/\/(?!\w+\.google\.com|[^\/]+\/search\?q=cache:)[^"]+/'$html$result);
array_shift($result[0]); 
Первый элемент при таком регваре всегда youtube, поэтому его убираем. Зато от смены выдачи почти не зависит.
v3n0m вне форума  
Старый 08.01.2008, 02:29   #7
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
ТС -->
автор темы ТС По умолчанию

LorikX спасибо, а как сделать чтобы были просто строки, а не [5]=>http://... ?

v3n0m подставил твой код в свой и LorikX - не работает

rivz хороший код, спасибо

мне бы теперь узнать регэксп для вытягивания количества результатов (для англоязычного интерфейса)
mudoeb вне форума  
Старый 08.01.2008, 02:40   #8
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
ТС -->
автор темы ТС По умолчанию

вот если кому надо калькулятор регулярных выражений http://www.abego-software.de/downloa...alculator.html

знает ли кто нить прогу или сервис, чтобы можно было ввести куоск текста и желаемый результат, а прога сама бы выдала соответствующий регэксп ?
mudoeb вне форума  
Старый 08.01.2008, 02:49   #9
reality
Senior Member
 
Регистрация: 07.04.2007
Сообщений: 172
Бабло: $8600
Отправить сообщение для reality с помощью ICQ
По умолчанию

Есть такой сервис, мозгом называется
reality вне форума  
Старый 08.01.2008, 05:36   #10
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
ТС -->
автор темы ТС По умолчанию

этот сервис не всегда стабильно работает
mudoeb вне форума  
Закрытая тема



Опции темы
Опции просмотра