HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #681  
Старый 13.09.2009, 21:46
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Сломаем мозг вместе.
имеем страничку: http://www.google.com/search?hl=en&q=antichat
Нужно получить все полученые результаты(ссылки,с тайтлами).
Если загнать пример в переменную - тобиш 1 сцылку,то регулярка проходит,но со страницы я немогу выдрать ничего.
Использую простую:
PHP код:
preg_match_all('#<a href="(.*)" class="l">(.*)</a>#',$text,$match); 
Все время пустая.Уже испробывал все известные мне флаги,но результата - 0.
 
Ответить с цитированием

  #682  
Старый 13.09.2009, 21:50
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Не очень понял, про что ты, но мой скрипт валяется либо в полезных скриптах, либо еще где:

PHP код:
<?php
// Парсер url после выдачи гугла по запросу
$handler=fopen('log.txt','w'); // если не хотим терять старые данные - то "a+"
$limit 0;
$zapros "antichat"// Наш запрос для поиска
$page_start 0// Стартовая страница из расчета 100 результатов выдачи на страницу
$page_end 200// Последняя страница из расчета 100 результатов выдачи на страницу
function parse_serp($engine$query$limit)
{
if (
$limit<100) {$request 'http://www.google.com/ie?hl=ru&num=100&start=' $limit'&lr=&q='.urlencode(trim($query));}
if (
$limit>=100) {$request 'http://www.google.com/ie?q=' urlencode(trim($query)) . '&num=100&hl=ru&lr=&start=' $limit '&sa=N';}
$pattern '/<a title="(.*)" href=(.*)>(.*)<\/a>/isU';
$result file_get_contents($request);
if(
preg_match_all($pattern$result$matches))
{
for (
$i=0$i<count($matches[0]); $i++)
{
$link $matches[2][$i];
$serp[] = $link;
}
}
return 
$serp;
}
for (
$i=$page_start;$i<=$page_end;$i++)
{
$result parse_serp("google"$zapros$i);
$log implode("\r\n",$result);
if(
$handler) {fwrite($handler,$log);}
$i=$i+100;
if (
$i>100) {$i=$i-1;}
}
fclose($handler);
echo 
"Все данные были сохранены в log.txt"
?>
На текущий момент есть многопоточный и с поддержкой прокси. Стоимость 10 000$

PS: Сорри, если недопонял вопрос
 
Ответить с цитированием

  #683  
Старый 13.09.2009, 22:04
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


Отправить сообщение для wildshaman с помощью ICQ
По умолчанию

2мохзе:
PHP код:
<?php
$t
=file_get_contents("http://www.google.com/search?hl=en&q=antichat");
preg_match_all('|<h3 class=r><a href="(.*?)" class=l>(.*?)</a>|'$t$out);
for (
$i=0$i<count($out[1]); $i++)
    echo 
$out[1][$i]." - ".$out[2][$i]."<br>";

?>
 
Ответить с цитированием

  #684  
Старый 15.09.2009, 17:58
Patronik
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме:
148667

Репутация: 23
Отправить сообщение для Patronik с помощью ICQ
По умолчанию

есть строка 158 разних слов не считаю символи пунктуации
надо разбить ее на строки по 6 слов! и записать в масив
 
Ответить с цитированием

  #685  
Старый 18.09.2009, 22:41
Architek86
Познающий
Регистрация: 20.02.2008
Сообщений: 82
Провел на форуме:
107625

Репутация: 2
По умолчанию

дан код:
<table>бла-бла a1a1a1 бла-бла</table><table>бла-бла a2a2a2 бла-бла</table><table>бла-бла a3a3a3 бла-бла</table>.............
как найти и удалить, к примеру, <table>бла-бла a2a2a2 бла-бла</table>
т.е. preg_replace($pattern,'',$content)
$pattern чему будет равен?
Думал, так сделать: <table>(.*)a2a2a2(.*)</table>, но тогда сюда попадает ведь весь текст.
 
Ответить с цитированием

  #686  
Старый 18.09.2009, 22:53
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию

тебе надо удлаить a2a2a2a2? или то что сбоку?
 
Ответить с цитированием

  #687  
Старый 18.09.2009, 23:21
Architek86
Познающий
Регистрация: 20.02.2008
Сообщений: 82
Провел на форуме:
107625

Репутация: 2
По умолчанию

надо удалить всю таблицу, содержащую в себе a2a2a2a2 (например), т.е. от <table> до </table> включая и эти теги.
 
Ответить с цитированием

  #688  
Старый 18.09.2009, 23:34
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

Цитата:
Сообщение от Architek86  
дан код:
<table>бла-бла a1a1a1 бла-бла</table><table>бла-бла a2a2a2 бла-бла</table><table>бла-бла a3a3a3 бла-бла</table>.............
как найти и удалить, к примеру, <table>бла-бла a2a2a2 бла-бла</table>
т.е. preg_replace($pattern,'',$content)
$pattern чему будет равен?
Думал, так сделать: <table>(.*)a2a2a2(.*)</table>, но тогда сюда попадает ведь весь текст.
Cтавить жадность поменьше e.g.:
#<table>.*a2a2a2.*</table>#Us
 
Ответить с цитированием

  #689  
Старый 22.09.2009, 13:15
Patronik
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме:
148667

Репутация: 23
Отправить сообщение для Patronik с помощью ICQ
По умолчанию

Написал выражуху для поиска url в тексте
$pattern = "/^[http://www|www]+(\.[a-z])+(\.[a-z])*$/";

$find = preg_match($pattern, $text);

А пхп выдает мне
Warning: preg_match(): Empty regular expression in D:\Program Files\PHP Expert Editor
4.3\phpF.tmp on line 9
Что не так?
 
Ответить с цитированием

  #690  
Старый 22.09.2009, 13:40
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Ошибка синтаксиса в регулярном выражении - когда в начале и в конце регулярки "/", то надо экранировать все спецсимволы, т.е. "http:\/\/", или сделать так:

PHP код:
<pre>
<?php
@ini_set("display_errors","1");
$text 'wetwgsdg http://site.ru sdgdsfgs34564325 http://www.site.ru/index.php ывпывапып www.rambler.ru';
$pattern "#(http://[^\s]+)|(www.[^\s]+)#";
preg_match_all($pattern$text$res);
print_r ($res[0]); 
?>
</pre>

Последний раз редактировалось Pashkela; 22.09.2009 в 13:46..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 6762 17.06.2010 21:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ