Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161

Парсинг страницы для поиска самой ранней успешной сдачи задания

18.08.2014, 13:45. Показов 1412. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста. Надо пропарсить страницу, а именно вот эту http://acm.timus.ru/status.asp... hor=133892, чтобы выводила самую ранюю успешную сдачу этой задачи. Выводит только ДАТУ, остальное, имя студента, на каком языке и т.д. это не нужно. Только самую первую успешную попытку и только выводить её дату. И, если не сложно, объясните, как можно сравнить две даты. Скажем та ссылка, которая была до этого и http://acm.timus.ru/status.asp... hor=133885. Нужно сравнить, кто раньше решил 1014 задачу.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2014, 13:45
Ответы с готовыми решениями:

Вывести имя файла с самой последней или самой ранней датой последнего использования
Здравствуйте. Помогите с написанием bat файла. Разработать командный файл, который бы выводил в зависимости от ключа на экран имя файла...

Запрос для определения самой ранней даты рождения
Создать запрос на поиск самой ранней даты рождения сотрудников офиса в организации «Стулья» и вычислить разницу в днях с таким же...

Вывести имя файла с самой последней или с самой ранней датой последнего использования в текущем каталоге
Всем привет! Помогите, пжл., с написанием bat файла. Нужно: разработать командный файл, который бы выводил в зависимости от ключа на...

15
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
18.08.2014, 14:17
с помощью json-запроса (get) получаешь html-код странички. Выделяешь искомый текст и сравниваешь. А чтобы даты сравнить можно перевести дату в числовой формат если память не изменяет функцией mktime

Добавлено через 34 секунды
А вобще в инете достаточно статей по парсингу сайтов, поищи... не ленись
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
18.08.2014, 14:55  [ТС]
Allexxisss, вот что у меня получилось
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$data = file_get_html('http://acm.timus.ru/author.aspx?id=133892');
set_time_limit(0);
 
if($data->innertext!='' and count($data->find('td'))){
 
    foreach($data->find('.accepted') as $a){
 
        if (isset($plg->plaintext)) $plgObj = 'plgContent' . ucfirst($plg->plaintext);
        $b = $a->plaintext;
        $data2 = file_get_html('http://acm.timus.ru/status.aspx?space=1&num='.$b.'&author=133892');
  echo "<table><tr><td style = 'color: darkgreen;'>".$b."</td>";
    foreach($data2->find('.date') as $c){
        if (isset($plg->plaintext)) $plgObj = 'plgContent' . ucfirst($plg->plaintext);
        $text = "<td style='border: 1px solid black;'>".$c->plaintext."</td>";
$pattern = "|<td style='border: 1px solid black;'>Date</td>|s"; 
$text = preg_replace($pattern, "", $text); 
echo $text;
         }  
echo "</tr></table>";        
}
         }      
?>
Единственная беда - парсит всё подряд, а не первую успешную сдачу=(
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
18.08.2014, 15:10
ну так а где у тебя проверка то собственно?

Добавлено через 16 секунд
выложи полный код со всеми доп файлами
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
18.08.2014, 15:15  [ТС]
Вот всё, что у меня есть по парсеру. Некоторые файлы могут быть с безумным кодом, но это просто я тот или иной файл переделываю, пытаюсь что-то сделать.
Вложения
Тип файла: rar parser.ru.rar (336.5 Кб, 4 просмотров)
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
19.08.2014, 00:54  [ТС]
Allexxisss, что там?
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
19.08.2014, 12:05
And_Smi, на работе запара. Постараюсь сегодня посмотреть
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
19.08.2014, 12:17  [ТС]
Allexxisss, да понимаю, не спеши
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
21.08.2014, 15:18  [ТС]
Allexxisss, посмотрел? У меня есть соображения с помощью регулярных выражений провернуть, но к сожалению не понимаю их
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
21.08.2014, 15:30
Цитата Сообщение от And_Smi Посмотреть сообщение
У меня есть соображения с помощью регулярных выражений провернуть, но к сожалению не понимаю их
изучение их занимает 20 минут. Час - и вы мастер. Но понимаю, лень...
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
21.08.2014, 15:34  [ТС]
ads, не лень, въехать надо. Если вы так говорите, то я думаю вы сможете поделиться ссылкой на хорошую инфу про рег выражения? Сори за оффтоп.
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
21.08.2014, 15:40
А поиск? согласен. Тяжело. Но хотя бы начать. https://ru.wikipedia.org/wiki/... 0%B8%D1%8F
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
21.08.2014, 15:48  [ТС]
ads, вы сейчас настроены на то, чтобы оскорбить? Спасибо, не надо. А если вы считаете википедию источником информации то мне с вами не о чем разговаривать.
0
21.08.2014, 15:51

Не по теме:

оскорбляются, обычно, желающие оскорбиться. Зря вы википедию не читали. не было бы лишних слов

0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
21.08.2014, 15:56  [ТС]
ads, вы меня назвали лентяем, сказали, что тяжело поиском воспользоваться и вы еще говорите, что я желающий оскорбиться? Википедию не читаю вообще так как половина информации находится ложная и этот сайт уже заблокирован для доступа у меня. Короче, разговоры ведут в некуда, если хотите о чем-то поговорить - личка открыта. Хватит оффтопить..
0
1 / 1 / 1
Регистрация: 19.12.2013
Сообщений: 161
25.08.2014, 08:27  [ТС]
Помогите модернизировать скрипт, а именно чтобы выводил дату только самой ранней успешной сдачи какой-либо задачи. А то выводит все даты сдач.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$data = file_get_html('http://acm.timus.ru/author.aspx?id=133892');
set_time_limit(0);
 
if($data->innertext!='' and count($data->find('td'))){
 
    foreach($data->find('.accepted') as $a){
 
        if (isset($plg->plaintext)) $plgObj = 'plgContent' . ucfirst($plg->plaintext);
        $b = $a->plaintext;
        $data2 = file_get_html('http://acm.timus.ru/status.aspx?space=1&num='.$b.'&author=133892');
  echo "<table><tr><td style = 'color: darkgreen;'>".$b."</td>";
    foreach($data2->find('.date') as $c){
        if (isset($plg->plaintext)) $plgObj = 'plgContent' . ucfirst($plg->plaintext);
        $text = "<td style='border: 1px solid black;'>".$c->plaintext."</td>";
$pattern = "|<td style='border: 1px solid black;'>Date</td>|s"; 
$text = preg_replace($pattern, "", $text); 
echo $text;
         }  
echo "</tr></table>";        
}
         }      
?>

Или этот:
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
30
31
32
33
34
35
36
<?php
include 'simple_html_dom.php';
require_once 'simple_html_dom.php';
$data = file_get_html('http://acm.timus.ru/author.aspx?id=133892');
set_time_limit(0);
 
if($data->innertext!='' and count($data->find('td'))){
 
foreach($data->find('.accepted') as $a){
 
if (isset($plg->plaintext)) $plgObj = 'plgContent' . ucfirst($plg->plaintext);
$b = $a->plaintext;
$data2 = file_get_html('http://acm.timus.ru/status.aspx?space=1&num='.$b.'&author=133892');
echo "<table><tr><td style = 'color: darkgreen;'>".$b."</td>";
preg_match_all('#
<tr[^>]*>
<td\sclass="id">(.+?)</td>
<td\sclass="date">(.+?)</td>
<td\sclass="coder">(.+?)</td>
<td\sclass="problem">(.+?)</td>
<td\sclass="language">(.+?)</td>
<td\sclass="verdict_ac">Accepted</td>
<td\sclass="test">(.+?)</td>
<td\sclass="runtime">(.+?)</td>
<td\sclass="memory">(.+?)</td>
</tr>
#iSsux', $data2, $matches);
if(!count($matches[0])){
die("Not found");
}
$last = count($matches[0])-1;
echo $matches[0][$last];
 
}
} 
?>
Тут я смог достичь вывода полной информации, но к сожалению она лишняя, нужна лишь дата. Минус в том, что в некоторых задачах он выводит и ошибочные сдачи задач.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.08.2014, 08:27
Помогаю со студенческими работами здесь

Определить разницу в месяцах и днях между самой ранней и самой поздней датами, относящимися к заданному году
Решить задачу с использованием структуры «бинарный файл» (в файле хранятся величины типа «структура» - struct). Определить разницу в...

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

Вероятность успешной сдачи экзамена
Добрый день уважаемые форумчане!. Помогите с решением одной задачи. Заранее огромное вам спасибо!! Задача: По наблюдениям...

Вероятность успешной сдачи экзамена
Программа экзамена содержит 20 различных вопросов, из которых студент знает только 10. Для успешной сдачи экзамена достаточно ответить на 2...

Найти вероятность конкретного уровня подготовки студента при условии успешной сдачи им экзамена
2. В студенческой группе 3 человека имеют высокий уровень подготовки, 19 человек – средний и 3 – низкий. Вероятности успешной сдачи...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru