Войти

Показать полную графическую версию : [решено] получение PDF файлов с сайта


LAKERS824
29-06-2012, 08:49
Есть txt файл, в котором записаны в каждой строке 10-значные номера:
1111111111
2222222222
3333333333
................

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


https://site.ru/.....createPDFbyNumber.ashx?OrderNumber=xxxxxxxxxx

И результат сохранять в отдельную папку, причем название файла должно содержать название строки, по которой делался запрос.

LAKERS824
04-07-2012, 14:45
нет идей?

Anonymоus
04-07-2012, 15:04
Я правильно понимаю алгоритм?
1) Брать номера из файла
2) Посылать запрос
3) Сохранять полученный в ответ на запрос файл под именем, взятым ранее из строки
Если да, то это делается элементарно, с помощью wget и for. Не понятен только пункт про логин:пароль, где они указываются? В теле запроса, прямо в url?

LAKERS824
04-07-2012, 15:17
да именно так, логин-пароль указывается в url.
файл итоговый должен быть pdf.
Wget использую, но итоговый pdf файл получить не могу, сохраняет какую-то ерунду.

Во вложении скан запроса WGET.
В принципе файл сохраняется, но название его и расширение непонятные, если переименовывыю файл в 1.txt (во вложении), то он читается.

В итоге как я понимаю какая-то ошибка, и pdf не сохраняется.

Anonymоus
04-07-2012, 15:31
В 1.txt запрос на авторизацию, точнее, страница логина. Это значит, что либо указания пары логин:пароль недостаточно, и нужно использовать ещё cookie, например - либо тем ресурсом блокируется сам wget по каким-то причинам. Попробуйте повторить запрос с добавкой ключа -U "useragent", где подставьте какой-то валидный юзерагент, к примеру, от Firefox.

Если не повезет, всегда можно попробовать использовать aria2 (очень мощная консольная качалка, для пакетного многопоточного скачивания незаменима) - сначала генерировать для неё файл с командами, а затем пакетно сохранять полученные pdf-ки.

LAKERS824
04-07-2012, 15:38
вообще на этом сайте сказано по ftp надо логиниться через filezilla и параметр Encryption д.б. - explicit FTP over TSL, может в этом проблема?

Anonymоus
04-07-2012, 15:45
LAKERS824, попробуйте с помощью Aria2
Полный мануал на русском (aria2.sourceforge.net/manual/ru/html/aria2c.html)
Бинарник под Windows, x86 (http://sourceforge.net/projects/aria2/files/stable/aria2-1.15.1/aria2-1.15.1-x86_64-w64-mingw32-build1.zip/download)

LAKERS824
04-07-2012, 16:12
спасибо, буду тогда курить Aria2, раз wget не хочет.

LAKERS824
04-07-2012, 16:32
нет, опять почему-то не хочет, ссылается на сертификат, правда если в браузере набивают, там вроде никакого сертификата не надо.

Anonymоus
04-07-2012, 16:50
LAKERS824, вы недостаточно внимательно читали ман.
--check-certificate=false
Если оставить проверку включенной, то нужно указывать их хранилище, что на windows реализовать с помощью aria затруднительно.
Действие этого ключа равнозначно ключу --no-check-certificate у wget.

LAKERS824
04-07-2012, 17:01
после отключения проверки сертификата он мне все равно закачивает файл 'login.aspx', по содержанию такой же, как и при использовании WGET. :-(




© OSzone.net 2001-2012