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
Форумы портала PHP.SU :: Версия для печати :: Парсинг
Форумы портала PHP.SU » » Работа с сетью » Парсинг

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

1. Runet4ik - 25 Июня, 2013 - 13:07:51 - перейти к сообщению
Доброго всем Дня!
Решил вот написать парсер для 2gis.ru но столкнулся с такой проблемой, дохожу до парсинга самих рубрик, а далее там сплошной js, и как его обойти не пойму. Весь гугл облазил в поисках подсказки, всё тщетно. Может подскажете?
2. Denkill - 25 Июня, 2013 - 13:12:26 - перейти к сообщению
Регуляркой удаляешь теги <script> и все что в них входит.
PHP:
скопировать код в буфер обмена
  1. preg_replace("#\<script\>(.+?)\</script\>#si"," ",$text);
3. Runet4ik - 25 Июня, 2013 - 13:14:22 - перейти к сообщению
Denkill пишет:
Регуляркой удаляешь теги <script> и все что в них входит.
PHP:
скопировать код в буфер обмена
  1. preg_replace("#\<script\>(.+?)\</script\>#si"," ",$text);

О, да ты хохмач... Почему тут, а не в КамедиКлаб?
4. Denkill - 25 Июня, 2013 - 13:17:26 - перейти к сообщению
К сожалению в Камеди не изучают Пых.
Я наверное чего то не понял. По подробнее можно?
5. Runet4ik - 25 Июня, 2013 - 13:19:50 - перейти к сообщению
Denkill пишет:
К сожалению в Камеди не изучают Пых.
Я наверное чего то не понял. По подробнее можно?

В камеди может и не изучают, но с пыхом там проблем точно нет...
Что же касаемо парсера, интересует момент именно парсинга рубрик..
6. Denkill - 25 Июня, 2013 - 13:21:42 - перейти к сообщению
Код можно?
7. Runet4ik - 25 Июня, 2013 - 13:31:19 - перейти к сообщению
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.  

(Добавление)
В результате в файл записывается страница, заголовок говорит о том, что выбрана та рубрика какая и должна быть, но самого контенра нет.
8. Denkill - 25 Июня, 2013 - 13:49:18 - перейти к сообщению
Какие куки в файле cook.txt?
9. Runet4ik - 25 Июня, 2013 - 13:51:28 - перейти к сообщению
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
10. Denkill - 25 Июня, 2013 - 15:12:29 - перейти к сообщению
Не понимаю что тебе нужно получить?
11. Runet4ik - 25 Июня, 2013 - 15:25:54 - перейти к сообщению
Denkill пишет:
Не понимаю что тебе нужно получить?

Ну как что? Мне нужны дальнейшие ссылки для парсинга, а их в результативном файле моего скрипта не выдаёт...
12. Мелкий - 25 Июня, 2013 - 15:32:13 - перейти к сообщению
В их апи-то нет нужных вам данных?
13. Runet4ik - 25 Июня, 2013 - 17:37:27 - перейти к сообщению
Мелкий пишет:
В их апи-то нет нужных вам данных?

Хотелось бы именно парсер и на php.
14. k0ma - 22 Июля, 2013 - 02:20:19 - перейти к сообщению
to Runet4ik
я вам ничем не помогу, но может вы мне поможите,как вы с помощью curl ходите по сайту и не по одной странице, а именно по тем страницам которые вам надо?
ну алогинился я на главной странице, а вот мне дальше надо, мне снова инициировать curl_init() или curl_exec()?
15. DeepVarvar - 22 Июля, 2013 - 07:08:02 - перейти к сообщению
k0ma пишет:
мне снова инициировать curl_init() или curl_exec()?
да
(Добавление)
Runet4ik пишет:
Хотелось бы именно парсер и на php.
Ну а разница? Всеравно на пхп обращаться что к апи что к страницам.

 

Powered by ExBB FM 1.0 RC1