Answer the question
In order to leave comments, you need to log in
How to parse pdf files from a website?
All the best, I have a question. How to parse pdf in my case of a book from the site - https://codernet.ru/media/
Preferably step by step (beginner)
I try on python, who knows how to
help pliz
thanks in advance =)
Answer the question
In order to leave comments, you need to log in
This is done elementarily, through the browser console. Go to this page:
https://codernet.ru/media
Press the combination CTRL + SHIFT + J and in the console that opens, enter:
// Получаем список всех ссылок со страницы:
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);
}
}
}
use selenium for this purpose.
hint: you can search for the desired elements through xpath
If you just download files from directories, then wget is easier.
If you parse and it is in python, then you need the requests and bs4 modules ( beautifulsoup, bs ) see the instructions for them.
link='https://codernet.ru/media/'
r1=requests.get(link) #создаётся объект request с содержимым, полученным в ответ от сервера. Сам по себе он не текст странички
r2=r1.content.decode('utf-8') #декодируется содержимое, r2 это уже текст
soup1=bs.find_all ('a') #парсер beautifulsoup ищет все теги <a> где стоят ссылки
f1= open ('путь", 'wb')
r1 = requests.get('link1')
f1.write(r1.content)
f1.close()
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question