Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- from bs4 import BeautifulSoup
- import re
- import datetime
- import dateutil.parser as dparser
- from docx import Document
- import os
- class analyssaita:
- def __init__(self):
- self.page = requests.get('https://www.pkmpei.ru/')
- self.soup = BeautifulSoup(self.page.text, 'html.parser')
- def timetable(self):
- data =[]
- self.timetable = dict()
- table = self.soup.find("table", { "class" : "form-grid thin-grid" })
- table_body = table.find('tbody')
- rows = table_body.find_all('tr')
- for row in rows:
- cols = row.find_all('td')
- cols = [ele.text.strip() for ele in cols]
- data.append([ele for ele in cols if ele])
- for i in range(len(data)):
- self.timetable[i] = data[i]
- for i in range(len(self.timetable)):
- for j in range(len(self.timetable[i])):
- if '\xa0' in self.timetable[i][j]:
- self.timetable[i][j] = self.timetable[i][j].replace('\xa0', ' ')
- if '*' in self.timetable[i][j]:
- self.timetable[i][j] = self.timetable[i][j].replace('*', '')
- self.timetable[i] = self.timetable[i][0] + ': ' + self.timetable[i][1]
- print(self.timetable)
- def adress(self):
- adress = str(self.soup(class_="text"))
- start = 'Наш адрес'
- end = '/><br/><h1'
- adress = adress[adress.find(start)+len(start):adress.rfind(end)]
- start1 = '<div style="text-align: left;">'
- end1 = ', аудитория Б-209<br'
- adress1 = adress[adress.find(start1)+len(start1):adress.rfind(end1)]
- print(adress1)
- start2 = '<div style="text-align: left;">'
- end2 = '<br'
- self.adress2 = adress[adress.find(start2)+len(start2):adress.rfind(end2)]
- adress1 =adress1.replace(' ', '')
- self.adress1 = 'https://www.google.com/search?q=' + adress1
- print(self.adress1)
- def contactniedannie(self):
- contactniedannie = str(self.soup(class_="text"))
- start = 'Контактные данные'
- end = '</span><br/> </b></b>'
- start1 = '</h1> <br/> <b>'
- end1 = '<b><br/>'
- contactniedannie = contactniedannie[contactniedannie.find(start)+len(start):contactniedannie.rfind(end)] + 'JFKLDSJFLSD'
- self.telefon = contactniedannie[contactniedannie.find(start1)+len(start1):contactniedannie.rfind(end1)]
- print(self.telefon)
- start3 = '<span style="color: rgb(0, 0, 255);">'
- end3 = 'JFKLDSJFLSD'
- self.email = 'e-mail: ' + contactniedannie[contactniedannie.find(start3)+len(start3):contactniedannie.rfind(end3)]
- print(self.email)
- def novosti(self):
- novosti = self.soup.find_all(id="right_news_item")
- urls = []
- data = []
- text1 = []
- self.novosti = dict()
- for i in novosti:
- f = i.find('a')
- d = f.get_attribute_list('href')[0]
- urls.append('https://www.pkmpei.ru' + d)
- for i in urls:
- page = requests.get(i)
- soup = BeautifulSoup(page.text, 'html.parser')
- text = soup.find_all(class_= 'text')
- for i in text:
- data.append(i.find(class_= 'title3').text)
- text1.append(i.find('h1').text)
- for i in range(len(data)):
- self.novosti[data[i]] = 'НОВОСТИ:' + '\n' + data[i] + '\n' + text1[i] + '\n' + 'Ссылка: ' + urls[i]
- print(self.novosti)
- t = analyssaita()
- t.timetable()
- t.adress()
- t.contactniedannie()
- t.novosti()
Advertisement
Add Comment
Please, Sign In to add comment