Python -- BeautifulSoup ライブラリの紹介

零下一度
リリース: 2017-06-23 11:14:51
オリジナル
3040 人が閲覧しました

Beautiful Soup は、与えられたものをすべて解析し、ツリーのトラバース処理を行います。

BeautifulSoup ライブラリは、「タグ ツリー」を解析、トラバース、および保守するための関数ライブラリです (トラバーサルとは、特定の検索ルートをたどることを指します。シーケンス ツリー内の各ノードを 1 回だけ訪問します)。

私たちは、BeautifulSoup ライブラリを bs4 と呼びます。ライブラリをインポートするには: from bs4 import BeautifulSoup します。このうち import BeautifulSoup は主に bs4 の BeautifulSoup クラスを使用します。

bs4ライブラリパーサー

BeautifulSoupクラスの基本要素

 1 import requests 2 from bs4 import BeautifulSoup 3  4 res = requests.get('') 5 soup = BeautifulSoup(res.text,'lxml') 6 print(soup.a) 7 # 任何存在于HTML语法中的标签都可以用soup.<tag>访问获得,当HTML文档中存在多个相同<tag>对应内容时,soup.<tag>返回第一个。 8  9 print(soup.a.name)10 # 每个<tag>都有自己的名字,可以通过<tag>.name获取,字符串类型11 12 print(soup.a.attrs)13 print(soup.a.attrs['class'])14 # 一个<tag>可能有一个或多个属性,是字典类型15 16 print(soup.a.string)17 # <tag>.string可以取到标签内非属性字符串18 19 soup1 = BeautifulSoup('<p><!--这里是注释--></p>','lxml')20 print(soup1.p.string)21 print(type(soup1.p.string))22 # comment是一种特殊类型,也可以通过<tag>.string取到
ログイン後にコピー

実行結果:

& lt;a class="ログインなし" href= " ">ログイン

a

{'href': '', 'class': ['no-login']} ['no-login']

ログイン

コメントです

bs4ライブラリのHTMLの基本構造

タグツリー

このうち、BeautifulSoup型はタグツリーのルートノードです。

1 # 遍历儿子节点2 for child in soup.body.children:3     print(child.name)4 5 # 遍历子孙节点6 for child in soup.body.descendants:7     print(child.name)
ログイン後にコピー

タグツリーの上方走査

1 # 遍历所有先辈节点时,包括soup本身,所以要if...else...判断2 for parent in soup.a.parents:3     if parent is None:4         print(parent)5     else:6         print(parent.name)
ログイン後にコピー

実行結果:

div iv

ボディ

html

[ドキュメント]

タグツリーの並列走査

1 # 遍历后续节点2 for sibling in soup.a.next_sibling:3     print(sibling)4 5 # 遍历前续节点6 for sibling in soup.a.previous_sibling:7     print(sibling)
ログイン後にコピー
bs4ライブラリのprettify()メソッド

prettify()メソッドはコード形式がより標準的になります。 Soup.prettify() 手段を使用します。 PyCharmではprint(soup.prettify())を使って出力します。

動作環境:Mac、Python 3.6、PyCharm 2016.2参考:中国大学MOOCコース「Python Web Crawler and Information Extraction」

以上がPython -- BeautifulSoup ライブラリの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート