我最近实现了添加target="_blank"
到这样的外部链接:
@hooks.register('after_edit_page')
def do_after_page_edit(request, page):
if hasattr(page, "body"):
soup = BeautifulSoup(page.body)
for a in soup.findAll('a'):
if hasattr(a, "href"):
a["target"] = "_blank"
page.body = str(soup)
page.body = page.body.replace("<html><head></head><body>", "")
page.body = page.body.replace("</body></html>", "")
page.body = page.body.replace("></embed>", "/>")
page.save()
@hooks.register('construct_whitelister_element_rules')
def whitelister_element_rules():
return {
'a': attribute_rule({'href': check_url, 'target': True}),
}
问题:
Beautifulsoup 与输出混淆,添加
html, head & body
标签 -不要自动放置 html、head 和 body 标签,beautifulsoup它还与嵌入标签混淆 -如何让 BeautifulSoup 4 尊重自闭合标签?
因此,我的蹩脚“
fix
”用空白字符串手动替换部分输出。
问题:
这样做的正确和最佳方法是什么?