Closed muniv11111 closed 3 years ago
To nevypadá hezky :(
Nemám teď rychle po ruce žádné Win k testu, ale zkusil jsem přesunout věci v main v hlavním skriptu pod __main__
check a vystřelil verzi 1.5.2. Zkus na ní updatovat (pip3 install --upgrade ulozto-downloader
) a ozkoušej to prosím znovu.
Pokud to nepomůže, tak si na to zkusím najít čas během týdne a zkusím to zreplikovat na nějakých Windows.
[7;0H[K[34m[Part 1][0m Waiting for CAPTCHA...[8;0H[K[34m[Part 2][0m Waiting for CAPTCHA...[9;0H[K[34m[Part 3][0m Waiting for CAPTCHA...[10;0H[K[34m[Part 4][0m Waiting for CAPTCHA...Traceback (most recent call last):
File "<string>", line 1, in <module>
File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 126, in _main
self = reduction.pickle.load(from_parent)
AttributeError: 'Downloader' object has no attribute '__captcha_breaker'
`
někde něco nesedí...
No, Downloader
má určitě metodu __captcha_breaker
, ale tohle bude nějaká specialita Multiprocessing. Zkusím na to přijít.
Jinak já mám svou verzi co jsem nějak vyladil v srpnu, funguje i na pornfile a je v jednom py scriptu jak to bylo puvodně.. která používá k řešení captcha webovou aplikaci z herokuapp.. ale ta je asi tajná.. :-) jen jsem na ni přišel v tom srpnu bo to tu někdo zminoval a fiddler na sledování sitoveho provozu mi pomohl ji najít.. už presně nevím jak sem ji objevil a kdo ji provozuje na tom herokuapp.. ale vyhoda je že mi funguje bez tensorflow na serveru bez X... ten tflite co potrebuje tvoje verze k auto-captcha to je další problém co mi nejde na win amd x64 naistalovat.. furt píše neco toto whl není na teto platformě podporováno.. přitom architektura i verze pythonu by měla být srpávná.. takže moje haluz verze je zatím jediné co mi jede na win i na serveru bez X.. ach jo ty windows..
Tak asi jsem přišel na řešení:
https://stackoverflow.com/questions/517970/how-to-clear-the-interpreter-console V kódu je os.system("clear"), to funguje na linuxu. Na windowsu je cls.
Dále, jak to padá na chybějící attribut __captcha_breaker. Stačilo opravit to na jedno podtržítko. Prefix dvou podtržítek používá python pro nějaké své interní věci, jedno podtržítko se má používat na "privátní" metody atd.
Nakonec, první chybu lze vyřešit nějakým hackem ze SO. ulozto-downloader nemá definovanou main metodu, tak jsem ji vytvořil a nechal ji volat z if name == "main" bloku, a funguje.
Vypadá to, že to funguje, vytvořím PR.
File "ulozto-downloader", line 47, in
tak nevím mne to pořád nejede, na začátku to hodilo tohle, pak to sice po minutě chce pokažré třikrát zadat captcha, ale nesputí se ani jedno stahování, už to běží asi 10 minut... jedu teda bez tensorflow bo ten mi proste nejde z neznámých duvodu na win naistalovat.. na linux to šlo bez problémů..
tohle vyskočilo po násilném ukončení:
Traceback (most recent call last): File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\process.py", line 315, in _bootstrap self.run() File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\process.py", line 108, in run self._target(*self._args, **self._kwargs) File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\site-packages\ulozto_downloader\downloader.py", line 58, in _captcha_breaker page.get_captcha_download_link( File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\site-packages\ulozto_downloader\page.py", line 111, in get_captcha_download_link captcha_answer = captcha_solve_func(captcha_image, print_func=print_func) File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\site-packages\ulozto_downloader\captcha.py", line 44, in tkinter_user_prompt root.mainloop() # Wait for user input File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\tkinter__init__.py", line 1420, in mainloop self.tk.mainloop(n) KeyboardInterrupt [12;0H[?25hTerminating download. Please wait for stopping all processes. Download terminated. Program terminated.
@muniv11111 U mě to jede, zkusil jsem to na verzi Python 3.6.8.
Zkoušíš správnou verzi (není to zamergované)? Zkusil jsi vytvořit nový environment? Máš 64-bit windows? Co má za problém ten Tensorflow Lite Interpreter při instalaci? Máš chybovou hlášku?
Tak dodám, že na Pythonu 3.8 jsem to teď zkusil, a píše mi to tu samou chybu :-(
ten tensorflow hází: .whl is not supported wheel on this platform.. mám Quad-core AMD Ryzen 5 r5-3550h processor Windows 10 64-bit.. nevím jsem z toho jelen.. dával jsem tohle istalovat: https://github.com/google-coral/pycoral/releases/download/release-frogfish/tflite_runtime-2.5.0-cp38-cp38-win_amd64.whl
a nevadí třeba v něčem že mám ten python 3.8 jako 32 bit aplikaci??? python mám jen jako velmi okrajovou zábavu a nevím proč ho mám v 32bit verzi, a všiml jsem si to až ted když vidím ty chybové logy..
@muniv11111 Aby ti jelo tensorflow, tak potřebuješ mít Python 64-bitů myslím.
@muniv11111 Mohl bys to zkusit na Pythonu 3.6? Toto bude na dlouho.
Je tam asi problém s picklením při startování procesu. Bohužel nevidím teď jednoduchý způsob, jak toto vyřešit.
Tak problém spočíval v picklení funkcí při vytváření procesů, na verzi 3.8 windows s tím je z nějakého důvodu problém. Změnil jsem některé funkce, co nepotřebovaly self, na static, a vyřešilo se to tím.
@Koticka Na to self jsem dokonce koukal než jsem sem hodil issue, že to v té mé haluz verzi co jede nemám.. ale nevěděl jsem už cos s tím dál... :-) otestuju co nejdřív a dám vědět...
takže super - vypadá že ta static @Koticka metoda na 3.8 fachá jak bez tensorflow na python 3.8 32 bit tak i s tensorflow na python 3.8 64bitové verzi s auto-captcha
edit: ale asi to ještě nebude uplně to pravé ořechové - zkoušel jsem tu vzorovou auto-captcha 15 parts debian-9.6.0-amd64-netinst.iso, stáhli se kompletně 4 části a celé se to kouslo...
jinak ale mne ten tensorflow zas tak netrápí.. jde mi hlavně o provoz na serveru bez X, a tam jsem s tím taky v koncích něco doinstalovávat nebo kompilovat aby to tam běželo bez nějakého tkinter tensorflow. atd .. jediné řešení tam zatím mám to herokuapp louskání captcha ..
jinak tam používám ještě pyload na 2.7 na uloz.to to je taky alternativa... ale nepodporuje zřejme více paralelních stahování.. zkusím to autorovi navrhnout... :-) vím že ted dělají nějakou novou verzi pyLoad Next co už běží na 3.6+, která je snad v nějaké aplha verzi.. ale ještě jsme ji nekoumal co mí..
@muniv11111 Díky. Něco jsem tam ještě upravil, možná to pomůže. Mohl bys to otestovat u sebe? U mě na windowsu to jede.
@Koticka supr jede - jak bez tensorflow na python 3.8 32 bit tak i s tensorflow na python 3.8 64bitové verzi s auto-captcha zkoušeno opět na 15 parts debian-9.6.0-amd64-netinst.iso, staženo cca za 5 minut takže cca třikrát rychleji než obvykle a to je ted špička doma.. :-)
Zdravim, tak bohuzial u mna stale ta ista chyba. Mam najnovsiu verziu ulozto-downloadera, skusal som aj upgrade podla prikazu pip3 install --upgrade ulozto-downloaderpip3 install --upgrade ulozto-downloader
.
Ficim na macOS s pythonom 3.8.5.
`% ulozto-downloader --output /Volumes/moje\ data/Walovi\ filky --auto-captcha https://pornfile.cz/file/ncxjrSfhn/romky-a-jejich-videa-47-mp4
Starting downloading for url 'https://pornfile.cz/file/ncxjrSfhn/romky-a-jejich-videa-47-mp4'
Getting info (filename, filesize, ...)
CAPTCHA protected download - CAPTCHA challenges will be displayed
[ignored] torpy.documents.network_status.FetchDescriptorError: Can't fetch descriptor from http://95.211.118.194:7003/tor/server/fp/49FE0485D1D958CE0024D06AA4CB99E84A6DAD22 [CAPTCHA solve] CAPTCHA auto solved as 'atgz' File: Romky a jejich videa (47).mp4 URL: https://pornfile.cz/file/ncxjrSfhn/romky-a-jejich-videa-47-mp4 Download type: CAPTCHA protected download Total size: 565.3MB Parts: 10 x 56.53MB
[Part 1] Waiting for CAPTCHA...
[Part 2] Waiting for CAPTCHA...
[Part 3] Waiting for CAPTCHA...
[Part 4] Waiting for CAPTCHA...
[Part 5] Waiting for CAPTCHA...
[Part 6] Waiting for CAPTCHA...
[Part 7] Waiting for CAPTCHA...
[Part 8] Waiting for CAPTCHA...
[Part 9] Waiting for CAPTCHA...
[Part 10] Waiting for CAPTCHA...Traceback (most recent call last):
File "/Users/Martin/.pyenv/versions/3.8.5/bin/ulozto-downloader", line 48, in
`
Já mám podobnou chybu a taky z macOS:
Size / parts: 1850.78MB => 10 x 185.08MB
[Part 0] Waiting for CAPTCHA...
[Part 1] Waiting for CAPTCHA...
[Part 2] Waiting for CAPTCHA...
[Part 3] Waiting for CAPTCHA...
[Part 4] Waiting for CAPTCHA...
[Part 5] Waiting for CAPTCHA...
[Part 6] Waiting for CAPTCHA...
[Part 7] Waiting for CAPTCHA...
[Part 8] Waiting for CAPTCHA...
[Part 9] Waiting for CAPTCHA...Traceback (most recent call last):
File "/usr/local/bin/ulozto-downloader", line 8, in <module>
[Progress] 0.00 MB (0.00 %) avg. speed: 0.00 MB/s curr. speed: 0.00 MB/s remaining: 0:00:00
File "/usr/local/lib/python3.9/site-packages/uldlib/cmd.py", line 44, in run
d.download(args.url, args.parts, args.output)
File "/usr/local/lib/python3.9/site-packages/uldlib/downloader.py", line 306, in download
self.captcha_process.start()
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 32, in __init__
super().__init__(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_fork.py", line 19, in __init__
self._launch(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
TypeError: cannot pickle 'weakref' object
Python 3.9.6
asi bude potřeba udělat něco takového, ale jsem na to slabý.. :-)
viz.: https://stackoverflow.com/questions/60266256/how-to-fix-multiprocessing-problems-in-python-in-windows10