0

尝试使用 Twitter Streaming API 从特定推文中获取链接,然后推送到 Discord。尝试将链接添加到字典并使用请求推送不和谐时,我遇到了请求错误。

以下是我解析推文对象以查找推文的方式。

#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"]
})
4

0 回答 0