GetOldTweets3 - HTTP 请求期间发生错误:HTTP 错误 404:未找到
Posted
技术标签:
【中文标题】GetOldTweets3 - HTTP 请求期间发生错误:HTTP 错误 404:未找到【英文标题】:GetOldTweets3 - An error occured during an HTTP request: HTTP Error 404: Not Found 【发布时间】:2020-09-23 14:46:46 【问题描述】:您好,我正在使用 openSuse,当我尝试根据用户名抓取推文时,它显示“HTTP 请求期间发生错误:HTTP 错误 404:未找到。尝试在浏览器中打开:https://twitter.com/search?q=%20from%3Agoogle&src=typd”
给出的链接将我引导到不是 404 的网站。
我的代码是:
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)
它给了我这些错误:
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()
我该如何解决?请帮忙!
【问题讨论】:
【参考方案1】:这是由于最近更新 Twitter API 造成的。您可能想查看 getoldtweets3 的这个 Github 问题。
https://github.com/Mottl/GetOldTweets3/issues/98
【讨论】:
以上是关于GetOldTweets3 - HTTP 请求期间发生错误:HTTP 错误 404:未找到的主要内容,如果未能解决你的问题,请参考以下文章
在 AngularJS 中的 $http 请求期间显示微调器 GIF?
如何在 Ajax(Post) 请求期间抛出自定义 http 状态码
Angular 5 Universal 在服务器端渲染期间等待 http 请求返回
接收客户端在HTTP请求期间发送过来的值(HttpRequestBase/HttpRequestHttpContextBase/HttpConextHttpContext.Current)