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

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

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

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

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

Инструкции


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

coika

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


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

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



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

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

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

Mantikore

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


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

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

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

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

Mantikore

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


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
Рейтинг: 125 

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

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



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


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


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


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