maaaaz / webscreenshot

A simple script to screenshot a list of websites
GNU Lesser General Public License v3.0
653 stars 162 forks source link

Not working Truceback #71

Closed notchdesign closed 3 years ago

notchdesign commented 3 years ago

I am trying to take screenshot from my python app but most basic implementation is not working.

This is my code

    import requests
    from webscreenshot.webscreenshot import *
    from glob import glob
    import argparse

    url_list = ['http://google.com']

    # defining options manually
    options = argparse.Namespace(URL=None, ajax_max_timeouts='1400,1800', cookie=None, crop="5,20,w,h", format='png', header=None, http_password=None, http_username=None, imagemagick_binary=None, input_file=None, label=False, label_bg_color='NavajoWhite', label_size=60, log_level='NOTSET', multiprotocol=False, no_xserver=False, output_directory='screenshots', port=None, proxy=None, proxy_auth=None, proxy_type=None, quality=75, renderer='phantomjs', renderer_binary=None, ssl=False, timeout=30, verbosity=2, window_size='1200,800', workers=1)

    # actually launching the function
    take_screenshot(url_list, options)`

Exception happened during processing of request from ('127.0.0.1', 50097) multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "C:\Python38\lib\multiprocessing\pool.py", line 125, in worker result = (True, func(*args, **kwds)) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 469, in craft_cmd output_format, output_filename = craft_output_filename_and_format(url, options) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 446, in craft_output_filename_and_format if options.single_output_file: AttributeError: 'Namespace' object has no attribute 'single_output_file' """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug__init__.py", line 304, in debug_application app_iter = self.app(environ, start_response) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2464, in call return self.wsgi_app(environ, start_response) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2450, in wsgi_app response = self.handle_exception(e) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1867, in handle_exception reraise(exc_type, exc_value, tb) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask_compat.py", line 39, in reraise raise value File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask_compat.py", line 39, in reraise raise value File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request return self.view_functionsrule.endpoint File "D:\D-Fake News\Whatsapp Bot\app.py", line 73, in main take_screenshot(url_list, options) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 575, in take_screenshot taken_screenshots = [r for r in pool.imap(func=craft_cmd, iterable=izip(url_list, itertools.repeat(options)))] File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 575, in taken_screenshots = [r for r in pool.imap(func=craft_cmd, iterable=izip(url_list, itertools.repeat(options)))] File "C:\Python38\lib\multiprocessing\pool.py", line 868, in next raise value AttributeError: 'Namespace' object has no attribute 'single_output_file'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 323, in run_wsgi execute(self.server.app) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 314, in execute for data in application_iter: File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug__init__.py", line 312, in debug_application traceback = get_current_traceback( File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 202, in get_current_traceback tb.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 265, in filter_hidden_frames group.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 416, in filter_hidden_frames elif self.frames[-1] in new_frames: IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Python38\lib\socketserver.py", line 650, in process_request_thread self.finish_request(request, client_address) File "C:\Python38\lib\socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\Python38\lib\socketserver.py", line 720, in init self.handle() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 345, in handle BaseHTTPRequestHandler.handle(self) File "C:\Python38\lib\http\server.py", line 427, in handle self.handle_one_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 379, in handle_one_request return self.run_wsgi() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 331, in run_wsgi traceback = get_current_traceback(ignore_system_exceptions=True) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 202, in get_current_traceback tb.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 265, in filter_hidden_frames group.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 416, in filter_hidden_frames elif self.frames[-1] in new_frames: IndexError: list index out of range

[+] 1 URLs to be screenshot

Exception happened during processing of request from ('127.0.0.1', 50098) multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "C:\Python38\lib\multiprocessing\pool.py", line 125, in worker result = (True, func(*args, **kwds)) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 469, in craft_cmd output_format, output_filename = craft_output_filename_and_format(url, options) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 446, in craft_output_filename_and_format if options.single_output_file: AttributeError: 'Namespace' object has no attribute 'single_output_file' """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug__init__.py", line 304, in debug_application app_iter = self.app(environ, start_response) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2464, in call return self.wsgi_app(environ, start_response) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2450, in wsgi_app response = self.handle_exception(e) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1867, in handle_exception reraise(exc_type, exc_value, tb) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask_compat.py", line 39, in reraise raise value File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask_compat.py", line 39, in reraise raise value File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request return self.view_functionsrule.endpoint File "D:\D-Fake News\Whatsapp Bot\app.py", line 73, in main take_screenshot(url_list, options) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 575, in take_screenshot taken_screenshots = [r for r in pool.imap(func=craft_cmd, iterable=izip(url_list, itertools.repeat(options)))] File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 575, in taken_screenshots = [r for r in pool.imap(func=craft_cmd, iterable=izip(url_list, itertools.repeat(options)))] File "C:\Python38\lib\multiprocessing\pool.py", line 868, in next raise value AttributeError: 'Namespace' object has no attribute 'single_output_file'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 323, in run_wsgi execute(self.server.app) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 314, in execute for data in application_iter: File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug__init__.py", line 312, in debug_application traceback = get_current_traceback( File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 202, in get_current_traceback tb.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 265, in filter_hidden_frames group.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 416, in filter_hidden_frames elif self.frames[-1] in new_frames: IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Python38\lib\socketserver.py", line 650, in process_request_thread self.finish_request(request, client_address) File "C:\Python38\lib\socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\Python38\lib\socketserver.py", line 720, in init self.handle() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 345, in handle BaseHTTPRequestHandler.handle(self) File "C:\Python38\lib\http\server.py", line 427, in handle self.handle_one_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 379, in handle_one_request return self.run_wsgi() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 331, in run_wsgi traceback = get_current_traceback(ignore_system_exceptions=True) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 202, in get_current_traceback tb.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 265, in filter_hidden_frames group.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 416, in filter_hidden_frames elif self.frames[-1] in new_frames: IndexError: list index out of range

[+] 1 URLs to be screenshot

Exception happened during processing of request from ('127.0.0.1', 50101) multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "C:\Python38\lib\multiprocessing\pool.py", line 125, in worker result = (True, func(*args, **kwds)) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 469, in craft_cmd output_format, output_filename = craft_output_filename_and_format(url, options) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 446, in craft_output_filename_and_format if options.single_output_file: AttributeError: 'Namespace' object has no attribute 'single_output_file' """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug__init__.py", line 304, in debug_application app_iter = self.app(environ, start_response) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2464, in call return self.wsgi_app(environ, start_response) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2450, in wsgi_app response = self.handle_exception(e) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1867, in handle_exception reraise(exc_type, exc_value, tb) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask_compat.py", line 39, in reraise raise value File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask_compat.py", line 39, in reraise raise value File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request return self.view_functionsrule.endpoint File "D:\D-Fake News\Whatsapp Bot\app.py", line 73, in main take_screenshot(url_list, options) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 575, in take_screenshot taken_screenshots = [r for r in pool.imap(func=craft_cmd, iterable=izip(url_list, itertools.repeat(options)))] File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\webscreenshot\webscreenshot.py", line 575, in taken_screenshots = [r for r in pool.imap(func=craft_cmd, iterable=izip(url_list, itertools.repeat(options)))] File "C:\Python38\lib\multiprocessing\pool.py", line 868, in next raise value AttributeError: 'Namespace' object has no attribute 'single_output_file'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 323, in run_wsgi execute(self.server.app) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 314, in execute for data in application_iter: File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug__init__.py", line 312, in debug_application traceback = get_current_traceback( File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 202, in get_current_traceback tb.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 265, in filter_hidden_frames group.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 416, in filter_hidden_frames elif self.frames[-1] in new_frames: IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Python38\lib\socketserver.py", line 650, in process_request_thread self.finish_request(request, client_address) File "C:\Python38\lib\socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\Python38\lib\socketserver.py", line 720, in init self.handle() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 345, in handle BaseHTTPRequestHandler.handle(self) File "C:\Python38\lib\http\server.py", line 427, in handle self.handle_one_request() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 379, in handle_one_request return self.run_wsgi() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\serving.py", line 331, in run_wsgi traceback = get_current_traceback(ignore_system_exceptions=True) File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 202, in get_current_traceback tb.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 265, in filter_hidden_frames group.filter_hidden_frames() File "D:\D-Fake News\Whatsapp Bot\venv\lib\site-packages\werkzeug\debug\tbtools.py", line 416, in filter_hidden_frames elif self.frames[-1] in new_frames: IndexError: list index out of range


----------------------------------------
maaaaz commented 3 years ago

Hello,

Your options line code is obsolete and lacks some options (among single_output_file) to call webscreenshot, be sure to use this one https://github.com/maaaaz/webscreenshot/wiki/FAQ#calling-from-another-script that have all current options

options = argparse.Namespace(URL=None, ajax_max_timeouts='1400,1800', cookie=None, crop=None, custom_js=None, format='png', header=None, http_password=None, http_username=None, imagemagick_binary=None, input_file=None, label=False, label_bg_color='NavajoWhite', label_size=60, log_level='DEBUG', multiprotocol=False, no_error_file=False, no_xserver=False, output_directory='/tmp/screenshots', port=None, proxy=None, proxy_auth=None, proxy_type=None, quality=75, renderer='phantomjs', renderer_binary=None, single_output_file=None, ssl=False, timeout=30, verbosity=2, window_size='1200,800', workers=4)

Regards.

notchdesign commented 3 years ago

This issue is fixed now I am getting renderer binary could not have been found in your current PATH environment variable, exiting But we can close this issue now. I am checking for this bug in other issues. Meanwhile, my end goal is to take screenshots in heruko so if you know any workaround or have some content link that would be very helpful. Currently trying in windows.