我试图解析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部分(这是类新闻的方法),获取标题方法
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部分(这是类新闻的方法),编写所有新闻的csv文件并在熊猫中读取
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部分(这是类新闻的方法),通过某些单词在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]
我的目的是自动运行(自动启动)我的:,并且只是通过three methodsprint_headlines_testwrite_and_readcertain 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个方法和3个,为什么它们没有通过启动对象自动运行,而是单独启动?__init__other methodsclassclassarguments
我的错在哪里?
宝慕林4294392
相关分类