Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Скачать страницы с сайта SilverLight


Автор: Suppir 15.8.2014, 20:11
Добрый день!

Есть такая книжка, доступная онлайн через SilverLight. 

Первая страница:
http://www.prlib.ru/elfapps/RecordViewer/default.aspx?orderdate=15.08.2014&DocUNC_ID=34660&Token=1iklK6WcVSst5UUeUX3Z3g==&lang=ru-RU#0

Последняя страница:
http://www.prlib.ru/elfapps/RecordViewer/default.aspx?orderdate=15.08.2014&DocUNC_ID=34660&Token=1iklK6WcVSst5UUeUX3Z3g==&lang=ru-RU#659

Подскажите, как можно скачать все страницы на диск?

Автор: Bulat 17.8.2014, 18:02
Suppir, таки я не понял - прямая ссылка на контент есть??

Автор: Suppir 18.8.2014, 10:04
Я не вижу ссылки. Но, по идее, там есть какие-то перенаправление на ссылку с реальным контентом.

Нашел вот такое обсуждение:
http://shadow-ru.livejournal.com/51782.html?thread=130630

там в комментариях есть прикрепленный скрипт. Но разобраться, как он работает, не получилось :(

Добавлено через 2 минуты и 51 секунду
Вот еще похожее обсуждение:
http://forum.ru-board.com/topic.cgi?forum=55&topic=10609

Автор: Bulat 18.8.2014, 16:31
Цитата(Suppir @  18.8.2014,  10:04 Найти цитируемый пост)
там в комментариях есть прикрепленный скрипт. Но разобраться, как он работает, не получилось

И как скачать этот скрипт?? Я акромя названия ничего не вижу...

Автор: Suppir 18.8.2014, 17:21
Вот скрипт, но я не понял, как он работает:


Код

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
#!/usr/local/bin/perl -w

###############################################
# NLR Flash Map Ripper v0.1a
###############################################

use strict;

my $header_size = 19;
my $header_unpack_template = 'A3 x L S x7 S';

##################################################################
#
##################################################################

my $filename = shift;

my $header = "";
my @page_offset_array = ();
my @page_size_array = ();

open(NLR_DATA, "$filename") or die "$!";
binmode NLR_DATA;
read(NLR_DATA, $header, $header_size, 0);

my ($sig,
    $filesize,
    $book_page_quantity,
    $xml_data_size) = unpack ($header_unpack_template, $header);
    
my $part_first_page_number = 1;
my $part_page_quantity = $book_page_quantity;

print "Signature: $sig\n";

unless ($sig eq 'NLR'){
  print "Error: Invalid signature!\n";
  close NLR_DATA;
  exit(1);
}

print "File size: $filesize bytes\n";
print "Book Page Quantity: $book_page_quantity\n";
#print "Part First Page Number: $part_first_page_number\n";
#print "Part Page Quantity: $part_page_quantity\n";
print "XML Date Size: $xml_data_size bytes\n\n";

seek(NLR_DATA, $xml_data_size, 1);

my $i = 0;

while ($i < $part_page_quantity){
  my $temp = "";

  read(NLR_DATA, $temp, 4);
  #  print $page_offset_array[$i] = unpack("l", $temp), "|";
  $page_offset_array[$i] = unpack("l", $temp);

  read(NLR_DATA, $temp, 4);
  #  print $page_size_array[$i] = unpack("l", $temp), "\n";
  $page_size_array[$i] = unpack("l", $temp);

  $i++;
}

$i = 0;

while ($i < $part_page_quantity){
  my $temp = "";

  seek(NLR_DATA, $page_offset_array[$i], 0);
  read(NLR_DATA, $temp, $page_size_array[$i]);

  my $filename = "dump/page".sprintf("%04d", $part_first_page_number+$i).".swf";

  open(OUT, ">$filename") or die "$!";
  binmode OUT;
#  print OUT 'CWS'.$temp;
  print OUT $temp;
  close OUT;

  $i++;
}

close NLR_DATA;


Добавлено через 52 секунды
И вот еще:
http://lpaste.net/41896/title

Там в комментариях ссылка на скрипт была. 

Автор: Bulat 18.8.2014, 17:35
Цитата(Suppir @  18.8.2014,  17:21 Найти цитируемый пост)
Вот скрипт, но я не понял, как он работает:

А что конкретно не понятно?? Вроде как более или менее... Есть файл для тестов??

Автор: arto 18.8.2014, 23:50
качаете .xap и декомпилите его: http://www.itwriting.com/blog/3097-decompiling-silverlight.html

Автор: Suppir 19.8.2014, 08:17
Цитата(Bulat @ 18.8.2014,  17:35)
Цитата(Suppir @  18.8.2014,  17:21 Найти цитируемый пост)
Вот скрипт, но я не понял, как он работает:

А что конкретно не понятно?? Вроде как более или менее... Есть файл для тестов??


Вот файл для тестов

Первая страница:
http://www.prlib.ru/elfapps/RecordViewer/d...mp;lang=ru-RU#0
Последняя страница:
http://www.prlib.ru/elfapps/RecordViewer/d...;lang=ru-RU#659

Нужно скачать все страницы от 0 до 659. 

Автор: Bulat 19.8.2014, 16:37
Цитата(Suppir @  19.8.2014,  08:17 Найти цитируемый пост)
http://www.prlib.ru/elfapps/RecordViewer/d...mp;lang=ru-RU#0
Последняя страница:
http://www.prlib.ru/elfapps/RecordViewer/d...;lang=ru-RU#659

Эээ... то что он мне бед реквест выдает - это нормально??

Автор: Suppir 23.8.2014, 18:33
Откройте по ссылкам, которые в самом первом посте - там все открывается. 

Автор: Bulat 24.8.2014, 19:08
Цитата(Suppir @  23.8.2014,  18:33 Найти цитируемый пост)
Откройте по ссылкам, которые в самом первом посте - там все открывается.  


Цитата

Для работы необходимо установить Silverlight компонент от компании Microsoft версии 2.0 


А у меня на ноуте Ubuntu - думаешь Silverlight проинсталлируется?? 

Автор: tishaishii 12.9.2018, 21:04
Гуглите по теме "webdriver". Проще всего использовать с помощью Python v3x.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)