问题描述
我必须通过搜索从Twitter收集一些数据。不幸的是,由于他们多次拒绝了我的请求,因此无法获得Twitter API。我决定为此目的使用twint python模块。我已经通过git安装了最新版本,然后尝试在tweets中搜索字符串,如下所示:
twint -s pineapple
它具有以下例外情况
Traceback (most recent call last):
File "/usr/local/bin/twint",line 33,in <module>
sys.exit(load_entry_point('twint==2.1.21','console_scripts','twint')())
File "/usr/local/lib/python3.6/dist-packages/twint/cli.py",line 339,in run_as_command
main()
File "/usr/local/lib/python3.6/dist-packages/twint/cli.py",line 330,in main
run.Search(c)
File "/usr/local/lib/python3.6/dist-packages/twint/run.py",line 410,in Search
run(config,callback)
File "/usr/local/lib/python3.6/dist-packages/twint/run.py",line 329,in run
get_event_loop().run_until_complete(Twint(config).main(callback))
File "/usr/lib/python3.6/asyncio/base_events.py",line 484,in run_until_complete
return future.result()
File "/usr/local/lib/python3.6/dist-packages/twint/run.py",line 235,in main
await task
File "/usr/local/lib/python3.6/dist-packages/twint/run.py",line 286,in run
await self.tweets()
File "/usr/local/lib/python3.6/dist-packages/twint/run.py",line 217,in tweets
await self.Feed()
File "/usr/local/lib/python3.6/dist-packages/twint/run.py",line 62,in Feed
response = await get.RequestUrl(self.config,self.init)
File "/usr/local/lib/python3.6/dist-packages/twint/get.py",line 135,in RequestUrl
response = await Request(_url,params=params,connector=_connector,headers=_headers)
File "/usr/local/lib/python3.6/dist-packages/twint/get.py",line 161,in Request
return await Response(session,_url,params)
File "/usr/local/lib/python3.6/dist-packages/twint/get.py",line 167,in Response
async with session.get(_url,ssl=True,proxy=httpproxy) as response:
File "/usr/local/lib/python3.6/dist-packages/aiohttp/client.py",line 855,in __aenter__
self._resp = await self._coro
File "/usr/local/lib/python3.6/dist-packages/aiohttp/client.py",line 361,in _request
ssl=ssl,proxy_headers=proxy_headers,traces=traces)
File "/usr/local/lib/python3.6/dist-packages/aiohttp/client_reqrep.py",line 207,in __init__
url2 = url.with_query(params)
File "/usr/local/lib/python3.6/dist-packages/yarl/__init__.py",line 857,in with_query
new_query = self._get_str_query(*args,**kwargs)
File "/usr/local/lib/python3.6/dist-packages/yarl/__init__.py",line 837,in _get_str_query
for k,v in query)
File "/usr/local/lib/python3.6/dist-packages/yarl/__init__.py",in <genexpr>
for k,v in query)
File "yarl/_quoting.pyx",line 226,in yarl._quoting._Quoter.__call__
TypeError: Argument should be str
在我的Ubuntu上安装的python版本是3.6。我还用Python脚本导入了twint
,但同样也出现了异常。
如何解决此问题?这个任务有什么最好的选择吗?
解决方法
我在使用 python3.7 时遇到了同样的问题,并通过重新安装 yarl 来解决它,例如 这样:
pip3 install yarl --force-reinstall --no-cache-dir