Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 11:24   #1
Podkhvatilin
Новичок
Джуниор
 
Регистрация: 25.02.2011
Сообщений: 2
По умолчанию Загрузить файл на компьютер

Суть задачи: необходимо выгрузить файл из сети.
Захожу на сайт, авторизуюсь и ручками могу выгрузить нужные файлы, но так как их много, то хотелось бы это автоматизировать.
Используя код, который приведен ниже, могу выгрузить только тот файл который выгружал руками через ИЕ, если же изменить дату или имя файла в url, то не проходит авторизация(выгружается файл не с данными а с сообщением "пользователь не зарегистрирован")
Sub test()
Dim myURL As String
myURL = "http://.../файлик1.XLS?DAT=2007.09.18&LOGIN=&P ASSWORD="

Dim WinHttpReq, oStream As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False
WinHttpReq.Send

myURL = WinHttpReq.ResponseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.ResponseBody
oStream.SaveToFile ("D:\файлик.xls")
oStream.Close
End If
End Sub
Podkhvatilin вне форума Ответить с цитированием
Старый 25.02.2011, 12:04   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Есть много способов авторизоваться на сайте
Какие из них вы пробовали?

PS: Не имея ссылки на файл, и логина с паролем, вряд ли мы чем сможем вам помочь, - ибо любое решение надо тестировать, а без указанных данных это невозможно.

Либо создавайте учетную запись, и выкладывайте её здесь (вместе со ссылкой на файлы, которые требуется скачать), либо ищите примеры авторизации на форумах.
Вот одна из ссылок с примерами:
http://www.planetaexcel.ru/forum.php?thread_id=15673
EducatedFool вне форума Ответить с цитированием
Старый 25.02.2011, 12:14   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Как вариант.Устанавливаете программу Fiddler

И при помощи ее увидите,что браузер посылает на сайт при авторизации,что получает в ответ.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.02.2011, 14:59   #4
Podkhvatilin
Новичок
Джуниор
 
Регистрация: 25.02.2011
Сообщений: 2
По умолчанию

Логин и пароль увы нет ни какой возможности дать.
Fiddler установил.
Вот что Fiddler выдает
отправляется при логине:
Код:
POST /cgi_bin/effect_access.pl HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://10.248.0.29/main_new.shtml
Accept-Language: ru-RU
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; InfoPath.3; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: 10.248.0.29
Content-Length: 84
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: login=логин; password=пароль; office=new

login=логин&password=пароль&office=new&Submit=%CD%E0%E6%EC%E8%F2%E5+%E7%E4%E5%F1%FC
получает:
Код:
Server: Apache/2.0.52 (Red Hat)
Set-Cookie: login=логин; path=/
Set-Cookie: password=пароль; path=/
Set-Cookie: office=new; path=/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251

a5c
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>   ""</title>
	<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
	<meta http-equiv="expires" content="-1">
	<meta http-equiv="pragma" content="no-cache">
	<link rel="stylesheet" href="/css/effect_style.css" type="text/css">
	<!--META HTTP-EQUIV="Set-Cookie" CONTENT="login=логин;">
	<META HTTP-EQUIV="Set-Cookie" CONTENT="password=пароль;
	<META HTTP-EQUIV="Set-Cookie" CONTENT="office=new;"-->
</head>

<body id="demo">

а это если после авторизации напрямую ввести ссылку на файл

Код:
GET /effect/table/CO1TAB11.XLS?DAT=2007.02.23&LOGIN=&PASSWORD= HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ru-RU
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; InfoPath.3; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: 10.248.0.29
Cookie: login=логин; password=пароль; office=new
в ответ получаем
Код:
HTTP/1.1 200 OK
Date: Fri, 25 Feb 2011 11:52:07 GMT
Server: Apache/2.0.52 (Red Hat)
Pragma: no-cache
Content-Length: 324833
Connection: close
Content-Type: application/vnd.ms-excel

<?xml version="1.0" encoding="utf-8"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>романов</Author>
....
...
...
Podkhvatilin вне форума Ответить с цитированием
Старый 25.02.2011, 15:30   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
PS: Не имея ссылки на файл, и логина с паролем, вряд ли мы чем сможем вам помочь, - ибо любое решение надо тестировать, а без указанных данных это невозможно.
Значит руками.
Вы же в ответ получаете файл в виде XML.

PS: код в темную не пишу,могу только мизер в тёмную сыграть
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinInet загрузить файл во временной файл , использовать, потом удалить Человек_Борща Работа с сетью в Delphi 5 03.08.2010 13:46
загрузить файл за адресом c++ Builder Yokka C++ Builder 1 25.05.2010 08:01
Загрузить файл utf8! SkAndrew Общие вопросы Delphi 4 22.04.2010 17:43
Как загрузить файл? Suren Общие вопросы C/C++ 1 06.03.2010 21:47
Загрузить png файл MAcK Мультимедиа в Delphi 1 22.12.2008 22:23