Search code examples
pythonjupyter-notebookjupyterjupyter-labopensuse

GetOldTweets3 - An error occured during an HTTP request: HTTP Error 404: Not Found


Hi I'm on openSuse and when I try scraping tweets based on username it shows me "An error occurred during an HTTP request: HTTP Error 404: Not Found. Try to open in browser: https://twitter.com/search?q=%20from%3Agoogle&src=typd "

The link given is directing me to the website which is not a 404.

My code is:

import GetOldTweets3 as got
import pandas as pd

username = 'google'
count = '10'

tweetCriteria = got.manager.TweetCriteria().setUsername(username).setMaxTweets(count)

tweets = got.manager.TweetManager.getTweets(tweetCriteria)

And it gave me these error:

ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.

An error occured during an HTTP request: HTTP Error 404: Not Found
Try to open in browser: https://twitter.com/search?q=%20from%3Agoogle&src=typd
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/GetOldTweets3/manager/TweetManager.py", line 343, in getJsonResponse
    response = opener.open(url)
  File "/usr/lib64/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/lib64/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python3.6/urllib/request.py", line 570, in error
    return self._call_chain(*args)
  File "/usr/lib64/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib64/python3.6/urllib/request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3343, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-1-656ba958b174>", line 9, in <module>
    tweets = got.manager.TweetManager.getTweets(tweetCriteria)
  File "/usr/lib/python3.6/site-packages/GetOldTweets3/manager/TweetManager.py", line 65, in getTweets
    json = TweetManager.getJsonResponse(tweetCriteria, refreshCursor, cookieJar, proxy, user_agent, debug=debug)
  File "/usr/lib/python3.6/site-packages/GetOldTweets3/manager/TweetManager.py", line 348, in getJsonResponse
    sys.exit()
SystemExit

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/IPython/core/ultratb.py", line 1169, in get_records
    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
  File "/usr/lib/python3.6/site-packages/IPython/core/ultratb.py", line 316, in wrapped
    return f(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/IPython/core/ultratb.py", line 350, in _fixed_getinnerframes
    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
  File "/usr/lib64/python3.6/inspect.py", line 1490, in getinnerframes
    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
AttributeError: 'tuple' object has no attribute 'tb_frame'

---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
/usr/lib/python3.6/site-packages/GetOldTweets3/manager/TweetManager.py in getJsonResponse(tweetCriteria, refreshCursor, cookieJar, proxy, useragent, debug)
    342         try:
--> 343             response = opener.open(url)
    344             jsonResponse = response.read()

/usr/lib64/python3.6/urllib/request.py in open(self, fullurl, data, timeout)
    531             meth = getattr(processor, meth_name)
--> 532             response = meth(req, response)
    533 

/usr/lib64/python3.6/urllib/request.py in http_response(self, request, response)
    641             response = self.parent.error(
--> 642                 'http', request, response, code, msg, hdrs)
    643 

/usr/lib64/python3.6/urllib/request.py in error(self, proto, *args)
    569             args = (dict, 'default', 'http_error_default') + orig_args
--> 570             return self._call_chain(*args)
    571 

/usr/lib64/python3.6/urllib/request.py in _call_chain(self, chain, kind, meth_name, *args)
    503             func = getattr(handler, meth_name)
--> 504             result = func(*args)
    505             if result is not None:

/usr/lib64/python3.6/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)
    649     def http_error_default(self, req, fp, code, msg, hdrs):
--> 650         raise HTTPError(req.full_url, code, msg, hdrs, fp)
    651 

HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

SystemExit                                Traceback (most recent call last)
    [... skipping hidden 1 frame]

<ipython-input-1-656ba958b174> in <module>
      8 
----> 9 tweets = got.manager.TweetManager.getTweets(tweetCriteria)

/usr/lib/python3.6/site-packages/GetOldTweets3/manager/TweetManager.py in getTweets(tweetCriteria, receiveBuffer, bufferLength, proxy, debug)
     64             while active:
---> 65                 json = TweetManager.getJsonResponse(tweetCriteria, refreshCursor, cookieJar, proxy, user_agent, debug=debug)
     66                 if len(json['items_html'].strip()) == 0:

/usr/lib/python3.6/site-packages/GetOldTweets3/manager/TweetManager.py in getJsonResponse(tweetCriteria, refreshCursor, cookieJar, proxy, useragent, debug)
    347             print("Try to open in browser: https://twitter.com/search?q=%s&src=typd" % urllib.parse.quote(urlGetData))
--> 348             sys.exit()
    349 

SystemExit: 

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
    [... skipping hidden 1 frame]

/usr/lib/python3.6/site-packages/IPython/core/interactiveshell.py in showtraceback(self, exc_tuple, filename, tb_offset, exception_only, running_compiled_code)
   2036                            'the full traceback.\n']
   2037                     stb.extend(self.InteractiveTB.get_exception_only(etype,
-> 2038                                                                      value))
   2039                 else:
   2040                     try:

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in get_exception_only(self, etype, value)
    821         value : exception value
    822         """
--> 823         return ListTB.structured_traceback(self, etype, value)
    824 
    825     def show_exception_only(self, etype, evalue):

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, evalue, etb, tb_offset, context)
    700                     chained_exceptions_tb_offset, context)
    701                 + chained_exception_message
--> 702                 + out_list)
    703 
    704         return out_list

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, value, tb, tb_offset, number_of_lines_of_context)
   1434             self.tb = tb
   1435         return FormattedTB.structured_traceback(
-> 1436             self, etype, value, tb, tb_offset, number_of_lines_of_context)
   1437 
   1438 

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, value, tb, tb_offset, number_of_lines_of_context)
   1334             # Verbose modes need a full traceback
   1335             return VerboseTB.structured_traceback(
-> 1336                 self, etype, value, tb, tb_offset, number_of_lines_of_context
   1337             )
   1338         elif mode == 'Minimal':

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, evalue, etb, tb_offset, number_of_lines_of_context)
   1191 
   1192         formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
-> 1193                                                                tb_offset)
   1194 
   1195         colors = self.Colors  # just a shorthand + quicker name lookup

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in format_exception_as_a_whole(self, etype, evalue, etb, number_of_lines_of_context, tb_offset)
   1148 
   1149 
-> 1150         last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)
   1151 
   1152         frames = self.format_records(records, last_unique, recursion_repeat)

/usr/lib/python3.6/site-packages/IPython/core/ultratb.py in find_recursion(etype, value, records)
    449     # first frame (from in to out) that looks different.
    450     if not is_recursion_error(etype, value, records):
--> 451         return len(records), 0
    452 
    453     # Select filename, lineno, func_name to track frames with

TypeError: object of type 'NoneType' has no len()

How can I fix it? Please help!


Solution

  • This is an issue due to the recent updates to the Twitter API. You may want to look at this Github issue for getoldtweets3.

    https://github.com/Mottl/GetOldTweets3/issues/98