python-3.x 如何解决类型错误:__init__()缺少1个必需的位置参数:'update_queue'?

k3bvogb1  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(268)

我想创建一个Telegram机器人,检查网站上的新帖子(目前每15秒一次,用于测试目的)。如果是这样,它应该将帖子内容发送到Telegram频道。
为此,我已经有了以下“代码 backbone ”:(格式和添加方面的精细工作稍后介绍)

import requests
import asyncio
from bs4 import BeautifulSoup
from telegram import InputMediaPhoto
from telegram.ext import Updater

# Telegram Bot API Token
API_TOKEN = 'XXXXXXXXXXXXXXXXX'

# URL of the website
URL = 'https://chemiehalle.de'

# List for storing seen posts
seen_posts = []

# Function for fetching posts
def get_posts():
    # Send request to the website
    res = requests.get(URL)
    # Parse HTML content
    soup = BeautifulSoup(res.content, 'html.parser')
    # Find all posts on the website
    posts = soup.find_all('article')
    # Iterate over each post
    for post in posts:
        # Get title of the post
        title = post.find('h2', class_='entry-title').text
        # Check if post has already been seen
        if title not in seen_posts:
            # Get image URL
            image_src = post.find('img')['src']
            # Get short text of the post
            text = post.find('div', class_='entry-content clearfix').find('p').text
            # Send image, title, and text as message
            bot.bot.send_media_group(chat_id='@chemiehalleBot', media=[InputMediaPhoto(media=image_src, caption=title + '\n\n' + text)])
            # Add title of the post to the list of seen posts
            seen_posts.append(title)

# Main loop
async def main():
    while True:
        # Call get_posts function every 15s
        get_posts()
        print("Check for new posts")
        await asyncio.sleep(15)

# Initialize Telegram Bot
updater = Updater(API_TOKEN)
bot = updater.bot

# Start main loop
asyncio.run(main())

到目前为止,我发现updater = Updater(API_TOKEN, use_context=True)产生错误,所以我已经删除了use_context=True以下的指示,从其他职位在这个网站上。
因为我在updater = Updater(API_TOKEN)行遇到了错误TypeError: __init__() missing 1 required positional argument: 'update_queue'
但不幸的是,我不知道要修改什么。根据这一点,Updater的构造函数需要一个额外的参数update_queue。但我不知道这应该是哪一个,我应该从哪里得到它。
你能帮帮我吗?
非常感谢您的支持!

kse8i1jr

kse8i1jr1#

你的电报版本可能不对。
我是一个有点旧的时尚,但对我来说,版本13仍然工作得很好。
因此,只需运行以下命令替换库版本:

pip install python-telegram-bot==13.13

相关问题