|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » PHP парсер(грабер) погоды с подстановкой User-Agent |
|
PHP парсер(грабер) погоды с подстановкой User-Agent
|
Новый участник Сообщения: 43 |
Профиль | Отправить PM | Цитировать Сейчас сайт погоды определяет браузер, после чего дает загружать страницу..
Подскажите куда вставить код1, в код2 парсера, чтобы при парсинге он определялся как браузер? код1
код2
|
|
Отправлено: 11:55, 05-11-2016 |
Сообщения: 3651
|
Профиль | Сайт | Отправить PM | Цитировать leonid.poydolov@fb, первая переменная выдрана из кода, использующего, скорее всего, функцию fsockopen, поэтому просто так её во второй код с функцией fopen не вставить. Вместо этого необходимо переделать первый кусок кода в такой:
// ... $host = 'pogoda.yandex.ru'; $opts = array( 'http' => array( 'method' => "GET", 'protocol_version' => 1.0, 'header' => "Accept: image/gif, application/xhtml+xml, */*\r\n" . "Accept-Language: ru\r\n" . "Host: $host\r\n" . "User-Agent: Opera/8.01 (J2ME/MIDP; " // Имитируем браузер Opera Mini: . "Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n" . "Cache-Control: no-cache\r\n" // Не кэшировать . "Connection: Close\r\n\r\n"; ) ); $context = stream_context_create($opts); // далее оригинальный код... $fp = @fopen($url, 'r', false, $context); // ... |
------- Последний раз редактировалось Habetdin, 07-11-2016 в 10:43. Причина: $context, да Отправлено: 19:55, 05-11-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Ошибка - пишет Сервер погоды временно недоступен
- $context - ни куда не надо включать " $fp = @fopen($url, 'r', false, $context); " - и все равно сервер не доступен
|
Последний раз редактировалось leonid.poydolov@fb, 07-11-2016 в 07:38. Отправлено: 07:33, 07-11-2016 | #3 |
Сообщения: 3651
|
Профиль | Сайт | Отправить PM | Цитировать leonid.poydolov@fb, а это уже проблема того, что второй код устарел на текущий момент.
Если вывести полученные данные, добавив в конец: Можно увидеть, что сервер еще как доступен и выдал нам много данных. Вот только в нём из-за обновленной верстки уже нет того, что проверяется по $pattern в следующем условии: Поэтому скрипт и выводит 'Сервер погоды временно недоступен'. P.S.: так ли необходимо получать данные о погоде граббером? У Яндекс.Погоды есть неплохой информер. |
------- Отправлено: 18:22, 07-11-2016 | #4 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Цитата Habetdin:
- еще сколько сотрудников столько сайтов погоды, каждый норовит на своем смотреть....gismeteo, rp5, 7meteo и т.п... типа яшка врет с погодой... Цитата Habetdin:
в настройка php.ini в параметре выставил user_agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 YaBrowser/16.9.1.1192 Yowser/2.5 Safari/537.36 все равно так же... |
|||
Последний раз редактировалось leonid.poydolov@fb, 09-11-2016 в 09:01. Отправлено: 06:04, 09-11-2016 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
парсер php если пололжение выбирается скриптом | garanov | Вебмастеру | 0 | 03-08-2015 16:32 | |
php парсер если есть выбор города | garanov | Хочу все знать | 2 | 03-08-2015 14:52 | |
PHP - Добавить в парсер замену url | leonid.poydolov@fb | Вебмастеру | 1 | 02-12-2014 16:38 | |
Интернет - [решено] user agent в IE изменить под разными учетками-МИФ?? | gangsterovich | Microsoft Windows 7 | 19 | 30-11-2013 14:00 | |
Грабер | slonick2012@vk | Вебмастеру | 6 | 03-07-2012 09:23 |
|