@hitahi
Сори пока что Ламер

Как спарсить pdf файлы с сайта?

Все доброго, есть вопрос. Как спарсить pdf в моём случии книги с сайта - https://codernet.ru/media/
Желательно по шагово (новичок)
пробую на питоне, кто знает как
помогите плиз
зарание спасибо =)
  • Вопрос задан
  • 2071 просмотр
Решения вопроса 2
zkrvndm
@zkrvndm
Архитектор решений
Это делается элементарно, через консоль браузера. Зайдите на эту страницу:
https://codernet.ru/media

Нажмите, комбинацию CTRL + SHIFT + J и в открывшейся консоли введите:
// Получаем список всех ссылок со страницы:

links = document.querySelectorAll('a[href]');

// Перебираем найденные ссылки в цикле:

for (var n = 0; n < links.length; n++) {
	
	// Если ссылка ведет на текущий сайт (внутренняя):
	
	if (new URL(links[n].href)['host'] == location.host) {
		
		// Скачиваем html-код по этой ссылке:
		
		html = await (await fetch(links[n].href)).text();
		
		// Парсим этот html-код:
		
		doc = new DOMParser().parseFromString(html, 'text/html');
		
		// Ищем в спарсеном коде все pdf-ки:
		
		pdfs = doc.querySelectorAll('a[href$=".pdf"]');
		
		// Перебираем найденные pdf-ки в цикле:
		
		for (var i = 0; i < pdfs.length; i++) {
			
			// Выводим ссылку в консоли:
			console.log(pdfs[i].href);
			
		}
		
	}
	
}
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
Вообще говоря, в данном случае скачать совсем не проблема безо всяких скриптов, достаточно wget:

wget -r -np https://codernet.ru/media/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@alexbprofit
Junior SE
используй селениум для этой цели.
подсказка: искать нужные элементы можно через xpath
Ответ написан
@PavelMos
Если просто скачать файлы из директорий, то проще wget
Если именно спарсить и именно на питоне, то нужны модули requests и bs4 ( beautifulsoup, bs ) см инструкции к ним.

link='https://codernet.ru/media/'
r1=requests.get(link) #создаётся объект request с содержимым, полученным в ответ от сервера. Сам по себе он не текст странички 
r2=r1.content.decode('utf-8') #декодируется содержимое,  r2 это уже текст
soup1=bs.find_all ('a') #парсер beautifulsoup ищет все теги <a> где стоят ссылки

после этого посмотреть, какие ссылки - абсолютные или относительные, если относительные, добавить к ним вышестояющую часть пути и снова сделать реквест и уже по ссылкам получить имена файлов (относительные) и скачать те из них, что pdf

f1= open ('путь", 'wb')
r1 = requests.get('link1') 
f1.write(r1.content)  
f1.close()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы