Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39

Как реализовать переход по новым ссылкам и сохранение страниц в браузере в автономном режиме?

10.10.2016, 16:36. Показов 1118. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Как сделать, чтобы программа переходила в браузере на стороннем форуме в новые темы и сохраняла их в html? То есть, заходит на форум и к примеру заходит в первые 5 тем, сохраняет их в html и повторяет тоже самое каждые 5-10 минут? При этом все было в автономном режиме, без участия юзера.
P.s. Извиняюсь за ошибку в названии темы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2016, 16:36
Ответы с готовыми решениями:

Как реализовать переход по ссылкам
Допустим, есть цикл который просто работает, есть функция которая передаёт какой то id из базы данных, и допустим к каждому id прикреплён...

Переход в webwrowser по сгенерированным ссылкам и парсинг страниц
Пишу программку для парсинга страниц одного сайта. Суть программы Если на веб станице будет найден текст то ссылка будет записана в...

Автоматический скриншот веб-страниц по ссылкам и сохранение в папку
Добрый день! Ситуация такая - есть таблица Excel со столбцами нумерации и гиперссылок, надо чтоб автоматически делались скриншоты по...

18
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 17:53
Ну таймер поставь, и по нему загружай этот форум, а оттуда уже по ссылкам темы.
0
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39
10.10.2016, 18:11  [ТС]
Так смысл в том, что темы создаются новые, у новых тем другие адреса, но всегда в одном и том же месте. Как на этом форуме. Допустим я с этого форума хочу сохранять темы, они постоянно обновляются, создаются новые темы. Как мне сделать так, чтобы программа переходила к новым темам? Я думаю, чтобы она нажимала по определенным координатам, где находятся темы, так как они всегда в одном и том же месте. Но как это делать?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 18:15
Ну вот ту страницу с темами загрузишь и извлечёшь из неё ссылки. HTML проанализируешь. Координаты - это перебор.
0
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39
10.10.2016, 18:18  [ТС]
Да я же говорю, адреса тем меняются. Как мне сделать, чтобы софт сам переходил к последним 5 темам (они могут быть новые или обновленные старые)?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 18:19
Когда они меняются? Пока загружается страница, что ли? Каждый раз головную страницу загружаешь заново.
0
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39
10.10.2016, 18:24  [ТС]
Заходите на форум, где есть темы. У каждой темы адрес форум.ру/тема1325, форум.ру/тема3563. И каждую минуту на форуме создаются новые темы у которых другой адрес форум.ру/новая_тема.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 18:27
И что? Я уже написал как надо делать.
В чём это реализовано? Как ты страницы загружаешь?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
10.10.2016, 18:27
SoneLore, Вы можете с помощью того же буста доставать каждые 5-10 минут html страницу и парсить её регулярками. Потом проверять, скачивали ли Вы эти темы уже, или нет, если Вам просто нужно скачивать все темы подряд. А если только последние 5, то они все идут по порядку, можете их так же вытащить, но только 5 штук.
2
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39
10.10.2016, 18:35  [ТС]
Будьте добры это наглядно показать. Какими функциями? Не понимаю.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 18:38
Это мы хотим твои наработки увидеть. Хоть что-то есть?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
10.10.2016, 18:39
Цитата Сообщение от SoneLore Посмотреть сообщение
Будьте добры это наглядно показать.
Я наглядно, конечно, могу, но Вы вряд ли поймёте( да и я тоже, потому что не я писал ).
А почитать можно на сайте буста:
http://www.boost.org/doc/libs/... _asio.html
А про регулярки тут:
http://en.cppreference.com/w/cpp/regex/basic_regex
1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 18:40
Я делал подобную программу. Только там не форум был, а торрент-трекер, и извлекались не ссылки, а названия последних тем. На Qt.
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
10.10.2016, 18:55
Code
1
wget -r -l 1 -k -E -H -I '/cpp-beginners' 'https://www.cyberforum.ru/cpp-beginners/'
Ну а дальше, батничек/башик и по "крону" его.
На всякий случай wget собственной персоной.
1
10.10.2016, 19:03

Не по теме:

Nosey, это же не C++.

0
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39
10.10.2016, 19:09  [ТС]
Я нашел подобное, только написано для вк и на Php. Может кто в плюсы перевести?
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php 
 
set_time_limit(0); 
 
$mail = "";//Логин или е-маил от кнтакта 
$pass = "";// пароль от контакта 
$mobile = "1111"; 
 
function grabb($str, $start, $end) { 
$start = strpos($str, $start) + strlen($start); 
$end = strpos($str, $end, $start); 
$result = substr($str, $start, $end - $start); 
flush(); 
return $result; 
} 
 
 
 
 
 
 
function connect($link,$cookie=null,$post=null){ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$link); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 0); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
if($cookie !== null) 
curl_setopt($ch, CURLOPT_COOKIE, $cookie); 
if($post !== null) 
{ 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
} 
$otvet = curl_exec($ch); 
curl_close($ch); 
return $otvet; 
} 
 
 
 
 
$otvet=connect("http://login.vk.com/?act=login&email=$mail&pass=$pass"); 
If(!preg_match("/hash=(.*?)&/",$otvet,$hash)){ 
die("Login incorrect"); 
} 
 
 
$otvet=connect("http://vk.com/login.php?act=slogin&fast=1&hash=".$hash[1]."&s=1"); 
preg_match("/remixsid=(.*?);/",$otvet,$sid); 
$cookie = "remixchk=5; remixsid=$sid[1]"; 
$html = connect("http://vk.com/mail.php",$cookie); 
 
 
 
 
 
 
 
 
$pos = strpos($html, 'mess');
$max = substr($html, $pos+4, 4);
// $max -- последнее айди 
$maxLast=1800; //предыдущее последнее айди(скажем, когда в предыдущий раз запускали парсер)
 
$x=$maxLast;
$m;
$m1;
$m2;
 
 
 
//циклом перебираем сообщения от самого нового до нужного
 
for ($x=$max; $x>$maxLast; $x--) {
$s="http://vk.com/mail.php?act=show&id=";
$s .=$x;
$inbox_page = connect($s,$cookie);
preg_match('|mem_link(.*)</a|', $inbox_page, $m1);
$pos = strpos($m1[1], 'id');
$m2=substr($m1[1], $pos+11, 50); //получаем имя отправителя(неправильно работает)
 
 
 
//ищем запись mail_envelope возле которой находится тело сообщения; вытаскиваем сообщение
preg_match('|<div class="mail_envelope_body wall_module wrapped" style="width: 285px;">(.*)</div|', $inbox_page, $m);
echo "<br>";
$sss;
$s =": ";
$m2 .= $s;
$m2 .= $m[1];
echo $m2;
 
}
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
10.10.2016, 19:19

Не по теме:

nmcf, Да :-[. Но за-то проблему из первого поста решает на 500% и в одну строчку. Вдруг ТС таки ошибся разделом, и ему не нужны шашечки наши, ему ехать подавай.



Добавлено через 9 минут
SoneLore,
1) Googl'o кодинг в плюсах слабо работает. Так что по разбираться придется.
2) В плюсах в стандартной библиотеке нет способа работать с http. Так что нужно либо выбирать библиотеку, и читать чутка документации по ней, либо читать поболее документации для целевой платформы по сокетам а также дофига спецификации по http.
3) После этих шагов в большей или меньшей степени можно переводить код из пхп в плюсы.

Особенно внимание обратите на сообщения от GbaLog-, мистер дело говорит.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.10.2016, 19:33
Nosey, ну какие сокеты? Так глубоко не надо опускаться - в Qt всё есть для загрузки страниц.
1
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 39
10.10.2016, 19:40  [ТС]
Просьба закрыть тему. Понял, как решить проблему, но с ней возникла другая, но эта история в новой теме. Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.10.2016, 19:40
Помогаю со студенческими работами здесь

Сетевой принтер в автономном режиме
На сервере стоит принтер Xerox Phaser 3320 впал в автономный режим и оттуда не как не вывести. 1)На принтере прописан айпи. ...

Работа приложения в автономном режиме
Подскажите пожалуйста как реализовать работу android приложения в автономном режиме.

Как запретить переход по ссылкам на некоторые страницы?
Привет! Посоветуйте, решение, плиз. Есть страница вывода страниц-проектов в виде квадратных фото с надписями (см. скрин), являющимися...

Как сделать плавный переход к якорным ссылкам
Можно пример рабочего кода

Как поставить таймер на переход по ссылкам на странице?
Помощь! Поставить таймер на переход по ссылкам на странице по таймеру Доброго времени суток. Помогите разобраться с кодом по...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru