Существует метод, который обрабатывает суп:
def get_title(self):
# print(self.get_page)
# print(self.title_rule)
# print(self.get_page.find(self.title_rule))
title = self.get_page.find(self.title_rule).text
return textwrap.fill(title, width=79)
Печать страницы self.get_page - все нормально:
@property
def get_page(self):
page = requests.get(self.url)
page.encoding = self.encode
return BeautifulSoup(page.text, 'html.parser')
self.title_rule получает правило из конфигурации.INI:
$print(self.title_rule)
'h1', {'class': 'title'}
[pravda.ru]
title = 'h1', {'class': 'title'}
def get_rule(self):
config = configparser.ConfigParser()
config.read(path)
title_rule = config.get(self.site_name, "title")
return title_rule
Но когда я пытаюсь:
print(self.get_page.find(self.title_rule))
None
Если я пытаюсь:
print(self.get_page.find('h1', {'class': 'title'}))
или
rule = 'h1', {'class': 'title'}
print(self.get_page.find(rule))
все нормально!
Я думаю, это потому, что строка приходит из файла конфигурации.
, например: rule = "'h1', {'class': 'title'}", self.title_rule = "'h1', {'class': 'title'}"
Пожалуйста, помогите мне получить из конфигурации
self.title_rule = 'h1', {'class': 'title'}
без ("), не строка.