Возникла потребность скачивать бесплатно эл.книги с сайта "Яндекс книги" их там дают по подписке но они мне нужны в виде файла .mobi .fb2 и т.п. Хотел написать парсер на питоне, чет не идет процесс. На сайте книга разбита по главам и каждая глава в отдельном html файле лежит во вкладке Network в DevTools. Как их от туда выудить? Я вообще не шарю, всё пишу с чатом гпт, он тож не шарит. Я уже написал код который все скачанные html преобразует в один, а потом конвертирует в .mobi, но автоматически качать не получается, только вручную, а там по 100глав в каждой книги
INACTIV_US_125, что ты имел ввиду? в каждой книге есть n'ное количество глав, я я так понял что html файлы с главами названы рандомным образом, а ему надо полностью автоматический парс, но сайт откуда то же берет все эти файлы с рандомными названиями, я полагаю что у каждой киниг есть свой UID, а сайт делает запрос на свое API где и будут ссылку на все эти главы по UID'у книги, я не знаю конкретного случая и не смотрел серую апишку яндекс книг но это как предположение)
Как скачать главы книг с сайта "Яндекс книги" Подготовка: Сначала убедитесь, что вы понимаете, как работает сайт и где находятся ссылки на главы. Используйте инструменты разработчика в браузере, чтобы посмотреть, какие ссылки загружаются для каждой главы. Получение ссылок на главы:Когда вы откроете страницу книги, посмотрите в разделе "Network" на заруженные запросы. Там вы найдете ссылки на главы, в основном они будут в формате HTML. Использование Python: Если ссылки на главы уже известны, можете использовать библиотеку requests, чтобы их скачать.Установите нужные библиотеки, если они не установлены: pip install requests beautifulsoup4 import requests from bs4 import BeautifulSoup # Введите ссылку на страницу книги book_url = "URL_ВАШЕЙ_КНИГИ" def get_chapter_urls(book_url): response = requests.get(book_url) soup = BeautifulSoup(response.text, 'html.parser') # Найдите ссылки на главы chapter_links = soup.find_all('a', class_='link_to_chapter') return [link.get('href') for link in chapter_links] def download_chapter(chapter_url): response = requests.get(chapter_url) return response.text def main(): chapter_urls = get_chapter_urls(book_url) full_text = "" for chapter_url in chapter_urls: chapter_text = download_chapter(chapter_url) full_text += chapter_text + "\n\n" # Сохраните текст в файл with open("book.txt", "w", encoding='utf-8') as f: f.write(full_text) if __name__ == "__main__": main() Код import requests from bs4 import BeautifulSoup # Введите ссылку на страницу книги book_url = "URL_ВАШЕЙ_КНИГИ" def get_chapter_urls(book_url): response = requests.get(book_url) soup = BeautifulSoup(response.text, 'html.parser') # Найдите ссылки на главы chapter_links = soup.find_all('a', class_='link_to_chapter') return [link.get('href') for link in chapter_links] def download_chapter(chapter_url): response = requests.get(chapter_url) return response.text def main(): chapter_urls = get_chapter_urls(book_url) full_text = "" for chapter_url in chapter_urls: chapter_text = download_chapter(chapter_url) full_text += chapter_text + "\n\n" # Сохраните текст в файл with open("book.txt", "w", encoding='utf-8') as f: f.write(full_text) if __name__ == "__main__": main()
snordon, было бы всё так просто, как минимум куки надо подгружать, без них тебе текст книги не дадут.
а у тебя получилось по итогу это сделать? Прост я тож пишу парсер с Яндекс Книг сейчас и тож столкнулся с этой проблемой, точнее я не понимаю как мне без подключения силениума реквестить переключение на страницы, дабы спарсить оттуда текст, вроде бы я нашел реквест запрос в том же Network, который перелистывает страницы, но там всё захардкожено и я не осознаю что делать(