Ради безопасности сайтов хостеры часто отключают показ ошибок php. Даже когда мы делаем так

error_reporting(E_ALL);

Срабатывает не всегда. Чаще всего выходит ничего не говорящая ошибка сервера. А браузер может вообще сказать что сайт недоступен.

Чтобы это обойти можно в .htaccess написать следующее

php_flag display_errors on 
php_value error_reporting E_ALL

Кроме того эти же переменные можно попытаться выставить через php

ini_set('php_flag display_errors','on'); 
ini_set('php_value error_reporting', E_ALL);

Но и это не всегда срабатывает. Если не сработало и сайт все еще не показывает ошибки то можете поискать в корне сайта файл errors.log  Если и его нет то обратитесь в хостеру. А может и не делаете вы никаких ошибок вовсе. Случается и так, но крайне редко. Как говорится: Если интерпретатор php не нашел ошибок в вашей программе, напишите в баг-репорт его разработчикам, пусть исправят ошибки в интерпретаторе)

Рассказать друзьям
author.jpg

Платная консультация по вопросам 1500 руб/час

Прочитали статью и остались вопросы? Меня зовут Валерий и я её автор. С радостью объясню Вам в скайпе все затруднительные моменты, которые остались за рамками статьи!

Подробнее ...

Добавить комментарий


Комментарии   

Викуля
0 # Викуля 29.06.2012 05:13
Привет

спасибо, что отозвался:)

значит так - есть сайт обьявлений - он на нерусском языке, но это не важно.

я смотрела код страницы с обьявлениями и нужные мне телефоны там находятся в виде ====================================

Kontaktai

Telefonas+37065455453

==================================



где - как видно, тел.Нр +37065455453 (который может быть также в виде 865455453) находится между тегами +37065455453



.

Вот.



спарсить мне надо все номера телефонов на страницах с обьявлениями из категории

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/

т.е.

ссылки с этой главной каетегории ведут на разделы

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/butai/

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/namai/

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/patalpos/

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/sklypai/

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/sodybos/

http://www.skelbiu.lt/skelbimai/nekilnojamasis-turtas/garazai/

вот из этих разделов (находящихся там обьявлений) надо спарсить номера телефонов, просто в обычный текст файл - по номеру на строчку.



Я понимаю, что это гдето на поверхности лежит, но сообразить как сложить все вместе - не могу, блондинко:)

Буду очень-очень благодарна если поможешь:)



Викуля:)
Ответить | Ответить с цитатой | Цитировать
Викуля
0 # Викуля 29.06.2012 05:14
опа - чет все теги похренились - напишу лучше с мыла
Ответить | Ответить с цитатой | Цитировать
Александр
0 # Александр 31.10.2012 10:29
Здравствуйте! Я недавно консультировался у вас на тему как парсить сайты. Могли бы вы чтонибудь написать про API aviasales? Я не могу понять как это можно применить у себя на сайте.:) Могли бы вы раскрыть тему - Как вообще работать с API?

Спасибо за внимание
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 31.10.2012 18:07
все зависит от конкретного API, что предоставляет, каким форматом пользуется. Так ничего не скажешь
Ответить | Ответить с цитатой | Цитировать
Дмитрий
0 # Дмитрий 15.04.2013 12:59
Leroy, Спасибо за статьи, много полезного узнал, можешь назвать ресурсы или книги, по которым ты учил ООП в PHP?
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 15.04.2013 13:11
Когда-то давно изучал по такой книжке http://www.softtime.ru/bookphp/help.php, все по полочкам доходчиво ну и гугл конечно. Книжки уже не читал. Советую читать Хабр, частенько встречаются интересные статьи по PHP и JS. Конечно большая часть знаний пришла через изучение чужих исходников, и написания своих велосипедов.
Ответить | Ответить с цитатой | Цитировать
Виталий
0 # Виталий 18.07.2013 07:06
Доброго времени суток.

Я робот и хочу писать комментарии.
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 18.07.2013 12:17
поздравляю Вас Виталий, вы проворнее тех роботов, что спамят меня каждый день
Ответить | Ответить с цитатой | Цитировать
Николай
0 # Николай 28.10.2013 22:51
В публикации где описываете "Google Chrome Extension парсер" я писал что пытаюсь в приложении сделать сделать эмулятор клика. Отдельно реализовал эмуляцию клика (не в приложении), квери фильтрацию нужных ссылок..., но в приложении не получается прежде всего после получения страницы var mypage = $.ajax('http://test.ua/test.html'); вывожу ее и когда кликаю руками даже, то ссылки не срабатывают (новые вкладки или окна не открываются).

По идее для эмуляции получать содержимое может и не надо страницы а надо выполнять сразу действия на открытой в браузере странице. Это вообще возможно?

Если возможно то подскажите пожалуйста хоть как приблизительно это сделать.

пы. сы.

Отдельно спасибо за ваш сайт. нашел очень много и хорошо описанной инфы.
Ответить | Ответить с цитатой | Цитировать
Пользователь
0 # Пользователь 24.02.2014 14:35
Что-то давно комментариев нет? Вы занимаетесь поддержкой редактора яндекс карт?
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 25.02.2014 00:01
да, вот сегодня вышел апдейт. Теперь полигоны линии и круги можно вращать и масштабировать
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 06.09.2014 04:42
Здравствуйте подскажите пожалуйста как спарсить одно и тоже с разных страниц, вот есть код :

require_once 'simple_html_dom.php';
$data = file_get_html('https://www.youtube.com/watch?v=oCp_O0OQTVQ&index=1&list=PL4znWv9rfd0Fn7J5YyuQM5FND1LlUkFgD');
if($data->innertext!='' and count($data->find('.watch-view-count'))){
foreach($data->find('.watch-view-count') as $a){
echo $a;
}
}


вот как в $data = file_get_html( указать не одну страницу а несколько?)
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 08.09.2014 00:42
да но как именно, у меня не выходит(( можно в примере?
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 08.09.2014 12:53
require_once ­'simple_html_dom.php';
$links = array(
'https://www.youtube.com/watch?....',
'https://www.youtube.com/watch?....',
'https://www.youtube.com/watch?....',
'https://www.youtube.com/watch?....'
);
foreach($links as $link){
$data = ­file_get_html($link);
if( $data ){
if( $data->innertex­t!='' and count($data->find('.watch-view-count')) ){
­foreach($data->find('.watch-view-count') as $a){
echo ­$a;
}
}
$data->clear();
unset($data);
}
}
}
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 08.09.2014 18:36
Спасибо большое)) а можете еще рассказать как ускорить загрузку страницы после парсинга?, так так информация постоянно меняется и сохранения куки не поможет.
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 11.09.2014 20:36
Ускорить загрузку невозможно, все упирается в скорость инета. Куки тут не причем. Есть вариант не парсить каждый раз страницы которые не меняются время от времени, их можно сохранять в файл, и потом брать уже оттуда а не дергать с сервера. Также можете почитать http://xdan.ru/Multi-threaded-parsers.html тут есть определенный выигрыш в скорости
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 11.09.2014 20:37
а что вы там парсите на ютубе?
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 12.09.2014 02:22
ну вот этот который вы написали работает на ура :
require_once ­'simple_html_dom.php';
$links = ­array(
'https://www.youtube.com/watch?....',
'https://www.youtube.­com/watch?....',
'https://www.youtube.com/watch?....',
'https://ww­w.youtube.com/watch?....'
);
foreach($links as $link){
$data = ­­file_get_html($link);
if( $data ){
if( ­$data->innertex­t!='' and ­count($data->find('.watch-view-count')) ­){
­foreach($data->find('.watch-view-count') as $a){
­ echo ­­$a;
}
}
$data->clear();
unset($data);
}
}
}
но страница открывается долго, я думала этот код можно как то упростить или улучшить, что б страница грузилась быстрее. А с ютуба парсинг значения "сколько просмотрело людей "( есть сайт на котором отображается это видео, при нажатии оно перенаправляет на ютуб, но до этого человек должен понимать на сколько популярно это видео)
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 12.09.2014 13:38
так вы парсите не в момент когда человек открыл видео, а отдельно. раз в 10 минут к примеру, по крону. А в страницу выводите уже статичную информацию
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 12.09.2014 13:39
пишите в ветку пожалуйста
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 13.09.2014 01:49
не поняла, а как это написать ?
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 14.09.2014 00:46
щас все нормально)
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 14.09.2014 07:40
я не об этом я о коде))
Ответить | Ответить с цитатой | Цитировать
Leroy
0 # Leroy 15.09.2014 16:55
По крону https://ru.wikipedia.org/wiki/Cron запускаете свой скрипт раз в 10-15 минут, скрипт парсит данные и сохраняет их в файл/базу/кеш. Когда на сайт заходит пользователь, данные о просмотре видео берем уже из файла/базы/кеша. Если не хватает опыта настроить крон, то можно повесить функцию предварительного парсинга на "первого юзера". первый чувак, который заходит на сайт, ждет пока страница спарсится и видит результат. Остальные видят уже готовый результат.
Ответить | Ответить с цитатой | Цитировать
Лиза
0 # Лиза 20.09.2014 20:15
Спасибо, буду пробовать
Ответить | Ответить с цитатой | Цитировать