4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160

Поиск информации по странице

12.09.2010, 23:52. Показов 7524. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как реализовать поиск нужной мне информации на сайте и занесение в базу данных

Код получаю $cod = file_get_contents('http://site.com/pages/hands');
HTML5
1
2
3
4
5
<td class="tip"><img class="itemicon" src="http://site.com/sites/images/icons/item/hands.png">
<div class="itemname">hands</div>
<div class="itemtype">Medium</div>
<div class="itemdata">487</div>
</td>
Как мне по фиолетовым данным найти красные данные, используя регулярные выражения?
Или подскажите документацию по регулярным выражениям на русском языке.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.09.2010, 23:52
Ответы с готовыми решениями:

Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе
В сервис-центре хранятся квитанции о сданной в ремонт аппаратуре. Каждая квитанция содержит следующую информацию: наименование группы...

Запись в текстовый файл информации о студентах, поиск информации, сортировка
Здравствуйте помогите пожалуйста:( 3.1 Для записи в текстовый файл информации о студентах Вашей группы создать КФ WRITE_FD.BAT со...

получения информации о странице
возник такой вопрос, есть функция page _ data для получения информации о странице. &lt;meta name=&quot;keywords&quot;...

61
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.11.2010, 18:50
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Curse Посмотреть сообщение
это не правильно?
Видмо, неправильно. Потому что нелогично, что название столбца в таблице равно его значению в SQL-выражении.

Цитата Сообщение от Curse Посмотреть сообщение
Notice: *Undefined variable: result4 in C:\wamp\www\cloaks.php on line 157
Похоже, что регулярка не подходит для входного текста или неправильно составлена. Покажите пример текста.
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
01.11.2010, 19:18  [ТС]
Цитата Сообщение от ostgals Посмотреть сообщение
Видмо, неправильно. Потому что нелогично, что название столбца в таблице равно его значению в SQL-выражении.
В базу информация заносится.
Цитата Сообщение от ostgals Посмотреть сообщение
Похоже, что регулярка не подходит для входного текста или неправильно составлена. Покажите пример текста.
HTML5
1
2
3
4
5
6
7
8
9
10
11
<p>Set(2): +21 Vitality<br>
Set(2): +9 Might<br>
Set(3): +21 Vitality<br>
Set(3): +21 Fate<br>
Set(4): +87 in-Combat Morale Regen<br>
Set(4): +39 Maximum Morale<br>
Set(5): +43 Vitality<br>
Set(5): +21 Might<br>
Set(6): +87 in-Combat Morale Regen<br>
Set(6): +43 Might<br>
Set(6): +88 Maximum Power<br></p>
Код записан в строку.
теги <div> находится на предыдущей и следующей строках
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.11.2010, 20:08
Цитата Сообщение от Curse Посмотреть сообщение
'#<div class="itemseteff"><p>(.+?)</p></div>#si'
И что же должна "выловить" эта регулярка из этого текста?
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
01.11.2010, 20:13  [ТС]
Цитата Сообщение от ostgals Посмотреть сообщение
И что же должна "выловить" эта регулярка из этого текста?
Я предполагаю - все, что находится между тегами.
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.11.2010, 20:17
Цитата Сообщение от Curse Посмотреть сообщение
Я предполагаю - все, что находится между тегами.
ОК. Но если оба тэга div находятся на других строках, тогда чуть измените регулярку:
#<div class="itemseteff">\s*<p>(.+?)</p>\s*</div>#si

Это чтобы учитывались пробелы, к которым относится и перенос строки.
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
01.11.2010, 20:25  [ТС]
Цитата Сообщение от ostgals Посмотреть сообщение
ОК. Но если оба тэга div находятся на других строках, тогда чуть измените регулярку:
#<div class="itemseteff">\s*<p>(.+?)</p>\s*</div>#si
Это чтобы учитывались пробелы, к которым относится и перенос строки.
Большое спасибо. А как можно добавить этот текст в массив с индексом [1] или в таблицу в ту же запись.
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.11.2010, 21:51
Цитата Сообщение от Curse Посмотреть сообщение
А как можно добавить этот текст в массив с индексом [1] или в таблицу в ту же запись.
Не понял, если честно. Можно пример?
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
01.11.2010, 22:11  [ТС]
В этот массив или в ту же строку, в которую заносятся данные.
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
$regexps3 = '#<div class="items[a-z]"><a [^>]+>(.+?)</a></div>#si';
preg_match_all($regexps3, $cod, $match);
?>
<pre>
<?php print_r($match[1]); ?>
</pre>
<?php
mysql_query("INSERT INTO Sets (`" . implode("`, `",array_keys($match[1]))."`) VALUES('".implode("','", array_map('mysql_real_escape_string',array_values($match[1])))."');");
echo mysql_error();
?>
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.11.2010, 22:42
Полученный текст надо добавть в таблицу Sets?
Если да, то в какой столбец?
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
02.11.2010, 00:31  [ТС]
Да в таблицу sets, в столбец set_bonus
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
02.11.2010, 10:04
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    
    $regexps3 = '#<div class="items[a-z]"><a [^>]+>(.+?)</a></div>#si';
    $regexps4 = '#<div class="itemseteff">\s*<p>(.+?)</p>\s*</div>#si';
    
    preg_match_all($regexps3, $cod, $match);
    preg_match($regexp4, $cod, $match2);
    
    $match[1]['set_bonus'] = $match2[1]; // добавляем найденный текст в $match[1]
    
    mysql_query("INSERT INTO Sets (`" . implode("`, `",array_keys($match[1]))."`) VALUES('".implode("','", array_map('mysql_real_escape_string',array_values($match[1])))."');");
 
?>
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
06.11.2010, 02:03  [ТС]
В похожей ситуации не получается такими выражениями найти нужные данные
HTML5
1
2
<td class="ingredient sricon"><a href="/wiki/Item:S_Mark"><img src="localhost/it_barter_skirmish_point.png" class="icon" rel="/index.php?action=ajax&amp;rs=efLotroResourceAjaxWrapper&amp;rsargs[]=item&amp;rsargs[]=1879155768"></a><br>Give<br>x0</td><td class="ingredient sricon"><a href="/wiki/Item:Ann%C3%B_Mark"><img src="localhost/it_barter_classic_specific_annuminas.png" class="icon" rel="/index.php?action=ajax&amp;rs=efLotroResourceAjaxWrapper&amp;rsargs[]=item&amp;rsargs[]=1879185087"></a><br>Give<br>x2</td><td class="ingredient sricon"><br>Give<br>x5</td>
<td class="ingredient sricon"><a href="/wiki/Armour:Cloak_of_the_West-tower"><img src="localhost/eq_cloak_hvy_set_lvl65.png" class="icon" rel="/index.php?action=ajax&amp;rs=efLotroResourceAjaxWrapper&amp;rsargs[]=armor&amp;rsargs[]=1879184913"></a><br>Get<br>x1</td>
Пытался найти следующим образом
PHP
1
2
<?php $regexps4 = '#<td class="ingredient sricon"><a href="/wiki/(.+?)">#si';
preg_match_all($regexps4, $cod, $match); ?>
и
PHP
1
2
<?php $regexps4 = '~<td class="ingredient sricon"><a href="/wiki/(.+?)">~';
preg_match_all($regexps4, $cod, $match); ?>
в ответ получаю
HTML5
1
2
3
4
5
6
7
8
9
Array
(
    [0] => Array
        (
        )
    [1] => Array
        (
        )
)
С чем это связано?
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
06.11.2010, 21:11
Первая регулярка должна работать.

Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$text = '
<td class="ingredient sricon"><a href="/wiki/Item:S_Mark"><img src="localhost/it_barter_skirmish_point.png" class="icon" rel="/index.php?action=ajax&amp;rs=efLotroResourceAjaxWrapper&amp;rsargs[]=item&amp;rsargs[]=1879155768"></a><br>Give<br>x0</td>
<td class="ingredient sricon"><a href="/wiki/Item:Ann%C3%B_Mark"><img src="localhost/it_barter_classic_specific_annuminas.png" class="icon" rel="/index.php?action=ajax&amp;rs=efLotroResourceAjaxWrapper&amp;rsargs[]=item&amp;rsargs[]=1879185087"></a><br>Give<br>x2</td>
<td class="ingredient sricon"><br>Give<br>x5</td>
<td class="ingredient sricon"><a href="/wiki/Armour:Cloak_of_the_West-tower"><img src="localhost/eq_cloak_hvy_set_lvl65.png" class="icon" rel="/index.php?action=ajax&amp;rs=efLotroResourceAjaxWrapper&amp;rsargs[]=armor&amp;rsargs[]=1879184913"></a><br>Get<br>x1</td>';
 
$rexp = '#<td class="ingredient sricon"><a href="/wiki/(.+?)">#si';
 
if (preg_match_all($rexp, $text, $matches))
{
    echo '<pre>'.print_r($matches[1], true).'</pre>';
}
else
{
    echo 'Nothing';
}
Результат:
Code
1
2
3
4
5
6
Array
(
    [0] => Item:S_Mark
    [1] => Item:Ann%C3%B_Mark
    [2] => Armour:Cloak_of_the_West-tower
)
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
06.11.2010, 23:34  [ТС]
А если коды ячеек <td> записаны в строчку, а не начинаются с новой строки?
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
07.11.2010, 10:08
Цитата Сообщение от Curse Посмотреть сообщение
А если коды ячеек <td> записаны в строчку, а не начинаются с новой строки?
Все равно сработает.
Не проще ли попробовать, чем спрашивать?
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
09.11.2010, 18:39  [ТС]
Не могу понять, когда код пишу в переменную сам то получается, если же при помощи функции file_get_contents , то ничего не находится.
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
09.11.2010, 22:15
Цитата Сообщение от Curse Посмотреть сообщение
Не могу понять, когда код пишу в переменную сам то получается, если же при помощи функции file_get_contents , то ничего не находится.
Раньше ведь находилось?
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
09.11.2010, 23:17  [ТС]
Все предыдущие регулярные выражения работают... поиск не проходит только по последнему. Но если вписать код в переменную вручную а не командой, то все находится.
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
09.11.2010, 23:48
Выведите полученный через file_get_contents() html:
PHP
1
echo htmlspecialchars(file_get_contents($url));
и внимательно проверьте в выведенном коде наличие нужных строк.

Если их там нет, то возможно они генерируются каким-то скриптом.
1
4 / 4 / 0
Регистрация: 12.07.2010
Сообщений: 160
10.11.2010, 00:09  [ТС]
Этот код есть... но со слэшами
HTML5
1
[ ["<table>\n<tr>\n<td class=\"ingredient sricon\"><a href=\"\/wiki\/Item:Skirmish_Mark\"><img src=\"http:\/\/url\/images\/icons\/item\/skirmish\/it_barter_skirmish_point.png\" class=\"icon\" rel=\"\/index.php?action=ajax&amp;rs=efResourceAjaxWrapper&amp;rsargs[]=item&amp;rsargs[]=1879155768\" \/><\/a><br \/>Give<br \/>x0<\/td><td class=\"ingredient sricon\"><a href=\"\/wiki\/Item:Ann\u00faminas_Mark\"><img src=\"http:\/\/url\/images\/icons\/item\/skirmish\/it_barter_classic_specific_annuminas.png\" class=\"icon\" rel=\"\/index.php?action=ajax&amp;rs=efResourceAjaxWrapper&amp;rsargs[]=item&amp;rsargs[]=1879185087\" \/><\/a><br \/>Give<br \/>x2<\/td><td class=\"ingredient sricon\"><br \/>Give<br \/>x5<\/td>\n<td class=\"ingredient sricon\"><a href=\"\/wiki\/Armour:Cloak_of_the_West-tower\"><img src=\"http:\/\/url\/images\/icons\/item\/back\/eq_cloak_hvy_annuminas_set_lvl65.png\" class=\"icon\" rel=\"\/index.php?action=ajax&amp;rs=efResourceAjaxWrapper&amp;rsargs[]=armor&amp;rsargs[]=1879184913\" \/><\/a><br \/>Get<br \/>x1<\/td>\n<\/tr>\n<\/table>"] ]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2010, 00:09

Обновление информации на странице
в общем хочу создать сайт, на котором информация на странице будет меняться при перезагрузке. Информация должна браться из базы данных. с...

Проверка серверной информации о странице
Хотел посмотреть, какую информацию предоставляет сервер о странице, и для этого я сделал тестовый HTML файл, внедрив в него вот такой РНР...

Сообщение о изменнение информации на странице
Здраствуйте, помогите пожалуйста написать скрипт для проверки изменений на странице. Тоесть у нас есть сайт http://www.example.com/, и...

Вывод информации из MySql на странице
Добрый день вам О великие гуру)))) Мне очень нужна ваша помощь! В общем трабл у меня такой. Необходимо отобразить данные из...

Вывод информации на странице из базы данных
Здравствуйте. Научился с помощью массива выводить из базы данных информацию на главной странице, в нужном порядке. Так же выводятся...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru