powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как скачать файл по ссылке без браузера
18 сообщений из 18, страница 1 из 1
Как скачать файл по ссылке без браузера
    #39758628
pp15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане!
Подскажите, пожалуйста, способ (а еще лучше образец кода VBA) для скачивания файла excel в определенную папку, с сайта по гиперссылке (образец):

https://www.cian.ru/export/xls/offers/?currency=2&deal_type=sale&district%5B0%5D=34&engine_version=2&maxprice=8500000&offer_type=flat&room2=1]https://www.cian.ru/export/xls/offers/?currency=2&deal_type=sale&district[0]=34&engine_version=2&maxprice=8500000&offer_type=flat&room2=1

Очень хочется сделать это без открытия браузера, т.к. таких ссылок уже более 30 и если каждый раз, они будут открываться в браузере, то это крайне неудобно.

p.s. Дело происходит в БД Access. Файлы нужны для дальнешего импорта в БД и их автоматической обработки. Эта часть уже реализована.
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39758642
PWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39758700
pp15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PWW,
Спасибо за ответ. К сожалению, я любитель-самоучка и этот раздел практически не знаю. Подскажите, пожалуйста, где в примере правильное заклинание. И как, все-таки скачать этот экселевский файл?
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39758706
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может стоит попробовать программами-качалками?
Есть куча программ-качалок: Download Master, Free Download Manager, Internet Download Manager, Ant Download Manager и куча других. Посмотрите, какому можно передать параметру скачки в командной строке, а потом и запускайте его из своей программы. с параметром скачиваемого документа.
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39758724
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39758829
pp15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zimkon,
Большое спасибо!
Пример подошел, все работает.
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905487
silmaril85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто подсказать, почему с https вместо файла по гиперссылке скачивается html-код страницы авторизации, но при этом если эту ссылку ставку вставить в браузер и перейти по ней, то выдаёт окно сохранения корректного файла?
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905490
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silmaril85
Может кто подсказать, почему с https вместо файла по гиперссылке скачивается html-код страницы авторизации, но при этом если эту ссылку ставку вставить в браузер и перейти по ней, то выдаёт окно сохранения корректного файла?
в браузере ты авторизирован
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905565
silmaril85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,
Так а можно как-то программно авторизоваться или тут вариант только с sendkeys ?
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905649
silmaril85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли как-то в адресной строке передавать логин и пароль? Есть вот такая структура в адресе "policyId=urn:ibm:security:authentication:asf:"
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905680
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silmaril85
Можно ли как-то в адресной строке передавать логин и пароль? Есть вот такая структура в адресе "policyId=urn:ibm:security:authentication:asf:"


Можно, и очень просто (дальше мой пример- заход на сайт, ввод логина и пароля на сайт (web server обрабатывается на PHP) , и если такой пользователь есть в базе MySQL,
то выводится строка Json) Кусок по вашему вопросу:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
'БЛОК ПОДКЛЮЧЕНИЯ К САЙТУ 
.....
Dim user as String ' логин 
Dim password as String ' пароль
keyAction = "select_action" 'ключ параметр определяющий тип запроса ,передаваемый в PHP
argumentString = "user=" & user & "&password=" & password ' & "&keyAction=" & keyAction & "&fullQuery=" & fullQuery
'MsgBox argumentString
On Error GoTo err_description
URL = "http://АдресВашейСтраницы/имяВашейСтраницы.php"
xmlhttp.Open "POST", URL, False
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.setRequestHeader "Cache-Control", "no-cache"
xmlhttp.send argumentString
MsgBox xmlhttp.responseText ' пример вывода содержимого страницы после подключения

' PS если логин или пароль неправильный, или нет доступа к сайту, все это у меня выводится в error_description.
.....



На стороне PHP тоже все просто, обычный прием логина и пароля, и если все гуд, вывод Json к примеру:
Код: 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.
<?php
if (empty($_POST['user']) || empty($_POST['password']))  
{
    echo "Вы что-то не заполнили";  
} else {
    $log= $_POST['user'];
    $pass=$_POST['password'];
    
	try {
     $dbh = new PDO('mysql:host=localhost;charset=utf8;dbname=db_sales', $log, $pass);
     $response = $dbh->query("SELECT * FROM tbl_sales")->fetchAll(PDO::FETCH_ASSOC);
    
    foreach ($response as $row)
        {
            $tblData[]=$row;
        }
    
    print json_encode($tblData,JSON_UNESCAPED_UNICODE);
    
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage();
   // die();
}

 } 
?>
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905699
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кстати мой рабочий пример скачки и линковки таблиц ГуглШитс. Написал как то для киберфорума.

Пример синхронной работы (импорт-экспорт, синхронное обновление ) за отдельную плату))
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905721
silmaril85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

Спасибище, Сергей! Натолкнули на решение проблемы. Всё получилось!
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905729
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silmaril85
Сергей Лалов,

Спасибище, Сергей! Натолкнули на решение проблемы. Всё получилось!


Отлично! Рад что примеры зашли вам)

Смотрите дополнительно, в принципе механизм скачки файла из сети очень прост. Но если вы качаете данные с каких то крупных известных сайтов, там зачастую первая страница это непосредственно аутентификация, а данные которые вам нужно спарсить (ну или вывести куданить) находятся на другой.
Тут какой подход нужен:
1) Отправить данные (GET или POST) на страницу аутентификации
2) Дождаться положительного респонса от сайта (посмотрите варианты ответа сайтов - 200,300,404,410,500 итп..)
3) Дождаться редиректа на нужную страницу с данными.
4) И только потом парсить содержимое нужной страницы.

PS. Возможный вариант развития событий. Некоторые крупные сайты не дают доступ к своему API из кода вашего проекта непосредственно. Для этого у них надо выпросить дополнительный токен. Токен они дают как правило без проблем (высылают по электронной почте к примеру). И этот токен является дополнительным параметром, который нужно передавать в строке подключения.
Это просто, на будущее.. Просто накалывался, когда код написан верно, а подключения нет. Подбешивало, не понимал в чем проблема.
А ларчик просто открывался)
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905939
silmaril85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

Да. Как раз и был затык с авторизацией, с отправкой POST на сервер для подключения. До этого всё нормально скачивалось с http, но как перешли на https, то произошёл затык. нужна была эта авторизация.
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39905959
PWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silmaril85,

Возьмите на заметку, что при сохранение файла на диск через функции VBA файл, если он большой, будет обрезан (критический размер с которого начинается обрезание не знаю). Поэтому полученный из интернета файл пишите на диск через Win API.
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39906038
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PWW
...(критический размер с которого начинается обрезание не знаю)....

А если спросить у ребе...
...
Рейтинг: 0 / 0
Как скачать файл по ссылке без браузера
    #39906040
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как скачать файл по ссылке без браузера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]