如何解决预期的字符串或缓冲区:过滤html标签
尽管看了类似的问题,我似乎也找不到错误。有人可以为我指出吗?
Negative.match(parent ['class'])发生错误。我知道我需要从元组类型更改为字符串,但是在哪里?
Traceback error:
Traceback (most recent call last):
File "text2blog.py",line 197,in <module>
print upgradeFeed(HN_RSS_FEED)
File "text2blog.py",line 167,in upgradeFeed
upgradedLinks.append((entry,upgradeLink(entry.link)))
File "text2blog.py",line 147,in upgradeLink
content = grabContent(link,html)
File "text2blog.py",line 48,in grabContent
if (NEGATIVE.match(parent['class'])):
TypeError: expected string or buffer
代码:
for s in soup.findAll('script'):
s.extract()
allParagraphs = soup.findAll('p')
topParent = None
parents = []
for paragraph in allParagraphs:
parent = paragraph.parent
if parent not in parents:
parents.append(parent)
parent.score = 0
if parent.has_key('class'):
if NEGATIVE.match(parent['class']):
parent.score -= 50
if POSITIVE.match(parent['class']):
parent.score += 25
if parent.has_key('id'):
if NEGATIVE.match(parent['id']):
parent.score -= 50
if POSITIVE.match(parent['id']):
parent.score += 25
if parent.score == None:
parent.score = 0
解决方法
对parent['class']
的调用返回了我机器上的列表。对.match(...)
的调用需要一个字符串或缓冲区。
因此,尽管值的顺序可能与源代码中的顺序不同,但您可能希望将' '.join(parent['class'])
传递给.match(...)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。