美化组:值错误:标签索引:元素不在标记中

2024-05-15 09:42:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将ePub转换为单个HTML文件,因此我需要将各个章节连接到一个HTML文件中。这些名称是“…\u split_000.html”等,我设置了各种结构来迭代ToC,生成目录名等等。在

在正文部分中,首先要把内容的主体部分和后面的部分内容合并在一起。我的代码似乎不起作用。”book“是ebooklib的epub类的一个实例docsfiles”是一个字典,其中HTML文件的名称作为键,文件列表作为一个值:

def concat_articles(book, docsfiles, toc):
    articles = {}
    for doc, val in docsfiles.iteritems():
       firstsoup = False
       for f in val['files']:
           content = book.get_item_with_href(f).content
           soup = BeautifulSoup(content, "html.parser")
           if not firstsoup:
               firstsoup = soup
               continue
           body = copy.copy(soup.body)
           firstsoup.body.append(body)
       articles[val['id']] = firstsoup.prettify("utf-8")
    return articles

在ePub上运行此程序时,出现错误:

^{pr2}$

实际上,我应该把这个打开汤.身体在上面的代码中,但是会导致另一个错误,所以我想我会先解决这个问题。在


Tags: 文件代码名称内容htmlbodyvalcontent
2条回答

奇怪的是,我从this StackOverflow post使用Martijn Peters的“clone()”方法:

 body = clone(soup.body)
 firstsoup.body.append(body)

为什么这样做,以及“复制。复制()“没有,我还没弄明白。在

完整的工作解决方案没有重复的主体标签如下所示:

^{pr2}$

当我使用复制。复制在第一行中,但当我将“clone()”替换为复制。复制()”在最后一行。在

可能太迟了,但我遇到了类似的问题,找到了一个更简单的解决方案。请使用str()函数将使用beauthoulGroup提取的所有对象转换为字符串。在

相关问题 更多 >