有一种处理汤的方法:
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从config.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'}
没有("),不是字符串。
答案 0 :(得分:0)
这一行的问题:
print(self.get_page.find(self.title_rule))
是没有设置self.title_rule,你似乎拥有的是一个局部变量title_rule,在类方法get_title_rule和一个名为'title'的私有类变量中。所以我建议你使用
print(self.get_page().find(self.get_title_rule()))
请注意get_page之后的括号!