повысить InvalidSchema («Не найдены адаптеры подключения для {! r}». формат (url)) - PullRequest
0 голосов
/ 01 мая 2020

Попытка использовать 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"]
})
...