Jestem początkującym użytkownikiem Pythona i Pycurla dla celów testowania stresu na stronie internetowej. Jednak pycurl nadal drukuje zwracany html w terminalu, co sprawia, że testowanie warunków skrajnych zajmuje jeszcze więcej czasu niż powinno. Jeden taki kod pycurl, którego używam, został zamieszczony poniżej. Czy istnieje sposób, aby po prostu uruchomić pycurl bez konieczności drukowania lub zapisu wyników w dowolnym miejscu? Każda pomoc zostanie doceniona.Pycurl kontynuuje drukowanie na terminalu
Odpowiedz
Dokumentacja Pycurl jest okropna, ale myślę, że chcesz ustawić WRITEFUNCTION na funkcję, która nic nie robi, np.
p.setopt(pycurl.WRITEFUNCTION, lambda x: None)
Ponadto, chciałbym podać do wiadomości, że uważam, że API "ZESTAW robi wszystko" wyszło z VMS. Gaaah.
Czy można tego spróbować?
devnull = open('/dev/null', 'w')
p.setopt(pycurl.WRITEFUNCTION, devnull.write)
lub po prostu funkcja, która nie robi nic.
Nie miałem szczęścia w obu metodach wymienionych tutaj. Obie prowadzą do następującego błędu:
pycurl.error: (23, 'Failed writing body (0 != 108)')
Według dokumentacji zarówno lambda x: None
i devnull.write
powinny być dobre opcje:
The WRITEFUNCTION callback may return the number of bytes written. If this number is not equal to the size of the byte string, this signifies an error and libcurl will abort the request. Returning None is an alternate way of indicating that the callback has consumed all of the string passed to it and, hence, succeeded.
http://pycurl.sourceforge.net/doc/callbacks.html#WRITEFUNCTION
w moim projekcie miałem jednak wykonać następujące czynności, aby rozwiązać ten problem:
c.setopt(pycurl.WRITEFUNCTION, lambda bytes: len(bytes))
Innymi słowy, nie było opcjonalne zwracanie liczby bajtów zapisanych, gdy patrzyłem. devnull.write
faktycznie zwraca liczbę zapisanych bajtów, ale nie patrzyłem na to. Być może jest jakiś problem z bajtami vs łańcuchami.
Zauważ, że używam Python 3. Zgaduję ten nie ma zastosowania w Pythonie 2.
Aby ukryć wyjście, zmień VERBOSE 0:
p.setopt(pycurl.VERBOSE, 0)
- 1. Drukowanie kolorów w terminalu Pythona
- 2. Instalacja pycurl na Windows
- 3. Drukowanie na terminalu podczas buforowania wyjściowego w skryptach CLI PHP
- 4. Konwertuj przykład curl na pycurl
- 5. Problemy instalowania pycurl na python2.7.0 +
- 6. pycurl and SSL cert
- 7. Błąd na terminalu rozpocznie
- 8. Dokumentacja Java na Terminalu
- 9. onUtwórz przepływ kontynuuje po zakończeniu()
- 10. przy użyciu scp na terminalu
- 11. winy segmentacji na terminalu pseudo
- 12. Wpisz zerowy znak na terminalu
- 13. iTerm2 drukowanie znaku pustego
- 14. zalogowaniu i przy użyciu ciasteczek w pycurl
- 15. Uzyskiwanie kodu HTML za pomocą Pycurl
- 16. Drukowanie wersji Pythona na wyjściu
- 17. Drukowanie Firemonkey na Mac OSX
- 18. pycurl/curl nie następuje po opcji CURLOPT_TIMEOUT
- 19. Jakie są dobre samouczki do nauki pycURL?
- 20. Zgłasza wyjątek, ale kontynuuje śledzenie stosu.
- 21. Dynamiczne drukowanie terminali z pytonem
- 22. coreservicesd/lssave kontynuuje pisanie co 30s
- 23. XCode 4.6 kontynuuje pobieranie Doc Set
- 24. AuthorizeAttribute kontynuuje przekierowanie do/Konto/Login
- 25. Czy mogę coś przekazać na terminalu Mac'a
- 26. Jak uruchomić adb na terminalu Mac?
- 27. Jak wydrukować wszystkie wyjątki Java na terminalu?
- 28. Emacs: wyłącz kolor tła motywu na terminalu
- 29. Wyświetlaj bieżącą ścieżkę tylko na terminalu.
- 30. Tilde nie jest rozpoznawany na terminalu Mac
To działało. Dziękuję: D – jyim89
'Dokumentacja Pycurl jest okropna" - tak prawdziwa – ddnomad