Forums

IMDBPY not working

Hey, I'm trying to use imdbpy package in a simple program, as follows:

import imdb

dataBase = imdb.IMDb()
movies = dataBase.search_movie('endgame')
print(movies)

But when I run it via bash, I get a lot of errors. Can someone help? thanks.

Are you trying to run it as a script in a console? What errors do you get?

Yes, I've tried to run it via the command python3.7 try.py

Those are the errors: 2020-09-22 09:07:06,084 CRITICAL [imdbpy] /home/tsahiiii/.local/lib/python3.7/site-packages/imdb/_exceptions.py:34: IMDbDataAccessError exception raised; args: ({'errcode': None, 'er rmsg': 'None', 'url': 'https://www.imdb.com/find?q=endgame&s=tt', 'proxy': '', 'exception type': 'IOError', 'original exception': URLError(OSError('Tunnel connection failed: 403 Forb idden'))},); kwds: {} Traceback (most recent call last): File "/usr/lib/python3.7/urllib/request.py", line 1317, in do_open encode_chunked=req.has_header('Transfer-encoding')) File "/usr/lib/python3.7/http/client.py", line 1252, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1298, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1247, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output self.send(msg) File "/usr/lib/python3.7/http/client.py", line 966, in send self.connect() File "/usr/lib/python3.7/http/client.py", line 1414, in connect super().connect() File "/usr/lib/python3.7/http/client.py", line 942, in connect self._tunnel() File "/usr/lib/python3.7/http/client.py", line 921, in _tunnel message.strip())) OSError: Tunnel connection failed: 403 Forbidden During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/parser/http/init.py", line 219, in retrieve_unicode response = uopener.open(url) File "/usr/lib/python3.7/http/client.py", line 1298, in _send_request File "/usr/lib/python3.7/urllib/request.py", line 525, in open response = self._open(req, data) File "/usr/lib/python3.7/urllib/request.py", line 543, in _open '_open', req) File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain result = func(*args) File "/usr/lib/python3.7/urllib/request.py", line 1360, in https_open context=self._context, check_hostname=self._check_hostname) File "/usr/lib/python3.7/urllib/request.py", line 1319, in do_open raise URLError(err) urllib.error.URLError: <urlopen error Tunnel connection failed: 403 Forbidden> Traceback (most recent call last): File "/usr/lib/python3.7/urllib/request.py", line 1317, in do_open encode_chunked=req.has_header('Transfer-encoding')) File "/usr/lib/python3.7/http/client.py", line 1252, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1298, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1247, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output self.send(msg) File "/usr/lib/python3.7/http/client.py", line 966, in send self.connect() File "/usr/lib/python3.7/http/client.py", line 1414, in connect super().connect() File "/usr/lib/python3.7/http/client.py", line 942, in connect self._tunnel() File "/usr/lib/python3.7/http/client.py", line 921, in _tunnel message.strip())) OSError: Tunnel connection failed: 403 Forbidden

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/parser/http/init.py", line 219, in retrieve_unicode response = uopener.open(url) File "/usr/lib/python3.7/urllib/request.py", line 525, in open response = self._open(req, data) File "/usr/lib/python3.7/urllib/request.py", line 543, in _open '_open', req) File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain result = func(*args) File "/usr/lib/python3.7/urllib/request.py", line 1360, in https_open context=self._context, check_hostname=self._check_hostname) File "/usr/lib/python3.7/urllib/request.py", line 1319, in do_open raise URLError(err) urllib.error.URLError: <urlopen error Tunnel connection failed: 403 Forbidden>

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "try.py", line 5, in <module> movies = dataBase.search_movie('endgame') File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/init.py", line 425, in search_movie res = self._search_movie(title, results) File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/parser/http/init.py", line 405, in _search_movie cont = self._get_search_content('tt', title, results) File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/parser/http/init.py", line 393, in _get_search_content cont = self._retrieve(self.urls['find'] % params) File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/parser/http/init.py", line 376, in _retrieve ret = self.urlOpener.retrieve_unicode(url, size=size) File "/home/tsahiiii/.local/lib/python3.7/site-packages/imdb/parser/http/init.py", line 253, in retrieve_unicode 'original exception': e} imdb._exceptions.IMDbDataAccessError: {'errcode': None, 'errmsg': 'None', 'url': 'https://www.imdb.com/find?q=endgame&s=tt', 'proxy': '', 'exception type': 'IOError', 'original excep tion': URLError(OSError('Tunnel connection failed: 403 Forbidden'))}

This package tries to connect with www.imdb.com which is not on our whitelist (free accounts can connect only with whitelisted domains). The good news is imdb-api.com is whitelisted so you can use this endpoint to scrap IMDB data.

Thanks! Is there any list of whitelisted domains than can be used in the website?

Sure: https://www.pythonanywhere.com/whitelist/