Попытка использовать Twitter Streaming API для получения ссылок из указанных c твитов, а затем нажать Discord. Я сталкиваюсь с ошибкой запросов при попытке добавить ссылку на словарь и pu sh, чтобы дискордировать с помощью запросов.
Ниже описан способ, которым я анализирую объект твита для поиска твитов.
#If there is a link in the tweet
if tweetjson["entities"]["urls"] != []:
url_string = ""
for url in tweetjson["entities"]["urls"]:
url_string += "[t.co](" + url["url"] + ") - [" + url["display_url"] + "](" + url["expanded_url"] + ") \n"
fields.append({
"name" : "Listed URLs",
"value": url_string
})
Это трассировка, которую я получаю:
Traceback (most recent call last):
File "C:\Users\M\Documents\Projects\Twitter Monitor\TweetStream.py", line 38, in <module> stream.filter(follow=['327485725','1048416764139397120','1041561837865762816'])
File "C:\Program Files (x86)\Python38-32\lib\site-packages\tweepy\streaming.py", line 474, in filter
self._start(is_async)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\tweepy\streaming.py", line 389, in _start
self._run()
File "C:\Program Files (x86)\Python38-32\lib\site-packages\tweepy\streaming.py", line 320, in _run
six.reraise(*exc_info)
File "C:\Users\M\AppData\Roaming\Python\Python38\site-packages\six.py", line 703, in reraise
raise value
File "C:\Program Files (x86)\Python38-32\lib\site-packages\tweepy\streaming.py", line 289, in _run
self._read_loop(resp)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\tweepy\streaming.py", line 351, in _read_loop
self._data(next_status_obj)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\tweepy\streaming.py", line 323, in _data
if self.listener.on_data(data) is False:
File "C:\Users\M\Documents\Projects\Twitter Monitor\TweetStream.py", line 26, in on_data
send_webhook(tweetjson)
File "C:\Users\M\Documents\Projects\Twitter Monitor\discord_webhook.py", line 91, in send_webhook
result = requests.post(url, data=json.dumps(data), headers={
File "C:\Program Files (x86)\Python38-32\lib\site-packages\requests\api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\requests\sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\requests\sessions.py", line 637, in send
adapter = self.get_adapter(url=request.url)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\requests\sessions.py", line 728, in get_adapter
raise InvalidSchema("No connection adapters were found for {!r}".format(url))
requests.exceptions.InvalidSchema: No connection adapters were found for "{'url': 'https://t . co/cDY5crXmzL', 'expanded_url': 'http://whatsapp.com', 'display_url': 'whatsapp.com', 'indices': [0, 23]}"
Вот как я отправляю запросы на разногласия, строка 91, указанная в трассировке, начинается здесь:
try:
result.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
else:
print("Payload delivered successfully, code {}.".format(result.status_code))
print(str(time.time()))
Что странно, так это то, что если я попробую это с одной ссылкой, это сработает. Следующий код успешно выдвигается:
fields.append({
"name": "listed URL",
"value": tweetjson["entities"]["urls"][0]["url"]
})