Python クローラー パーサー BeautifulSoup4 を 1 つの記事で理解する
この記事では、Python に関する関連知識を提供します。主にクローラー パーサー BeautifulSoup4 に関連する問題を整理します。Beautiful Soup は、HTML または XML ファイルからデータを抽出できる Python です。ライブラリを実装できます。お気に入りのコンバーターを使用してドキュメントのナビゲーション、検索、変更を行う通常の方法を見てみましょう。皆さんのお役に立てれば幸いです。
[関連する推奨事項: Python3 ビデオ チュートリアル ]
1. BeautifulSoup4 ライブラリの紹介
1.はじめに
Beautiful Soup は、HTML または XML ファイルからデータを抽出できる Python ライブラリです。お気に入りのコンバータを通じて、ドキュメントのナビゲーション、検索、変更の通常の方法を実装できます。Beautiful Soup は、作業時間を数時間、場合によっては数日節約できます。
BeautifulSoup4 は Web ページを DOM ツリーに変換します:
2. モジュールをダウンロードします
1.ウィンドウ コンピューターwin キー R
に次のように入力します: cmd
##2. Beautifulsoup4## をインストールします。 #, 対応する pip コマンド
を入力します: pip install beautifulsoup4 . 表示されるバージョンは既にインストールされており、インストールは正常に完了しました。 3. ガイド パッケージ
form bs4 import BeautifulSoup
3. 解析ライブラリ
BeautifulSoup は、解析時に実際にパーサーに依存します。Python 標準ライブラリの HTML パーサーのサポートに加えて、いくつかの機能もサポートしています。サードパーティのパーサー (lxml など):
欠点 | ##Python 標準ライブラリ | ||
---|---|---|---|
Python 2.7.3 および Python3.2.2 より前のバージョンはドキュメント フォールト トレランスが低い |
| lxml HTML 解析ライブラリBeautifulSoup(html,'lxml') | |
C言語ライブラリをインストールする必要があります |
#lxml XML 解析ライブラリ |
BeautifulSoup(html,'xml' | |
Requires C 言語ライブラリのインストール |
htm5lib 解析ライブラリ |
##BeautifulSoup(html,'htm5llib') | 最大の欠点許容範囲、ブラウザー方式 ドキュメントを解析し、HTMLS 形式でドキュメントを生成します |
<p>对于我们来说,我们最常使用的解析器是<code>lxml HTML 解析器,其次是html5lib.
二、上手操作1. 基础操作1. 读取HTML字符串: from bs4 import BeautifulSoup html = ''' <p> </p><p> </p><h4 id="Hello">Hello</h4> <p> </p> ログイン後にコピー ログイン後にコピー ログイン後にコピー
2. 读取HTML文件: from bs4 import BeautifulSoup soup = BeautifulSoup(open('index.html'),'lxml') ログイン後にコピー 3. 基本方法 from bs4 import BeautifulSoup html = ''' <p> </p><p> </p><h4 id="Hello">Hello</h4> <p> </p> ログイン後にコピー ログイン後にコピー ログイン後にコピー
2. 对象种类Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: (1)Tag:Tag通俗点讲就是HTML中的一个个标签,例如: soup = BeautifulSoup('<b>Extremely bold</b>','lxml') tag = soup.b print(tag) print(type(tag)) ログイン後にコピー 输出结果: <b>Extremely bold</b> <class></class> ログイン後にコピー Tag有很多方法和属性,在 遍历文档树 和 搜索文档树 中有详细解释.现在介绍一下tag中最重要的属性: name属性: print(tag.name) # 输出结果:b # 如果改变了tag的name,那将影响所有通过当前Beautiful Soup对象生成的HTML文档: tag.name = "b1" print(tag) # 输出结果:<b1>Extremely bold</b1> ログイン後にコピー Attributes属性: # 取clas属性 print(tag['class']) # 直接”点”取属性, 比如: .attrs : print(tag.attrs) ログイン後にコピー tag 的属性可以被添加、修改和删除: # 添加 id 属性 tag['id'] = 1 # 修改 class 属性 tag['class'] = 'tl1' # 删除 class 属性 del tag['class'] ログイン後にコピー (2)NavigableString:用 print(soup.b.string)print(type(soup.b.string)) ログイン後にコピー (3)BeautifulSoup:表示的是一个文档的内容,可以获取它的类型,名称,以及属性: print(type(soup.name)) # <type> print(soup.name) # [document] print(soup.attrs) # 文档本身的属性为空</type> ログイン後にコピー (4)Comment:是一个特殊类型的 NavigableString 对象,其输出的内容不包括注释符号。 print(soup.b) print(soup.b.string) print(type(soup.b.string)) ログイン後にコピー 3. 搜索文档树1. (1)name 参数:name 参数可以查找所有名字为 name 的tag,字符串对象会被自动忽略掉
(2)kwargs参数 soup.find_all(id='link2') ログイン後にコピー (3)text参数:通过 text 参数可以搜搜文档中的字符串内容,与 name 参数的可选值一样, text 参数接受 字符串 , 正则表达式 , 列表 # 匹配字符串 soup.find_all(text="a") # 匹配正则 soup.find_all(text=re.compile("^b")) # 匹配列表 soup.find_all(text=["p", "a"]) ログイン後にコピー 4. css选择器我们在使用BeautifulSoup解析库时,经常会结合CSS选择器来提取数据。 注意:以下讲解CSS选择器只选择标签,至于获取属性值和文本内容我们后面再讲。 1. 根据标签名查找:比如写一个 from bs4 import BeautifulSoup html = ''' <p> </p><p> </p><h4 id="Hello">Hello</h4> <p> </p> ログイン後にコピー ログイン後にコピー ログイン後にコピー
输出结果: [ ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー 2. 根据类名class查找。 print(soup.select(".panel_body")) ログイン後にコピー 输出结果: ログイン後にコピー
3. 根据id查找。#box,即一个#和box表示选取id-”box "的所有标签,“#”代表id print(soup.select("#list-1")) ログイン後にコピー 输出结果: [ ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー
4. 根据属性的名字查找。class属性和id属性较为特殊,故单独拿出来定义一个 比如:input[ name=“username”]这个表达式查找name= "username "的标签,此处注意和xpath语法的区别 print(soup.select('ul[ name="element"]')) ログイン後にコピー 输出结果: [ ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー
5. 标签+类名或id的形式。 # 查找id为list-1的ul标签 print(soup.select('ul#list-1')) print("-"*20) # 查找class为list的ul标签 print(soup.select('ul.list')) ログイン後にコピー 输出结果: [ ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー
6. 查找直接子元素 # 查找id="list-1"的标签下的直接子标签liprint(soup.select('#list-1>li')) ログイン後にコピー 输出结果: [ ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー 7. 查找子孙标签 # .panel_body和li之间是一个空格,这个表达式查找id=”.panel_body”的标签下的子或孙标签liprint(soup.select('.panel_body li')) ログイン後にコピー 输出结果: [ ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー ログイン後にコピー 8. 取某个标签的属性 # 1. 先取到<p>p = soup.select(".panel_body")[0]# 2. 再去下面的a标签下的href属性print(p.select('a')[0]["href"])</p> ログイン後にコピー 输出结果: https://www.baidu.com ログイン後にコピー 9. 获取文本内容有四种方式: (a) # 1. 先取到<p>p = soup.select(".panel_body")[0]# 2. 再去下面的a标签下print(p.select('a')[0].string)</p> ログイン後にコピー 输出结果: 百度官网 ログイン後にコピー (b) print(p.strings)print(list(p.strings)) ログイン後にコピー 输出结果: <generator>['\n', '\n', 'Foo', '\n', 'Bar', '\n', 'Jay', '\n', '\n', '\n', 'Foo', '\n', '百度官网', '\n', 'Bar', '\n', '\n']</generator> ログイン後にコピー (c) print(p.stripped_strings)print(list(p.stripped_strings)) ログイン後にコピー 输出结果: <generator>['Foo', 'Bar', 'Jay', 'Foo', '百度官网', 'Bar']</generator> ログイン後にコピー (d) print(p.get_text()) ログイン後にコピー 输出结果: Foo Bar Jay Foo 百度官网 Bar ログイン後にコピー 【相关推荐:Python3视频教程 】 |
以上がPython クローラー パーサー BeautifulSoup4 を 1 つの記事で理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードはMacで利用できます。強力な拡張機能、GIT統合、ターミナル、デバッガーがあり、豊富なセットアップオプションも提供しています。ただし、特に大規模なプロジェクトまたは非常に専門的な開発の場合、コードと機能的な制限がある場合があります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。
