🇺🇸 Национальный архив США начал публиковать рассекреченные документы по делу об убийстве

28 марта 2025 г.Russian OSINT
🇺🇸 Национальный архив США начал публиковать рассекреченные документы по делу об убийстве | 🔁 Новости из телеграм - Ghostbase News

🇺🇸 Национальный архив США начал публиковать рассекреченные документы по делу об убийстве Кеннеди.

👀 Попробуем в журналистику.

Допустим, что мы хотим ознакомиться с документами, которые лежат в открытом доступе.

Заходим на сайт. И видим => там больше 📄 2000 pdf файлов.

🎩 Так, что делать? Нажимать по одному файлу и скачивать? Слишком долго. А есть ли простое решение скачать всё и сразу?

В таких случаях вспоминается чудесная 🐍 Python-библиотека под названием BeautifulSoup. Не раз выручала, когда нужно было парсить новости, а RSS не цепляется.

😁 В терминале делал так:

python3 -m venv myenv

source myenv/bin/activate

pip install beautifulsoup4 requests

Создаём простенький файл 🐍 download_jfk_pdfs.py на питоне и вставляем:

import requests

from bs4 import BeautifulSoup

import os

import time

import urllib.parse

def download_pdfs(url, output_dir):

if not os.path.exists(output_dir):

    os.makedirs(output_dir)



response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')



pdf_links = []

for link in soup.find_all('a'):

    href = link.get('href')

    if href and href.endswith('.pdf'):

        pdf_links.append(href)



print(f"Найдено {len(pdf_links)} PDF-файлов")



for i, pdf_link in enumerate(pdf_links):

    if not pdf_link.startswith('http'):

        if pdf_link.startswith('/'):

            base_url = urllib.parse.urlparse(url).netloc

            pdf_link = f"https://{base_url}{pdf_link}"

        else:

            pdf_link = urllib.parse.urljoin(url, pdf_link)

    

    filename = os.path.join(output_dir, os.path.basename(pdf_link))

    print(f"Загрузка {i+1}/{len(pdf_links)}: {pdf_link}")

    

    try:

        pdf_response = requests.get(pdf_link)

        with open(filename, 'wb') as f:

            f.write(pdf_response.content)

        print(f"Сохранено в {filename}")

        time.sleep(2)  # задержка между запросами

    except Exception as e:

        print(f"Ошибка при загрузке {pdf_link}: {e}")

if name == "main":

download_pdfs("https://www.archives.gov/research/jfk/release-2025", "jfk_pdfs")

сохраняем. Простой вариант скачивания всех файлов по одному.

Далее запускаем в терминале:

python3 download_jfk_pdfs.py

🔎 Выкачиваем все PDF.

И есть ещё гораздо быстрый способ скачивания в несколько потоков. Сюда код не поместится, поэтому выложу 🐍 отдельным файлом. Рекомендую использовать именно его.

🧠 С удивлением обнаружил, что 26.03 первое место в lmarena в категории кодинг взял 🌐 Gemini-2.5-Pro. Сложно сказать насколько он хорош. В кодинге неплох Claude Sonnet 3.7. Если немного поиграться в prompt engineering, то новостные парсеры для сайтов пишет за пару минут. Удивительно, но 28.03 в категории кодинг 1 место занял 👩‍💻 ChatGPT-4o-latest после свежих обнов.

🖥 Потом можно объединить все файлы (+2000) и сделать 20-30 pdf файлов через какой-нибудь 📄 Acrobat в виртуалке. Распознавание текста с помощью OCR + сжатие. Закидываем в ИИ-модельки. Читаем, анализируем, при необходимости задаём ИИ вопросы.

*Рекомендуется проводить тесты в 🗳 виртуальной среде.

✋ @Russian_OSINT