я пытаюсь разобрать rss и сделать df из них по определенным словам
мой код состоит из 4 частей
часть 1, функция инициализации
class News:
def __init__(self, rss_dict, t1, t2, filename):
self.rss_dict = rss_dict
self.t1 = t1
self.t2 = t2
self.filename = filename
self.print_headlines_test()
self.write_and_read()
self.certain_words()
Часть 2 (это метод class News
), Получить метод заголовка
def print_headlines_test(self):
for key,url in self.rss_dict.items():
feed = feedparser.parse(url)
headlines = []
allheadlines = []
for newsitem in feed['items']:
headlines.append(newsitem['title'])
for key,url in self.rss_dict.items():
allheadlines.extend(headlines)
self.allheadlines = allheadlines
Часть 3 (это метод class News
), записать в CSV-файл все новости и прочитать его в pandas
def write_and_read(self):
header = ['Tittle']
with open(self.filename, 'w', encoding='utf-8-sig') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerow(i for i in header)
for a in zip(self.allheadlines):
writer.writerow((a))
df = pd.read_csv(self.filename)
self.df = df
return df
Часть 4 (это метод class News
), поиск в pandas фрейме данных по определенным словам
def certain_words(self):
result = self.df.apply(lambda x: x.str.contains(self.t1, na=False,
flags = re.IGNORECASE, regex=True)).any(axis=1)
result2 = self.df.apply(lambda x: x.str.contains(self.t2, na=False,
flags = re.IGNORECASE, regex=True)).any(axis=1)
return self.df[result&result2]
моя цель - автозапуск (автозапуск) my three methods
: print_headlines_test
, write_and_read
и certain words
всего на
c = News(my_dict_of_rss, target1,target2,'filename.csv')
с методом __init__
, но это ничего мне не возвращает как output
, когда я использую
c = News(my_dict_of_rss,target1,target2,'filename.csv')
и c.print_headlines_test()
или c.write_and_read()
или c.certain_words()
отдельно, это работает
TL; DR имеют метод 1 __init__
и 3 other methods
в class
, почему они не запускаются автоматически при запуске объекта class
со всеми arguments
, но при запуске отдельно?
где моя вина?