This script is designed to download PDF manuals from wdhmedia websites. It can be run on any operating system that supports Python, maybe.
This is not the most correct or fastest way to download PDFs, but it works.
Tested with python 3.10 and Poetry.
- [bg] България - https://www.ръководства.bg
- [cs] Česká republika - https://www.manualypdf.cz
- [da] Danmark - https://www.pdfmanualer.dk
- [de] Deutschland - https://www.bedienungsanleitu.ng
- [el] Ελλάδα - https://www.οδηγοσ-χρησησ.gr
- [en-us] England - https://www.manua.ls
- [en-in] India - https://www.manualpdf.in
- [en-au] England - https://www.usermanuals.au
- [en-ca] Canada - https://www.manuals.ca
- [en-gb] Great Britain - https://www.manuals.co.uk
- [en-nz] New Zealand - https://www.manual.nz
- [es-ar] Argentina - https://www.manual.ar
- [es-bo] Bolivia - https://www.manual.bo
- [es-cl] Chile - https://www.manualpdf.cl
- [es-co] Colombia - https://www.manuales.com.co
- [es-cr] Costa Rica - https://www.manual.cr
- [es-do] República Dominicana - https://www.manual.do
- [es-ec] Ecuador - https://www.manual.ec
- [es-es] España - https://www.manualpdf.es
- [es-gt] Guatemala - https://www.manual.gt
- [es-hn] Honduras - https://www.manual.hn
- [es-mx] México - https://www.manuales.mx
- [es-pa] Panamá - https://www.manual.pa
- [es-pe] Perú - https://www.manual.pe
- [es-sv] El Salvador - https://www.manual.sv
- [es-ve] Venezuela - https://www.manual.com.ve
- [et] Eesti - https://www.juhend.ee
- [fi] Suomi - https://www.kayttooh.je
- [fr] France - https://www.modesdemploi.fr
- [he-il] ישראל - https://www.manualpdf.co.il
- [hi-in] भारत - https://www.नियमावली.संगठन
- [hr] Hrvatska - https://www.prirucnici.hr
- [hu] Magyarország - https://www.hasznalati-utasitasok.hu
- [id] Indonesia - https://www.petunjuk.co.id
- [it] Italia - https://www.manualeduso.it
- [ka] საქართველო - https://www.manualpdf.ge
- [kk] Қазақстан - https://www.нұсқаулық.қаз
- [ko] 한국 - https://www.매뉴얼.한국
- [lt] Lietuva - https://www.vadovaspdf.lt
- [lv] Latvija - https://www.rokasgramataspdf.lv
- [mk] Македонија - https://www.прирачник.мкд
- [nl] Nederland - https://www.handleidi.ng
- [no] Norge - https://www.bruksanvisningpdf.no
- [pl] Polska - https://www.instrukcjaobslugipdf.pl
- [pt-pt] Portugal - https://www.manualpdf.pt
- [pt-br] Brasil - https://www.manualpdf.com.br
- [ro] România - https://www.manualdeinstructiuni.ro
- [ro-md] Macedonia de Nord - https://www.manual.md
- [ru] Россия - https://www.manualspdf.ru
- [sk] Slovensko - https://www.prirucky.sk
- [sl] Slovenija - https://www.prirocnikpdf.si
- [sq] Shqipëri - https://www.udhezimet.al
- [sr] Србија - https://www.uputstvo.rs
- [sv] Sverige - https://www.bruksanvisni.ng
- [tr] Türkiye - https://www.kullanimkilavuzu.com.tr
- [uk] Український - https://www.інструкціїкористувача.com.ua
- [uz] O'zbekiston - https://www.qollanmalar.uz
- [vi] Việt Nam - https://www.huang-dan.vn
poetry install
❯ poetry run python main.py
? Enter Manual PDF url: https://www.manualpdf.es/ikea/renodlad/manual
Manual Ikea RENODLAD with 28 pages
? Continue downloading file? Yes
100% (28 of 28) |############################################| Elapsed Time: 0:00:00 Time: 0:00:00
? ¿All ok? Delete temp folder? Yes
The downloaded PDF manuals will be saved in the output
folder.
pdf_manual_downloader
is licensed under the GNU General Public License version 3.0.
Hello, I tried to follow every hint i could find but i keep getting errors onl ine 233. Please can you help me?
As far as i know i did exactly what @sylven said aswlel.
############################
ralph@ubuntu:~/Desktop/manuals$ poetry run python main.py
? Enter Manual PDF url: https://www.manua.ls/toyota/paseo-1992/manual
User manual Toyota Paseo (1992) with 1061 pages
? Continue downloading file? Yes
? ¿Landscape? Yes
? ¿Multiprocessing? No
0% (1 of 1061) | | Elapsed Time: 0:00:07 ETA: 2:14:57
Traceback (most recent call last):
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request
response = conn.getresponse()
^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connection.py", line 464, in getresponse
httplib_response = super().getresponse()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
response.begin()
File "/usr/lib/python3.12/http/client.py", line 331, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 300, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/util/retry.py", line 474, in increment
raise reraise(type(error), error, _stacktrace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/util/util.py", line 38, in reraise
raise value.with_traceback(tb)
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request
response = conn.getresponse()
^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/urllib3/connection.py", line 464, in getresponse
httplib_response = super().getresponse()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
response.begin()
File "/usr/lib/python3.12/http/client.py", line 331, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/http/client.py", line 300, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ralph/Desktop/manuals/main.py", line 223, in
generate_page(file_id, page, get_html_page(file_id, page),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/Desktop/manuals/main.py", line 70, in get_html_page
content = requests.get(f"{url_page}page-{p}.page").text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ralph/.cache/pypoetry/virtualenvs/pdf-manual-downloader-OBDX_1Vg-py3.12/lib/python3.12/site-packages/requests/adapters.py", line 682, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))