この記事では主に、Beautiful Soup モジュールを使用してオブジェクトを作成するための関連情報を紹介します。必要な方はぜひ参考にしてください。
インストール
pip 経由で Beautiful Soup モジュールをインストールします: pip install beautifulsoup4
。
PyCharm IDE を使用してコードを記述することもできます。PyCharm の設定でプロジェクトを見つけ、その中で Beautiful Soup モジュールを検索してインストールします。
BeautifulSoup オブジェクトを作成する
Beautiful Soup モジュールは、Web ページからデータを取得するために広く使用されています。 Beautiful Soup モジュールを使用すると、HTML/XML ドキュメントからあらゆるデータ (Web ページ内のすべてのリンクやタグ内のコンテンツなど) を抽出できます。
これを実現するために、Beautiful Soup はさまざまなオブジェクトとメソッドを提供します。あらゆる HTML/XML ドキュメントをさまざまな Beautiful Soup オブジェクトに変換でき、これらのオブジェクトにはさまざまなプロパティとメソッドがあり、そこから必要なデータを抽出できます。
Beautiful Soup には合計 3 つのオブジェクトがあります:
BeautifulSoup
Tag
NavigableString
BeautifulSoup オブジェクトを作成します
BeautifulSoup オブジェクトの作成は、あらゆる作業の開始点です。美しいスーププロジェクト。
BeautifulSoup は、マシン上のファイルや Web ページなどの文字列またはファイルのようなオブジェクトを渡すことができます。
文字列から BeautifulSoup オブジェクトを作成する
BeautifulSoup のコンストラクターに文字列を渡してオブジェクトを作成します。
helloworld = '<p>Hello World</p>' soup_string = BeautifulSoup(helloworld) print soup_string <html><body><p>Hello World</p></body></html>
ファイル様オブジェクトから BeautifulSoup オブジェクトを作成する
BeautifulSoup のコンストラクターにファイル様オブジェクトを渡すことでオブジェクトを作成します。これは、オンライン Web ページを解析するときに非常に便利です。
url = "http://www.glumes.com" page = urllib2.urlopen(url) soup = BeautifulSoup(page) print soup
ファイルのようなオブジェクトを渡すことに加えて、ローカル ファイル オブジェクトを BeautifulSoup のコンストラクターに渡してオブジェクトを生成することもできます。
with open('foo.html','r') as foo_file : soup_foo = BeautifulSoup(foo_file) print soup_foo
XML 解析用の BeautifulSoup オブジェクトを作成する
Beautiful Soup モジュールは XML の解析にも使用できます。
BeautifulSoup オブジェクトを作成するとき、Beautiful Soup モジュールは適切な TreeBuilder クラスを選択して HTML/XML ツリーを作成します。デフォルトでは、HTML TreeBuilder オブジェクトが選択されており、デフォルトの HTML パーサーを使用して HTML 構造ツリーを生成します。上記のコードでは、文字列を HTML ツリー構造に解析することによって、BeautifulSoup オブジェクトが生成されます。
Beautiful Soup モジュールで入力コンテンツを XML 型に解析したい場合は、Beautiful Soup コンストラクターで使用される features パラメーターを正確に指定する必要があります。 features パラメーターを指定すると、Beautiful Soup は必要な機能を満たす最も適切な TreeBuilder クラスを選択します。
機能パラメーターを理解する
すべての TreeBuilder には、使用するパーサーに基づいて異なる機能があります。したがって、入力コンテンツは、コンストラクターに渡される features パラメーターに応じて異なる結果になります。
Beautiful Soup モジュールで、現在 TreeBuilder によって使用されているパーサーは次のとおりです:
lxml
html5lib
html.parser
BeautifulSoup コンストラクターの features パラメーターは、次のリストを受け入れることができます。文字列または文字列値。
現在、各 TreeBuilder でサポートされている機能パラメーターとパーサーは次の表のとおりです。 fast '、'許容 ']