- 16
- 10
anekdot_bot
Это простенький анекдот бот для телеграмма
Он парсит анекдоты с сайта
Код:
import random
import telebot
from telebot import *
#
import requests
from bs4 import BeautifulSoup
# наша страница на которую мы отправляем запрос
url = 'https://www.anekdotov-mnogo.ru/anekdoti_userov.php'
headers = {'user-agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
html = response.text
soup = BeautifulSoup(html, 'lxml')
pages = '210'
print('Всего страниц: ' + pages)
data = []
def parser(url, headers, response, html, soup, pages):
for page in range(1, int(pages)+1):
response = requests.get(url, headers=headers, params={'page': page})
html = response.text
soup = BeautifulSoup(html, 'lxml')
blocks = soup.find_all('div', class_='tmpLineUnderContent tmpPaddingContent')
print(f'Парсинг страницы {page} из {pages}...')
for block in blocks:
try:
data.append({
block.find('p').get_text("\n"),
})
except:
print("")
print('Получили ' + str(len(data)) + ' позиций')
print("\n")
return data
#
list_of_jokets = parser(url, headers, response, html, soup, pages)
random.shuffle(list_of_jokets)
TOKEN = 'TOKEN'
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start'])
def start_message(message):
markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
item1=types.KeyboardButton("😜Анекдот😜")
item2=types.KeyboardButton("📝Помощь📝")
markup.add(item1,item2)
bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAEIqtVkQk6jdnyn7TbwMgoHgmirbLFdkwACpwIAAvEElxNzELAdFfmXJS8E')
bot.send_message(message.chat.id,'❗Привет ' + message.from_user.first_name + "❗\n😜Ты попал в Anekdot Bot😜\n😁Который поможет тебе весело провести время😁", reply_markup=markup)
@bot.message_handler(content_types='text')
def message_reply(message):
if message.text=="📝Помощь📝":
markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
item1=types.KeyboardButton("😜Анекдот😜")
item2=types.KeyboardButton("📝Помощь📝")
markup.add(item1,item2)
bot.send_message(message.chat.id,'❗Привет ' + message.from_user.first_name + "❗\n😜Ты попал в Anekdot Bot😜\n😁Он поможет тебе весело провести время😁", reply_markup=markup)
elif message.text=="😜Анекдот😜" or message.text=="/anecdote":
try:
if range(0, 9):
global list_of_jokets
bot.send_message(message.chat.id, list_of_jokets[0])
print(message.from_user.username)
print(list_of_jokets[0])
del list_of_jokets[0]
else:
bot.send_message(message.chat.id, "Ошибка")
except:
bot.send_message(message.chat.id, "Пожалуйста подождите...")
list_of_jokets = parser(url, headers, response, html, soup, pages)
print(list_of_jokets)
random.shuffle(list_of_jokets)
bot.polling()