Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Парсинг

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: 2gis
Runet4ik
Отправлено: 25 Июня, 2013 - 13:07:51
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Доброго всем Дня!
Решил вот написать парсер для 2gis.ru но столкнулся с такой проблемой, дохожу до парсинга самих рубрик, а далее там сплошной js, и как его обойти не пойму. Весь гугл облазил в поисках подсказки, всё тщетно. Может подскажете?
 
 Top
Denkill
Отправлено: 25 Июня, 2013 - 13:12:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Регуляркой удаляешь теги <script> и все что в них входит.
PHP:
скопировать код в буфер обмена
  1. preg_replace("#\<script\>(.+?)\</script\>#si"," ",$text);


-----
Хо-Хо-Хо
 
 Top
Runet4ik
Отправлено: 25 Июня, 2013 - 13:14:22
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Denkill пишет:
Регуляркой удаляешь теги <script> и все что в них входит.
PHP:
скопировать код в буфер обмена
  1. preg_replace("#\<script\>(.+?)\</script\>#si"," ",$text);

О, да ты хохмач... Почему тут, а не в КамедиКлаб?
 
 Top
Denkill
Отправлено: 25 Июня, 2013 - 13:17:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




К сожалению в Камеди не изучают Пых.
Я наверное чего то не понял. По подробнее можно?


-----
Хо-Хо-Хо
 
 Top
Runet4ik
Отправлено: 25 Июня, 2013 - 13:19:50
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Denkill пишет:
К сожалению в Камеди не изучают Пых.
Я наверное чего то не понял. По подробнее можно?

В камеди может и не изучают, но с пыхом там проблем точно нет...
Что же касаемо парсера, интересует момент именно парсинга рубрик..
 
 Top
Denkill
Отправлено: 25 Июня, 2013 - 13:21:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Код можно?


-----
Хо-Хо-Хо
 
 Top
Runet4ik
Отправлено: 25 Июня, 2013 - 13:31:19
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Denkill пишет:
Код можно?

PHP:
скопировать код в буфер обмена
  1.  
  2. function f_curl($ch, $url, $referer){
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_HEADER, 1);
  5. curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (Windows Mobile; Opera Mini/5.1.21595/30.3214; U; ru) Presto/2.8.119 Version/11.10");
  6. if($referer != "") curl_setopt($ch, CURLOPT_REFERER, $referer);
  7. curl_setopt($ch, CURLOPT_COOKIEFILE, "cook.txt");
  8. curl_setopt($ch, CURLOPT_COOKIEJAR, "cook.txt");
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10. $res = curl_exec($ch);
  11. return iconv("UTF-8", "Windows-1251", $res); }
  12.  
  13. $ch = curl_init();
  14. $file = f_curl($ch, "http://www.2gis.ru/about/mobile/", "");
  15. if(preg_match_all("#\<a\shref\=\"http\:\/\/([a-z\-]+)\.2gis\.ru\/about\/mobile\/\"\sonclick\=\".+\"\>[а-яА-Я\s\-]+\<\/a\>\<\/li\>#Ui", $file, $match)){
  16. foreach($match[1] as $v){
  17. if(file_exists("cook.txt")) unlink("cook.txt");
  18. $file = f_curl($ch, "http://".trim($v).".2gis.ru/about/online/", "");
  19. if(preg_match_all("#\<a.*href\=\"(.+)\".*\>Перейти\sпрямо\sсейчас\<\/a\>#Ui", $file, $matches)){
  20. foreach($matches[1] as $val){
  21. $arr = explode("/", $val);
  22. $f = f_curl($ch, "http://".$arr[5].".maps.2gis.ru/catalog", "");
  23. if(preg_match_all("#\<a\shref\=\"(\/subrubric\/[^\"]+)\"#Ui", $f, $m)){
  24. foreach($m[1] as $value){
  25. $ff = f_curl($ch, "http://abakan.maps.2gis.ru".$value, "http://".$arr[5].".maps.2gis.ru/catalog");
  26. file_put_contents("result.txt", $ff);
  27. exit; }
  28. }
  29. }
  30. }
  31. }
  32. }
  33.  

(Добавление)
В результате в файл записывается страница, заголовок говорит о том, что выбрана та рубрика какая и должна быть, но самого контенра нет.

(Отредактировано автором: 25 Июня, 2013 - 13:32:05)

 
 Top
Denkill
Отправлено: 25 Июня, 2013 - 13:49:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Какие куки в файле cook.txt?


-----
Хо-Хо-Хо
 
 Top
Runet4ik
Отправлено: 25 Июня, 2013 - 13:51:28
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Denkill пишет:
Какие куки в файле cook.txt?

# Netscape HTTP Cookie File
# http://curl[dot]haxx[dot]se/docs/http-cookies[dot]html
# This file was generated by libcurl! Edit at your own risk.

www[dot]2gis[dot]ru FALSE / FALSE 1402909752 isNoFirst 1
.2gis.ru TRUE / FALSE 1380704953 lang ru
abakan.2gis.ru FALSE / FALSE 1402909753 isNoFirst 1
.2gis.ru TRUE / FALSE 1380704953 city abakan
abakan.maps.2gis.ru FALSE / FALSE 1387703346 onlineLang ru_RU
abakan.maps.2gis.ru FALSE / FALSE 1375151360 split 0
 
 Top
Denkill
Отправлено: 25 Июня, 2013 - 15:12:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Не понимаю что тебе нужно получить?


-----
Хо-Хо-Хо
 
 Top
Runet4ik
Отправлено: 25 Июня, 2013 - 15:25:54
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Denkill пишет:
Не понимаю что тебе нужно получить?

Ну как что? Мне нужны дальнейшие ссылки для парсинга, а их в результативном файле моего скрипта не выдаёт...
 
 Top
Мелкий Супермодератор
Отправлено: 25 Июня, 2013 - 15:32:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




В их апи-то нет нужных вам данных?


-----
PostgreSQL DBA
 
 Top
Runet4ik
Отправлено: 25 Июня, 2013 - 17:37:27
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  
Откуда: Россия


Помог: 0 раз(а)




Мелкий пишет:
В их апи-то нет нужных вам данных?

Хотелось бы именно парсер и на php.
 
 Top
k0ma
Отправлено: 22 Июля, 2013 - 02:20:19
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Март 2013  


Помог: 1 раз(а)




to Runet4ik
я вам ничем не помогу, но может вы мне поможите,как вы с помощью curl ходите по сайту и не по одной странице, а именно по тем страницам которые вам надо?
ну алогинился я на главной странице, а вот мне дальше надо, мне снова инициировать curl_init() или curl_exec()?
 
 Top
DeepVarvar Супермодератор
Отправлено: 22 Июля, 2013 - 07:08:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




k0ma пишет:
мне снова инициировать curl_init() или curl_exec()?
да
(Добавление)
Runet4ik пишет:
Хотелось бы именно парсер и на php.
Ну а разница? Всеравно на пхп обращаться что к апи что к страницам.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB