I don't have BeautifulSoup installed so I am unable to tell whether a) for line in all_kbd: processes one line at a time as given in the input, or do you get the clean text in single lines in a list as shown in the example in the doc http://www.crummy.com/software/BeautifulSoup/bs4/doc/#searching-the-tree
b) for inside_line in line: Does this process one token at a time? In any case, it looks like the reason you got "None" in the output is because you assume that every single line contains <code> and </code> tags. This may not be case all the time, so, prior to printing extract_code perhaps you could check whether that is None. -- https://mail.python.org/mailman/listinfo/python-list