Всероссийское Генеалогическое Древо

Генеалогический форум ВГД

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

Генеалогический форум ВГД »   Генеалогическое программное обеспечение »   FamilySearch. org »   Скачивание материалов с Familysearch.org
RSS

Скачивание материалов с Familysearch.org

Инструкции


<<Назад  Вперед>>[ <<<<< ] Страницы: 1 2 3 4 5 6 * 7 8 9 10 [ >>>>>> ]
coika
Долгожитель форума

coika

Москва
Сообщений: 954
Регистрация: 18 окт. 2013
Рейтинг: 531 


Mantikore написал:
[q]
Огромный плюс еще и в том, что скрипт можно легко модифицировать под ваши нужды. Например, указать правила именования фалов.
[/q]

:lol: Ну а это просто предел мечтаний!!! Где же Вы были раньше? :) Спасибо Вам :rose:
klower
Новичок



Сообщений: 8
Регистрация: 13 фев. 2013
Рейтинг: 6 

Расскажите как в вашем скрипте настроить папку загрузки, имя загружаемых файлов?

Mantikore
Почетный участник

Mantikore

Нижний Новгород
Сообщений: 131
Регистрация: 20 мая 2013
Рейтинг: 103 


klower написал:
[q]
Расскажите как в вашем скрипте настроить папку загрузки, имя загружаемых файлов?
[/q]

Смотрите. указать папку для загрузки в скрипте нельзя, поскольку из него нет доступа к файловой системе компьютера. Это фундаментальное свойство Javascript, обеспечивающее его безопасность. По этому все файлы загружаются в папку, указанную в настройках вашего браузера.

Как настроить имя..
Чтобы ответить на этот вопрос, вам, скорее всего, понадобятся знания javascript. Попробую объяснить максимально понятно.
За название файла в этом скрипте отвечает следующая строка:
[q]
l.download=document.getElementsByClassName('thumbnail-selection' )[0].title+" "+t.innerText.substring(t.innerText.lastIndexOf(")")+3,t.innerText.lastIndexOf(" image")).replace(/[\]\[>/|\"*?<]/gi,"")+".jpg";
[/q]

если мы напишем вместо этого
[q]
l.download="картинка.jpg";
[/q]
то файлы будут сохраняться с названиями "картинка.jpg", "картинка(1).jpg", "картинка(2).jpg" и т.д.
Нас этот вариант не очень устраивает. Нам нужно, чтобы в названии, как минимум, фигурировал номер снимка в выбранном каталоге.
Всю информацию о снимке можно найти на странице (если изучить ее исходный код).
Например, если вы наведете курсор на выбранный снимок, вы увидите всплывающую подсказку ("Изображение 4 из 9"). Эта подсказка содержится в свойстве title элемента с классом 'thumbnail-selection'. Ее получить очень просто:
вод такой код
[q]
l.download=document.getElementsByClassName('thumbnail-selection' )[0].title+".jpg";
[/q]
будет давать вашим файлам имена "Изображение 2 из 9.jpg", "Изображение 3 из 9.jpg" и т.д.
В принципе, на этом можно остановиться. Но зачем останавливаться, если мы таким же образом можем получить семантическую информацию о снимке (например, к какому населенному пункту он относится) и указать ее в названии? :)
На странице есть элемент, который содержит всю интересующую нас информацию:
если мы выполним в консоли такой код
[q]
document.getElementById('image-citation' ).innerText
[/q]
по получим примерно такой текст:
[q]
"Россия, Нижний Новгородская перепись подушного налога (ревизские сказки), 1782-1858," images, FamilySearch (https://familysearch.org/ark:/61903/3:1:3QSQ-G9ZP-999M-2?cc=2115663&wc=MFHH-DM4%3A1017292001%2C1017391001%2C1017426701%2C1017400701 : 21 May 2014), Нижний Новгород > Балахна > Ягодное лесное > image 4 of 9; State Regional Archive, Nizhni Novgorod, Volga.
[/q]
Все, что нам осталось, это вытащить из этой строки то, что нас интересует, избавившись от всего лишнего. Здесь большое пространство для самодеятельности, можете разобраться самостоятельно (смотрите в сети описание функций javascript substring, replace и т.д.).
В своем скрипте я делаю так: Выбираю из этой строки текст, начиная с последней скобки, и заканчивая словом " image"
[q]
t.innerText.substring(t.innerText.lastIndexOf(")")+3,t.innerText.lastIndexOf(" image"))
[/q]
получаю "Нижний Новгород > Балахна > Ягодное лесное >", затем удаляю из него все запрещенные символы
[q]
replace(/[\]\[>/|\"*?<]/gi,"")
[/q]
соединив 2 строки в одну и добавив ".jpg", получаем итоговое имя файла:
"Изображение 4 из 9 Нижний Новгород Балахна Ягодное лесное .jpg"

---
Семеновские, Введенские, Чистопольские, Шлюпневы, Поляковы (Нижегородская губерния)
klower
Новичок



Сообщений: 8
Регистрация: 13 фев. 2013
Рейтинг: 6 

Спасибо за подробный ответ!
Но у меня ничего не происходит.
Если при применении первого скрипта просто листаются страницы, в папке для загрузок по умолчанию ничего нет.
При вставке второго варианта вообще пишет - undefined и всё
Может быть что-то не так делаю.
Скопировал с вашего сообщения вставил в консоль
Браузер Firefox 52.0.1
Mihel
Участник

Mihel

Москва
Сообщений: 98
Регистрация: 28 нояб. 2011
Рейтинг: 65 

klower у меня в мазиле этот фокус тоже не работает... это видимо решение для гугель хрома... в нем все заработало.
И надо смотреть чтобы текст совпадал, если не очень аккуратно скопировать то иногда в начале или в конце текста при вставке появляются тэги [ q] или [ /q]
Изобретателю респект!

---
Ищу Спиридонова Лидия Ивановна, Леонид Спиридонов, Спиридонов Андрей Леонидович Салтыковка, Москва. Шелудякова Людмила Владимировна г.Муром, Матвеев Владимир Сергеевич г.Харьков, Матвеева Галина Тула. Фивейский Воронежская обл.
Mantikore
Почетный участник

Mantikore

Нижний Новгород
Сообщений: 131
Регистрация: 20 мая 2013
Рейтинг: 103 


klower написал:
[q]
Браузер Firefox 52.0.1
[/q]
Да, в Firefox я не тестировал.
Вот этот код будет работать в обоих браузерах:
[q]
var b=document.getElementsByClassName('next pager-icon fs-civ-circle-chevron-right enabled' )[0];
var l=document.createElement("a");var t=document.getElementById('image-citation' );var rn=true;
function d(){l.href=document.getElementById('printImage' ).src;l.download=document.getElementsByClassName('thumbnail-selection' )[0].title+(rn?(" "+t.innerHTML.substring(t.innerHTML.lastIndexOf(")")+3,t.innerHTML.lastIndexOf(" image")).replace(/[\]\[>/|\"*?<]|(&gt; )|(&lt; )/gi,"")):"")+".jpg";document.body.appendChild(l);l.click();document.body.removeChild(l);};
function e(e){if(e.fireEvent){e.fireEvent('onclick' );}else{var o=document.createEvent('Events' );o.initEvent('click',true,false);e.dispatchEvent(o);}};
function s(t){setTimeout(function(){d();e(b);rn=false;if(!document.getElementsByClassName('next pager-icon fs-civ-circle-chevron-right enabled disabled' )[0]){s(!t);}},4000)};
console.log = function(m){if(m.indexOf("GetImageData")>=0)rn=true;}
s(true);
[/q]

Небольшое дополнение. В предпоследней строке указан таймаут между операциями(4000 = 4 секунды).
Из-за низкой производительности сайта FamilySearch (либо вашего компьютера) может возникнуть ситуация, при которой свойство элемента 'image-citation' не успевает обновиться за этот промежуток времени. Из-за этого к названию файла может не подтянуться описание. Если вы это наблюдаете, или хотите обезопасить себя от таких ситуаций, просто увеличьте таймаут (10000 хватит наверняка, но, соответственно, скорость работы уменьшится)

---
Семеновские, Введенские, Чистопольские, Шлюпневы, Поляковы (Нижегородская губерния)
klower
Новичок



Сообщений: 8
Регистрация: 13 фев. 2013
Рейтинг: 6 

Огромное вам спасибо! Всё заработало!
Виктор_В
Новичок



Москва
Сообщений: 19
Регистрация: 29 янв. 2008
Рейтинг: 17 

Автокликер не очень удобен, решил попробовать скрипт,
Google Chrome Версия 58.0.3029.81 на двух разных компьютерах результат одинаковый
пробовал скачать:
https://familysearch.org/search/film/007439875?i=59&cc=1931806&cat=785139

Собственно процесс скачивания не стартует, открывается куча окон "Сохранение"
потом нужно кликать мышкой в кнопку "Сохранить"

Какие-то странные наименования файлов:
Изображение 1 из 936 .jpg
Изображение 2 из 936 .jpg
Изображение 3 из 936 .jpg
Изображение 4 из 936 .jpg
Изображение 5 из 936 .jpg
Изображение 6 из 936 image 474 of 563; государственных архивов Татарстан (Tatarstan National Archive, Kasan)..jpg
Изображение 7 из 936 image 475 of 563; государственных архивов Татарстан (Tatarstan National Archive, Kasan)..jpg
Изображение 8 из 936 image 476 of 563; государственных архивов Татарстан (Tatarstan National Archive, Kasan)..jpg
Изображение 9 из 936 image 477 of 563; государственных архивов Татарстан (Tatarstan National Archive, Kasan)..jpg
Изображение 10 из 936 image 478 of 563; государственных архивов Татарстан (Tatarstan National Archive, Kasan)..jpg
Изображение 11 из 936 image 479 of 563; государственных архивов Татарстан (Tatarstan National Archive, Kasan)..jpg
Tanta
Почетный участник

Tanta

Люберцы
Сообщений: 241
Регистрация: 11 янв. 2010
Рейтинг: 121 

Виктор_В, думаю проблема в том, что в настройках браузера про папку сохранения (по умолчанию -папка "загрузки") вас стоит галочка (не помню точно) что-то вроде "спрашивать каждый раз..." Уберите ее и будет скачиваться автоматически, без уточнения, в курсе ли вы, куда скачиваете. У меня было подобное.
П.с если Вы про вариант от Mantikore.

---
Кулаков, Кузьмин-Твер.обл, д.Дмитрово(Твер. уезд, приход с.Астраганец), д.Попово ныне Старицкого у.
Плешаков, Харламов, Лебедев, Непримеров - Волгогр.обл.//
Виктор_В
Новичок



Москва
Сообщений: 19
Регистрация: 29 янв. 2008
Рейтинг: 17 


Mantikore написал:
[q]
[/q]


Tanta написал:
[q]
[/q]


Спасибо!
<<Назад  Вперед>>[ <<<<< ] Страницы: 1 2 3 4 5 6 * 7 8 9 10 [ >>>>>> ]
Генеалогический форум ВГД »   Генеалогическое программное обеспечение »   FamilySearch. org »   Скачивание материалов с Familysearch.org
RSS