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]   

> Описание: Пожалуйста помогите спарсить график
Facecontrol
Отправлено: 23 Августа, 2019 - 00:33:56
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Нояб. 2010  


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




Вообщем есть страница
http://www[dot]tennisprediction[dot]com/[dot][dot][dot];ma_id=823953685
Мне с неё необходимо выдернуть график с названием Form (according to setting)

Я практически не понимаю логику регулярных выражений.
Поэтому не думаю что стоит выкладывать тот бред что я пытался писать 😂 я так понимаю что нужно вытащить с этого куска кода
Спойлер (Отобразить)


Помогите пожалуйста.
 
 Top
LIME
Отправлено: 23 Августа, 2019 - 18:45:52
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Да не нужна тебе регулярка
https://www.php.net/manual/ru/si...amples-basic.php
 
 Top
Строитель Модератор
Отправлено: 23 Августа, 2019 - 19:54:26
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Facecontrol пишет:
Я практически не понимаю логику регулярных выражений.
А там всё сложно только при поверхностном прочтении. Если перечитать вдумчиво, то всё довольно таки логично и упорядочено.
 
 Top
Facecontrol
Отправлено: 23 Августа, 2019 - 22:14:32
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Нояб. 2010  


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




Строитель пишет:
Facecontrol пишет:
Я практически не понимаю логику регулярных выражений.
А там всё сложно только при поверхностном прочтении. Если перечитать вдумчиво, то всё довольно таки логично и упорядочено.

Подскажи пожалуйста где лучше почитать про регулярки
 
 Top
LIME
Отправлено: 24 Августа, 2019 - 00:11:54
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




.

(Отредактировано автором: 24 Августа, 2019 - 00:58:38)

 
 Top
Facecontrol
Отправлено: 24 Августа, 2019 - 00:22:17
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Нояб. 2010  


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




LIME пишет:
это xml
Какие регулярки
Все уже структурированно
(Добавление)
А вообще у Котерова "php в подлиннике" наверное самое дохобчивое объяснение для старта. Отдельно главу можно прочитать

Ладно извини, просто я совсем малость изучал php и html Ито давно, а вот сейчас для своих нужд надо скрипт написать один вот и сижу туплю. Сейчас попробую понять как воспользоваться твоим советом. Правда я не совсем понял как это сделать.
(Добавление)
Что то я все равно не пойму как это организовать. Я только с помощью регулярки пытаюсь, xml для меня вообще темный лес, в первый раз с ним столкнулся.
Но и регуляркой тоже не так то и просто. Понял что с этого участка
Спойлер (Отобразить)


Нужно выдернуть вот эту ссылку
http://www[dot]tenisinfo[dot]eu/graph[dot]ph[dot][dot][dot]me=%20&lng=1

Пытался с помощью регулярки, но так как я мега спец. Ничего не вышло.
Спойлер (Отобразить)


Помогите пожалуйста мне буду очень признателен.

Вот если что большая часть кода откуда нужно выдернуть.
Спойлер (Отобразить)
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2019 - 11:27:14
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Facecontrol
PHP:
скопировать код в буфер обмена
  1. $str = '------MultipartBoundary--CqGdqQdT9jiN5WLQOzH0PQkxSRcsu3VF8bpoIirWRp----
  2. Content-Type: text/html
  3. Content-ID: <frame-2DC98E9F5D0CA541324C92011400F005@mhtml.blink>
  4. Content-Transfer-Encoding: binary
  5. Content-Location: http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24||24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1';
  6.  
  7. $patt = '~Content-Location: http://\S+~';
  8. $url = preg_match($patt, $str, $url) ? $url[0] : '';
  9.  
  10. echo $url;
 
 Top
Facecontrol
Отправлено: 24 Августа, 2019 - 19:16:58
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Нояб. 2010  


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




Строитель пишет:
Facecontrol
PHP:
скопировать код в буфер обмена
  1. $str = '------MultipartBoundary--CqGdqQdT9jiN5WLQOzH0PQkxSRcsu3VF8bpoIirWRp----
  2. Content-Type: text/html
  3. Content-ID: <frame-2DC98E9F5D0CA541324C92011400F005@mhtml.blink>
  4. Content-Transfer-Encoding: binary
  5. Content-Location: http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24||24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1';
  6.  
  7. $patt = '~Content-Location: http://\S+~';
  8. $url = preg_match($patt, $str, $url) ? $url[0] : '';
  9.  
  10. echo $url;


спасибо вам большое. Получилось почти то что я хотел, но единственное уточнение, я может неправильно высказал что хотел бы получить.
Дело в том что Content-Location: http:// может быть множество, понятное дело выбираю их через preg_match_all()
Но мне возвращает массив типо Content-Location: http://любая последовательность символов.
А мне нужно выбрать именно Content-Location: http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24|21|24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1";
И заметил я то что есть один Content-Location: http://www[dot]tenisinfo[dot]eu/graph.php?a0=
А после равно уже может иди любая последовательность символов. Стоит. Вопрос как организовать чтоб скрипт находил именно такой вариант ссылки?
(Добавление)
О походу нашел как $patt = '~http://www.tenisinfo.eu/graph.php\?a0=\S+~';
(Добавление)
Но не пойму в чём причина, как будто обрезает ссылку
Возвращает
www[dot]tenisinfo[dot]eu/graph.php?a0=0|[dot][dot][dot]mp;p1_name=Jeong
Хотя должно быть так
www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24|21|24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1

(Отредактировано автором: 24 Августа, 2019 - 19:45:33)

 
 Top
Facecontrol
Отправлено: 25 Августа, 2019 - 00:54:38
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Нояб. 2010  


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




Вообщем как говорится начали за здравие...
Проблема ещё одна получилась. Вообщем ссылку грубо говоря получил, правда обрезанную, но дело в другом, я хотел спарсить график.
PHP:
скопировать код в буфер обмена
  1. $url2="http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24|21|24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1";
  2. $curl2=curl_init();
  3. curl_setopt($curl2, CURLOPT_URL, $url2);
  4. curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl2, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($curl2, CURLOPT_SSL_VERIFYHOST, false);
  8. $site2=curl_exec($curl2);
  9. echo $site2;
  10.  

Но почему то мне ничего не выдает, пустой экран.
Думал может защита какая на сайте от парсинга, так нет главную то парсит, а вот отдельно график не хочет.
Скрин графика внизу.
Прикреплено изображение (Нажмите для увеличения)
Screenshot_2019-08-24-23-45-44-078_com.android.chrome.png
 
 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