3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
||||||
1 | ||||||
Регулярное выражение для получения ссылки на картинку20.11.2018, 12:23. Показов 2359. Ответов 14
Метки нет (Все метки)
Здравствуйте уважаемые форумчане.
Есть необходимость парсингом из статей ВК получать ссылки на изображения. Их в статье может быть сколько угодно, но каждая в структуре страницы выглядит так:
Помогите пожалуйста грамотно составить регулярное выражение, чтобы при парсинге страницы получить ссылки на ВСЕ (разные) картинки, но максимального размера... Я уже всю голову сломал. Получить ВСЕ картинки preg_match_all я могу без проблем, но нужно выбрать именно по одной от каждой самого большого размера. В коде видно размер картинки.
0
|
20.11.2018, 12:23 | |
Ответы с готовыми решениями:
14
Регулярное выражение для получения значения ячейки таблицы Регулярное выражение для получения названия из html-кода Регулярное выражение для ссылки Составить регулярное выражение для ссылки |
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
||||||
20.11.2018, 17:41 | 2 | |||||
MirDj, это типа так выглядит одна из ссылок на картинку ??
0
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
|
20.11.2018, 17:45 [ТС] | 3 |
VNIIAEN, Я написал что в исходном коде страницы Вконтакта это выглядит именно так... Это не мои "изобретения". Не думал что окажется что-то непонятным
0
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
|
20.11.2018, 17:52 | 4 |
MirDj, ок. А получить ссылку в каком виде нужно?
0
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
|
20.11.2018, 18:01 [ТС] | 5 |
0
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
||||||
20.11.2018, 21:27 | 6 | |||||
MirDj,
Кликните здесь для просмотра всего текста
1
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
|
20.11.2018, 21:31 [ТС] | 7 |
VNIIAEN, огромное спасибо. Потестирую завтра. Правильно я понимаю что если внутри
$str будет несколько подобных блоков, то массив вернет для каждого блока ссылку?
0
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
||||||
20.11.2018, 21:45 | 8 | |||||
Я не уверен в этом... Скрипт из переданной строки выделяет тот URL, у которого наибольшее число (размер, или что там...). В вашей строке наибольшее число 604 - этот URL скрипт и вытащит.
Если это возможно (я не представляю, как там у вас приходят данные), то вы можете собрать массив блоков вида: Кликните здесь для просмотра всего текста
Добавлено через 4 минуты MirDj, и ещё - замените функцию stripcslashes() в моём коде на эту stripslashes() (не внимательность...)
1
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
||||||
20.11.2018, 21:51 [ТС] | 9 | |||||
VNIIAEN, еще раз спасибо. Завтра проверю все.
Но предварительный тест показал что надо будет работать еще над этим кодом. Из рабочей страницы получил результат: Кликните здесь для просмотра всего текста
0
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
|
20.11.2018, 21:55 | 10 |
А на какой строке тестировали скрипт? -- опубликуйте её, плиз, я проверю на локальном сервере.
0
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
|||||||||||
20.11.2018, 21:59 [ТС] | 11 | ||||||||||
Я делаю так:
Вот ссылка на статью: https://vk.com/@oroom-nastroenie (можно перейти и посмотреть исходный код). Потом я скачиваю эту страницу
0
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
|
20.11.2018, 22:02 | 12 |
MirDj, лучше распечатайте мне значение переменной $res['content'], если это сейчас возможно.
0
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
|
20.11.2018, 22:18 [ТС] | 13 |
VNIIAEN,
Кликните здесь для просмотра всего текста
string(17650) "
<body class="vk__page _ivk _hover vk_ios_no vk_stickers_hints_support_no body_only body_fullscreen article_body opera_mini_no vk_safari_no vk_al_no"> <div class="layout"> <div class="layout__header mhead" id="vk_head"> <div class="hb_wrap"> <div class="hb_btn"> </div> </div> </div> <div class="layout__body " id="vk_wrap"> <div class="layout__leftMenu" id="l"> </div> <div class="layout__basis" id="m"> <div class="basis"> <div class="basis__header mhead" id="mhead"></div> <div class="CookiePolicy"><div class="CookiePolicy__content"><div class="CookiePolicy__icon"></div><div class="CookiePolicy__text">By continuing to browse, you consent to our use of cookies. You can read our Cookie Policy <a href="/privacy/cookies">here</a>.</div><a class="CookiePolicy__hide" href="/settings?act=hide_cookie_policy&hash=b96270618523af4630&redirect_url=%2F%40oroom-nastroenie&redirect_hash=1c27f64a3a27d42e92" onclick="CookiePolicy._onHideClick(event, this)"> <div class="CookiePolicy__hideIcon Icon Icon_close12" > </div></a></div></div> <div class="basis__content mcont" id="mcont" data-canonical="https://vk.com/@oroom-nastroenie"><div class="articleView__layout "> <div class="articleView__header"> <a class="articleView__close al_back_history" href="/oroom" style=""></a> <a class="articleView__close_mini al_back_history" href="/oroom" style=""></a> <div class="articleView__owner"><a href="/oroom"><img src="https://pp.userapi.com/c845218/v845218491/ec240/OEnJTwznTDw.jpg?ava=1"/></a></div> <div class="articleView__ownerName"><a href="/oroom">Чёткие приколы</a></div> <div class="articleView__subscribe" onclick="Article.subscribe(this, -31836774, 'dfe359f0351c530b59')"></div> </div> <div class="articleView__content_list"> <div class="articleView__content"><div class="article article_view article_mobile" id="article_view_-31836774_10185" data-article-url="/@oroom-nastroenie" data-audio-context="article:-31836774_10185"><h1 class="article_decoration_first article_decoration_last article_decoration_before" >Настроение</h1><div class="article__info_line"><a href="/oroom" class="group_link">Чёткие приколы</a><span class="dvd">·</span>19. Nov. um 13:01</div><figure data-type="101" data-mode="" class="article_decoration_first article_decoration_before" > <div class="article_figure_content" style="width: 604px"> <div class="article_figure_sizer_content"><div class="article_object_sizer_wrap" data-sizes="[{"m":["https:\/\/sun6-2.userapi.com\/vnJ5LWZBo3XMOuW-qR743jE2V-HZkMt7KNgw1w\/L1SwIQukZ4w.jpg",130,130],"o":["https:\/\/sun6-2.userapi.com\/vnJ5LWZBo3XMOuW-qR743jE2V-HZkMt7KNgw1w\/L1SwIQukZ4w.jpg",130,130],"p":["https:\/\/sun6-6.userapi.com\/FD57vhnAOus42HbHifmXo6eSQ4f-nX1xbZ3iXQ\/xUzZa2G0ATQ.jpg",200,200],"q":["https:\/\/sun6-4.userapi.com\/4XZAHi5HsoWuD9NHgYzyxxkgG9N9CxqpGQ49Ew\/J-NE32G71mE.jpg",320,320],"r":["https:\/\/sun6-5.userapi.com\/2RuTmzDAayWluSK5knKs5vPLBF4dVWbfgUbVfw\/lIQ_jr7wpxI.jpg",510,510],"s":["https:\/\/sun6-1.userapi.com\/EgS0GFGUUvPD1FjLuEJG3ZPuNpkWX-iYkc6qVg\/I9KWXqAnBfU.jpg",75,75],"x":["https:\/\/sun6-5.userapi.com\/xokaKLFHk1wot-Pnfo7-sPZUN68cRBKrupv9cA\/pj13VX1JogU.jpg",604,604]}]"> <img class="article_object_sizer_inner article_object_photo__image_blur" src="https://sun6-1.userapi.com/EgS0GFGUUvPD1FjLuEJG3ZPuNpkWX-iYkc6qVg/I9KWXqAnBfU.jpg" data-baseurl=""/> </div></div> <div class="article_figure_sizer" style="padding-bottom: 100%"></div> </div> </figure><figure data-type="101" data-mode="" class=" article_decoration_before" > <div class="article_figure_content" style="width: 604px"> <div class="article_figure_sizer_content"><div class="article_object_sizer_wrap" data-sizes="[{"m":["https:\/\/sun6-2.userapi.com\/DIb_xg3m6UmWjy_8jlD2Dk89le3_whxmlv96tQ\/SV6vLlz2FGE.jpg",130,130],"o":["https:\/\/sun6-2.userapi.com\/DIb_xg3m6UmWjy_8jlD2Dk89le3_whxmlv96tQ\/SV6vLlz2FGE.jpg",130,130],"p":["https:\/\/sun6-4.userapi.com\/Tf_hzy5xIJUuP002Pxjg_uwwetcUF3vFsPTrgw\/9-AW27wSSt4.jpg",200,200],"q":["https:\/\/sun6-6.userapi.com\/u9Xb7M5H8n_tEDPc-lL6Qz-fgShl9EHQDjDwiQ\/NGp1-XIoVFo.jpg",320,320],"r":["https:\/\/sun6-2.userapi.com\/sp4jX6nRATi8xsazDbjh2n72QcLq3Af2vzD2xA\/kV7u0UcRPAk.jpg",510,510],"s":["https:\/\/sun6-4.userapi.com\/GAQZfHaNNZc5rr2Y3TaTUm4j9PlAhqQz0wDoUg\/eVds8x8MHu0.jpg",75,75],"x":["https:\/\/sun6-1.userapi.com\/iimJCosUbNOpcwXlthANBNsbvvXcma1D0-lOHg\/YgQO3BG3dw8.jpg",604,604]}]"> <img class="article_object_sizer_inner article_object_photo__image_blur" src="https://sun6-4.userapi.com/GAQZfHaNNZc5rr2Y3TaTUm4j9PlAhqQz0wDoUg/eVds8x8MHu0.jpg" data-baseurl=""/> </div></div> <div class="article_figure_sizer" style="padding-bottom: 100%"></div> </div> </figure><figure data-type="101" data-mode="" class=" article_decoration_before" > <div class="article_figure_content" style="width: 604px"> <div class="article_figure_sizer_content"><div class="article_object_sizer_wrap" data-sizes="[{"m":["https:\/\/sun6-5.userapi.com\/70qrntuoMTEW8wruydDTAVDQEbBvPgnd_u-8lA\/w8IrKLH-N00.jpg",130,130],"o":["https:\/\/sun6-5.userapi.com\/70qrntuoMTEW8wruydDTAVDQEbBvPgnd_u-8lA\/w8IrKLH-N00.jpg",130,130],"p":["https:\/\/sun6-3.userapi.com\/_guppVmwdhZeT-m2Cym4P8H4WCdqhcz99LM6Mg\/_-d-7o1xF1o.jpg",200,200],"q":["https:\/\/sun6-2.userapi.com\/C-G92LIiGXEy9InIDc7j_Ddx3J2CvP2kgSTEkA\/NpMGpbZK3UY.jpg",320,320],"r":["https:\/\/sun6-5.userapi.com\/HiPZJoKq70x5VJ119hizho1SBNBuFRrMjoBQ7g\/wMnURxeIKM8.jpg",510,510],"s":["https:\/\/sun6-1.userapi.com\/WP2OWzowKRZb0k8R1JyXcwKiwmjogORIlCZ7Dw\/qInZf9r0sCs.jpg",75,75],"x":["https:\/\/sun6-6.userapi.com\/5JtqyJyCuw67LyheGkh3uZRcahjsqX3owvvgJA\/IE2htykKbqo.jpg",604,604]}]"> <img class="article_object_sizer_inner article_object_photo__image_blur" src="https://sun6-1.userapi.com/WP2OWzowKRZb0k8R1JyXcwKiwmjogORIlCZ7Dw/qInZf9r0sCs.jpg" data-baseurl=""/> </div></div> <div class="article_figure_sizer" style="padding-bottom: 100%"></div> </div> </figure><figure data-type="101" data-mode="" class=" article_decoration_before" > <div class="article_figure_content" style="width: 604px"> <div class="article_figure_sizer_content"><div class="article_object_sizer_wrap" data-sizes="[{"m":["https:\/\/sun6-5.userapi.com\/OfdbLb0B6USaJTe1V9zCmmmfI124O5u9MULNKA\/0qu0gqxg3PM.jpg",130,130],"o":["https:\/\/sun6-5.userapi.com\/OfdbLb0B6USaJTe1V9zCmmmfI124O5u9MULNKA\/0qu0gqxg3PM.jpg",130,130],"p":["https:\/\/sun6-2.userapi.com\/XcVYnAn9f0cufizGc6jFUJZi0eGGbDL5syegtA\/7UrmuBDyWuo.jpg",200,200],"q":["https:\/\/sun6-2.userapi.com\/Dh5XZW7uju6OZ-wMEqCh7gmXJNVReGtG1cN05w\/-zA5t-wIv2c.jpg",320,320],"r":["https:\/\/sun6-1.userapi.com\/Bkhlb377gtCPbNyFfQk0GIIstnLdhNOuB4gbPQ\/uVAaAcuKO3U.jpg",510,510],"s":["https:\/\/sun6-1.userapi.com\/B3uZbP12n0PEeY_juloCS0Nv1HNUDBcP_Nb2Qw\/lovn1BjPKWY.jpg",75,75],"x":["https:\/\/sun6-4.userapi.com\/XYa2EfYT7RZcr6l2BWgQOMR5yGfYrfWJ--kZaw\/9w0nkWs-uLM.jpg",604,604]}]"> <img class="article_object_sizer_inner article_object_photo__image_blur" src="https://sun6-1.userapi.com/B3uZbP12n0PEeY_juloCS0Nv1HNUDBcP_Nb2Qw/lovn1BjPKWY.jpg" data-baseurl=""/> </div></div> <div class="article_figure_sizer" style="padding-bottom: 100%"></div> </div> </figure><figure data-type="101" data-mode="" class=" article_decoration_last" > <div class="article_figure_content" style="width: 604px"> <div class="article_figure_sizer_content"><div class="article_object_sizer_wrap" data-sizes="[{"m":["https:\/\/sun6-5.userapi.com\/_jyrIHwAQlVDPUy2tn4yox_vhqevlbj5RpjuJw\/G6f4p3Fcf_0.jpg",130,130],"o":["https:\/\/sun6-5.userapi.com\/_jyrIHwAQlVDPUy2tn4yox_vhqevlbj5RpjuJw\/G6f4p3Fcf_0.jpg",130,130],"p":["https:\/\/sun6-1.userapi.com\/ujLJcUfJ7-j5TyMAVVADvhMU70WvNURf8FPJPA\/Xx6PALl2f0c.jpg",200,200],"q":["https:\/\/sun6-2.userapi.com\/61np3HIQbtxq_avESHbmi--G_T-n1kJllMmVQQ\/BAeMyg0_UFI.jpg",320,320],"r":["https:\/\/sun6-2.userapi.com\/VB1OburC_ujn1SoMBVdRlyAeQ0bvDi6n10bf9g\/z3j0WDZ8Xk0.jpg",510,510],"s":["https:\/\/sun6-4.userapi.com\/opDt2TPWOlUDSykIqJMCA4Zfe1FAQOPTJFgzog\/gBbUXGPFGe4.jpg",75,75],"x":["https:\/\/sun6-1.userapi.com\/705NowYaE-cR77DLEsQaVgrgTtucNpzqzAzGkg\/mvbhJrcX9AY.jpg",604,604]}]"> <img class="article_object_sizer_inner article_object_photo__image_blur" src="https://sun6-4.userapi.com/opDt2TPWOlUDSykIqJMCA4Zfe1FAQOPTJFgzog/gBbUXGPFGe4.jpg" data-baseurl=""/> </div></div> <div class="article_figure_sizer" style="padding-bottom: 100%"></div> </div> </figure></div> <\/body>\n <\/html>"} Добавлено через 1 минуту VNIIAEN, это сокращенный код, весь не дает вставить, но тут есть самое необходимое. Вся структура с которой нужно работать чтобы получить ссылки
0
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
||||||
20.11.2018, 23:15 | 14 | |||||
Кликните здесь для просмотра всего текста
Добавлено через 1 минуту MirDj, подправил регулярку - из всей этой массы html-кода скрипт получит только одну ссылку: https://sun1-19.userapi.com/xo... X1JogU.jpg
0
|
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
|
||||||
21.11.2018, 07:12 [ТС] | 15 | |||||
VNIIAEN, мне удалось состряпать код, который получает все ссылки, из каждого блока, но не самые большие, а последние из массива (может и не совсем правильно, с точки зрения составления регулярки)
0
|
21.11.2018, 07:12 | |
21.11.2018, 07:12 | |
Помогаю со студенческими работами здесь
15
Записать регулярное выражение для адреса и ссылки Нужно написать регулярное выражение для проверки коректности введенной ссылки Вконтакте Регулярное выражение ссылки Регулярное выражение: вырезать текст из ссылки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |