Advertisement
Carson1

Untitled

May 21st, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. import requests
  2. from bs4 import BeautifulSoup
  3. import re
  4. class WikiArtHandler:
  5.     def __init__(self):
  6.       self.page = requests.get('https://www.wikiart.org/ru')
  7.       self.soup = BeautifulSoup(self.page.text, 'html.parser')
  8.       pass
  9.    
  10.     def get_genres(self):
  11.         # возвращает список жанров
  12.         artist_genre_list = self.soup.find(class_='popular-dictionaries view-dictionaries-container')
  13.         d = artist_genre_list.get_attribute_list('ng-init')[0]
  14.         d = re.split('[}{,;".}:]', d)
  15.         self.genre_names = set()
  16.         for i in range(len(d) - 1):
  17.            for c in d[i]:
  18.             if c.isupper():
  19.               self.genre_names.add(d[i])
  20.         useless_words = {'Title', 'Url', 'PopularDictionariesViewModel', 'popularDictionariesModel = ','Items', 'GroupTitle', 'TotalViews', 'Стиль'}
  21.         self.genre_names.difference_update(useless_words)
  22.         self.genre_names = list(self.genre_names)
  23.         print(self.genre_names)
  24.         pass
  25.        
  26.     def get_artists(self):
  27.         # возвращает список художников
  28.         artist_name_list = self.soup.find(class_='popular-artists view-dictionaries-container')
  29.         d = artist_name_list.get_attribute_list('ng-init')[0]
  30.         d = re.split('[}{,;".}:]', d)
  31.         self.artist_names = set()
  32.         for i in range(len(d) - 1):
  33.           for c in d[i]:
  34.             if c.isupper():
  35.                self.artist_names.add(d[i])
  36.         useless_words = {'Title', 'Url', 'PopularArtistsViewModel', 'popularArtistsModel = '}
  37.         self.artist_names.difference_update(useless_words)
  38.         self.artist_names = list(self.artist_names)
  39.         print(self.artist_names)
  40.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement