import requests
from bs4 import BeautifulSoup
from time import sleep
print('Telegram Parser v1.4\nCreator: vk.com/lucifer\nLast update: 07.03.2021\n')
print('\nЗапускаю бота...\n')
class code():
def __init__(self):
with open('cookie.txt',mode='r') as file2:
cookie = file2.read()
self.headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0",
"Cookie":cookie
}
self.session = requests.session()
self.page_count = int(self.count_page())
self.parse_page()
def zapis_in_file(self,telegram):
with open('list.txt',mode='a') as file:
file.write(f'{telegram}\n')
def parse_tg_from_profile(self,massiv):
for b in massiv:
try:
info2 = self.session.get(b,headers=self.headers).text
main_2 = BeautifulSoup(info2,'lxml')
simp = main_2.find_all('div',class_='count')[1].get_text()
if int(simp) >= 180:
telega = main_2.find_all('a',rel="nofollow noopener")
if str(telega) == '[]':
pass
else:
if 'tg:' in str(telega[0]):
self.zapis_in_file(telega[0]['href'].split('=')[1])
print('{} | {} симпатий | TG: {}'.format(b,simp,telega[0]['href'].split('=')[1]))
elif len(telega) == 2:
if 'tg:' in str(telega[1]):
self.zapis_in_file(telega[1]['href'].split('=')[1])
print('{} | @{}'.format(b,telega[1]['href'].split('=')[1]))
sleep(0.8)
except:
sleep(15)
def parse_page(self):
for stranitsa in range(1,self.page_count+1):
try:
info = self.session.get(f'https://lolz.guru/online/?type=registered&page={stranitsa}',headers=self.headers)
main_2 = BeautifulSoup(info.text,'lxml')
links_to_profile = main_2.find_all('a',class_='username StatusTooltip')
links_lolz = []
for link in links_to_profile:
links_lolz.append('https://lolz.guru/{}'.format(link['href']))
self.parse_tg_from_profile(links_lolz)
except:
sleep(15)
def count_page(self):
page_count = self.session.get('https://lolz.guru/online/?type=registered&page=1',headers=self.headers)
main_text = BeautifulSoup(page_count.text,'лксмл')
result = main_text.find_all('a',_class="")[81].get_text()
print('Получено {} страниц. Начинаю парсинг:'.format(result))
return result
code()