私はBeautifulsoup4でPython 3.5.1を実行しています。Beautifulsoupクラスから継承して、次のタスクを実行したい
私は現在、このコードを持っている:
from bs4 import BeautifulSoup
import html5lib
class LinkFinder(BeautifulSoup):
def __init__(self):
super().__init__()
def handle_starttag(self, name, attrs):
print(name)
私は次のコードでクラスをインスタンス化する場合: findmylink = LinkFinder()
と、私は次のコードfindmylink.feed("""<html><head><title>my name is good</title></head><body>hello world</body></html>""",'html5lib')
と私のHTMLをロードします。
私は私のコンソールで次のエラーました:私は実際に
from html.parser import HTMLParser
class LinkFinder(HTMLParser):
def __init__(self):
super().__init__()
def handle_starttag(self, tag, attrs):
print(tag)
(私の場合、私が代わりにhtml.parser
のBeautifulsoupを使用したい)次のサンプルコードを複製したい
'NoneType' object is not callable
をクラスを次のコードで再インスタンス化すると、findmylink = LinkFinder()
、次のコードを使用してHTMLをロードすると、という出力が表示されます。
html
head
title
body
これは望ましい出力です。
あなたのこと大丈夫です。しかし、私はこの実装では "html.parser"しか使用できないことを発見し、 "html5lib"のような他のパーサーは画面に何も出力しません。しかし、私はあなたの答えに固執しますが、 "html5lib"がうまくいかない理由がありますか? – Bluelily