Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
1

Как вытащить ссылки из события?

05.01.2017, 18:46. Показов 722. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как парсить такие ссылки?
Код
<tr class="" style="cursor: pointer" onmouseover="this.setAttribute('class', 'rowSelected');" onmouseout="this.setAttribute('class', '');" onclick="if (event.ctrlKey || event.button == 1) { window.open('/trade/view/purchase/general.html?id=101315300', '_blank'); } else { window.location='[COLOR="Red"]/trade/view/purchase/general.html?id=101315300[/COLOR]'; }">
Интересует этот текст
Код
/trade/view/purchase/general.html?id=101315300
.Чет регулярка у меня не получается.

Добавлено через 10 минут
Использую curl и pHpQuery.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2017, 18:46
Ответы с готовыми решениями:

Как вытащить все ссылки?
Есть переменная с кодом страницы, на которой есть ссылки и массив, надо добавить в массив все...

Как вытащить переменные из закодированной ссылки
Имеем сгенерированный URL вида &quot;http://mysite.ru/result.php?c2lnbmF0dXJlPTEyMzQ1Jm1vc2ZldD10cnVl&quot;...

Как из ссылки вытащить данные
Есть такая вот сылка ya.ru/#id=day_wednesday_part_2 или такого вида ya.ru/#day_wednesday_part_2...

Как вытащить из ссылки
https://www.site.net/file/file2/photo.png как из этой строчки вытащить www.site.net...

5
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
05.01.2017, 19:00 2
Например, так:
PHP
1
2
preg_match("~window.location='(.*)'~", $str, $m); 
echo $m[1];///trade/view/purchase/general.html?id=101315300
разумеется, прежде привести этот текст к строковому виду.
1
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
05.01.2017, 22:02  [ТС] 3
Спасибо, попробую разобраться)

Добавлено через 2 часа 52 минуты
Что то не выходит.В общем есть страница, спарсеная curl, в ней таблица с лотами, а ссылки на эти лоты в виде :

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<tr class="rowSelected" style="cursor: pointer" onmouseover="this.setAttribute('class', 'rowSelected');" 
onmouseout="this.setAttribute('class', '');" 
onclick="if (event.ctrlKey || event.button == 1) { window.open('/trade/view/purchase/general.html?id=101315300', '_blank'); } else { window.location='/trade/view/purchase/general.html?id=101315300'; }"> 
<td style="white-space: nowrap;" rowspan="1" colspan="1">656-ОАЗФ</td> 
<td rowspan="1" colspan="1"> ГК "АСВ"  </td> <td rowspan="1" colspan="1">
 <div style="font-weight: bold;"> КБ «ЕДИНСТВЕННЫЙ» (ООО) </div> 
 <div style=" padding-top: 5px;"> <b>Лот №1</b>: ООО "ТОРГОВАЯ КОМПАНИЯ "БАШКОМСНАБ", ИНН 6311151324 (правопреемник ООО "Прогресс", ИНН 1647016698), решение Арбитражного суда Краснодарского края от 28.07.2016 по делу А32-17654/2016, решение Арбитражного суда Краснодарского края от 07.09.2016 по делу А32-14494/2016 (84&nbsp;877&nbsp;465,46 руб.) 
 <br clear="none"> Права требования к юридическим лицам: <br clear="none">
 <b>Лот №2</b>: ООО "АРГОС", ИНН 7714908753, решение Арбитражного суда г. Москвы от 08.08.2016 по делу А40-89231/16 (82&nbsp;418&nbsp;908,06 руб.) 
 <br clear="none"> Права требования к юридическим лицам: 
 <br clear="none"> <b>Лот №3</b>: ООО "Торговый дом "СТАТОР", ИНН 6311137231 (правопреемник ООО "Прогресс", ИНН 1647016698 ), решение Арбитражного суда Краснодарского края от 29.07.2016 по делу А32-14493/16 (95&nbsp;333&nbsp;582,16 руб.) 
 <br clear="none"> Права требования к юридическим лицам: 
 <br clear="none"> <b>Лот №4</b>: ООО "Энерго-Монтаж", ИНН 7701966469, решение Арбитражного суда г. Москвы от 24.02.2016 по делу А40-233932/15 (32&nbsp;764&nbsp;175,99 руб.) 
 <br clear="none"> Права требования к юридическим лицам: <br clear="none"> 
 <b>Лот №5</b>: ООО "ИмпортАзия", ИНН 7718844099, решение Арбитражного суда г. Москвы от 29.08.2016 по делу А40-112996/16 (65&nbsp;326&nbsp;940,64 руб.) 
 <br clear="none"> Права требования к юридическим лицам: 
 <br clear="none"> <b>Лот №6</b>: ООО "НОКС", ИНН 7726700573, КД 019-ю-14 от 25.02.2014, (203455,57 долларов США), КД 001-ю-14 от 13.01.2014, решение Арбитражного суда г. Москвы от 22.03.2016 по делу А40-233928 (36&nbsp;668&nbsp;288,31 руб.)  
 <br clear="none"> Права требования к юридическим лицам: <br clear="none"> 
 <b>Лот №7</b>: ООО "Ремтехника", ИНН 7701955160, КД 073-ю-14 от 20.06.2014 (974 437,04 долларов США), решение Арбитражного суда г. Москвы от 21.03.2016 по делу А40-233958/15 (63&nbsp;585&nbsp;427,39 руб.)
 <br clear="none"> Права требования к юридическим лицам: 
 <br clear="none"> <b>Лот №8</b>: ООО "Европромстрой", ИНН 7743075601, решение Арбитражного суда г. Москвы от 25.02.2016 по делу А40-233862/15 (45&nbsp;496&nbsp;167,16 руб.) 
 <br clear="none"> Права требования к юридическим лицам: <br clear="none"> <b>Лот №9</b>: ООО "ДЕЛАРМОНТАЖ", ИНН 7743057546, решение Арбитражного суда г. Москвы от 26.02.2016 по делу А40-233879/15 (37&nbsp;434&nbsp;433,79 руб.) 
 <br clear="none"> Права требования к юридическим лицам: <br clear="none">  ... </div> </td> 
 <td rowspan="1" colspan="1">объявлены</td> <td rowspan="1" colspan="1">12.01.2017 00:00</td> </tr>
Как мне из этого массива данных выудить эти ссылки? С обычными ссылками справился, для меня нормально.А с этим беда)
0
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
06.01.2017, 00:07  [ТС] 4
Сделал вот так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
    error_reporting(E_ALL); 
 
header('Content-type: text/html; charset=utf-8');
require 'phpQuery-onefile.php';
 
function get_content($url){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}
    $url = "https://www.seltim.ru/etp/trade/list.html";
    $file = get_content($url);
    $doc = phpQuery::newDocumentHTML($file);
 
        foreach($doc->find('tr[onclick]') as $article){
            $article = pq($article);
            
            preg_match("~window.location='(.*)'~", $article, $m); 
            echo '<pre>';
            print_r ($m);
            echo '</pre>';
        }
        
?>
Все отлично, находит ссылки все выводит в массиве. Вопрос такой как убрать строку:
Array
(
[0] => window.location='/trade/view/purchase/general.html?id=101315300' <<--Вот эту.
[1] => /trade/view/purchase/general.html?id=101315300 Меня интересует только вот этот буть с id.
)
Миниатюры
Как вытащить ссылки из события?  
0
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
06.01.2017, 00:18 5
Ну, можно просто упаковать все ссылки в один массив:
PHP
1
2
3
4
5
6
7
$links = array();
foreach($doc->find('tr[onclick]') as $article){
  $article = pq($article);
  preg_match("~window.location='(.*)'~", $article, $m);
  $links[] = $m[1];
}
print_r($links);
1
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
06.01.2017, 00:25  [ТС] 6
Спасибо огромное!
0
06.01.2017, 00:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2017, 00:25
Помогаю со студенческими работами здесь

Как вытащить ссылки из строки?
Имеется строка вида: &lt;li class=&quot;cat-item cat-item-16&quot;&gt;&lt;a href=&quot;#&quot; title=&quot;&quot;&gt;Вывески...

Как "вытащить" имя файла из ссылки, пути?
Вот есть такая ссылка (к примеру) https://www.cyberforum.ru/images/elka.gif и мне нужно средствами...

Вытащить ссылки из кода
&lt;a href=&quot;122.html&quot; title=&quot;&quot;&gt;Вывески несветовые&lt;/a&gt; / / &lt;a href=&quot;gfgh.html&quot;...

Вытащить данные из ссылки
чето подтупливаю на ночь глядя... есть ссылка &lt;a href=&quot;my.php?a=1&amp;amp;b=2&amp;amp;c=3&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru