(.*?)
.*?(.*?)
.*?通常、必要なデータを取得するには、Web クロールされたページを解析する必要があります。 HTMLタグの結合構造を解析することで、Webページに含まれる有益な情報を抽出することができます。 Python では、HTML を解析する一般的な方法が 3 つあります。それは、正規表現解析、XPath 解析、および CSS セレクタ解析です。
HTML 解析方法を説明する前に、HTML ページの基本構造を理解することが前提条件です。ブラウザで Web サイトを開き、マウスの右クリック メニューから [Web ページのソース コードの表示] メニュー項目を選択すると、Web ページに対応する HTML コードが表示されます。 HTML コードは通常、タグ、属性、テキストで構成されます。ラベルにはページに表示されるコンテンツが含まれ、属性はラベル情報を補足し、テキストはラベルによって表示されるコンテンツです。以下は、単純な HTML ページ コード構造の例です。
<!DOCTYPE html> <html> <head> <!-- head 标签中的内容不会在浏览器窗口中显示 --> <title>这是页面标题</title> </head> <body> <!-- body 标签中的内容会在浏览器窗口中显示 --> <h2 id="这是一级标题">这是一级标题</h2> <p>这是一段文本</p> </body> </html>
この HTML ページ コード例では、 はドキュメント タイプ宣言です。 <code> タグはページ全体のルートタグであり、
と
は
## のサブタグです。 # タグを配置します。 タグの下のコンテンツがブラウザ ウィンドウに表示されます。コンテンツのこの部分は Web ページの本体であり、
< の下のコンテンツはブラウザ ウィンドウに表示されます。 ;head>
タグはブラウザ ウィンドウには表示されません。ブラウザ ウィンドウには表示されますが、通常 Web ページのヘッダーと呼ばれる、ページの重要なメタ情報が含まれています。 HTML ページの一般的なコード構造は次のとおりです。 <pre class='brush:php;toolbar:false;'><!DOCTYPE html>
<html>
<head>
<!-- 页面的元信息,如字符编码、标题、关键字、媒体查询等 -->
</head>
<body>
<!-- 页面的主体,显示在浏览器窗口中的内容 -->
</body>
</html></pre>
タグ、カスケード スタイル シート (CSS)、および JavaScript は、HTML ページを構成する 3 つの基本コンポーネントです。タグはページに表示されるコンテンツを運ぶために使用され、CSS はページのレンダリングを担当し、JavaScript はページのインタラクティブな動作を制御するために使用されます。 HTML ページを解析するには、もともと XML のクエリ構文である XPath 構文を使用できます。HTML タグの階層構造に基づいて、コンテンツやタグ内のタグ属性を抽出できます。さらに、CSS セレクターを使用してページを見つけることもできます. 要素は、CSS を使用してページ要素をレンダリングするのと同じです。
XPath 解析
XPath パス式はファイル パス構文に似ており、「/」と「//」を使用してノードを選択できます。ルート ノードを選択する場合は単一のスラッシュ「/」を使用でき、任意の位置のノードを選択する場合は二重スラッシュ「//」を使用できます。例えば、「/bookstore/book」は、ルートノードbookstoreの下にあるすべてのbookサブノードを選択することを意味し、「//title」は、任意の位置のタイトルノードを選択することを意味します。
XPath は述語を使用してノードをフィルタリングすることもできます。角括弧内のネストされた式には、数値、比較演算子、または述語として機能する関数呼び出しを指定できます。たとえば、「/bookstore/book[1]」は書店の最初の子ノード book を選択することを意味し、「//book[@lang]」は lang 属性を持つすべての book ノードを選択することを意味します。
XPath 関数には、文字列関数、数学関数、論理関数、ノード関数、シーケンス関数などの関数が含まれており、これらの関数を使用して、ノードの選択、値の計算、データ型の変換、その他の操作を行うことができます。たとえば、「string-length(string)」関数は文字列の長さを返すことができ、「count(node-set)」関数はノード セット内のノードの数を返すことができます。
以下の例を使用して、XPath を使用してページを解析する方法を説明します。次の XML ファイルがあるとします。
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="zh">Learning XML</title> <price>39.95</price> </book> </bookstore>
この XML ファイルでは、以下に示すように XPath 構文を使用してドキュメント内のノードを取得できます。
//book | |||||||||||
//@lang | |||||||||||
/bookstore/book[1] | |||||||||||
CSS 选择器解析通过HTML标签的属性和关系来定位元素的方式被称为CSS选择器。根据 HTML 标签的层级结构、类名、id 等属性能够确定元素的位置。在 Python 中,我们可以使用 BeautifulSoup 库来进行 CSS 选择器解析。 我们接下来会举一个例子,讲解如何运用 CSS 选择器来分析页面。假设我们有如下的 HTML 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>这是页面标题</title> </head> <body> <div class="content"> <h2 id="这是一级标题">这是一级标题</h2> <p>这是一段文本</p> </div> <div class="footer"> <p>版权所有 © 2021</p> </div> </body> </html> 我们可以使用如下所示的 CSS 选择器语法来选取页面元素。
正则表达式解析用正则表达式可以解析 HTML 页面,从而实现文本的匹配、查找和替换。使用 re 模块可以进行 Python 的正则表达式解析。 下面我们通过一个例子来说明如何使用正则表达式对页面进行解析。假设我们有如下的 HTML 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>这是页面标题</title> </head> <body> <div class="content"> <h2 id="这是一级标题">这是一级标题</h2> <p>这是一段文本</p> </div> <div class="footer"> <p>版权所有 © 2021</p> </div> </body> </html> 我们可以使用如下所示的正则表达式来选取页面元素。 import re html = ''' <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>这是页面标题</title> </head> <body> <div class="content"> <h2 id="这是一级标题">这是一级标题</h2> <p>这是一段文本</p> </div> <div class="footer"> <p>版权所有 © 2021</p> </div> </body> </html> ''' pattern = re.compile(r' 以上代码中,我们使用 re 模块的 compile 方法来编译正则表达式,然后使用 search 方法来匹配 HTML 代码。在正则表达式中,“.*?”表示非贪婪匹配,也就是匹配到第一个符合条件的标签就停止匹配,而“re.S”表示让“.”可以匹配包括换行符在内的任意字符。最后,我们使用 group 方法来获取匹配的结果。 |
以上がPython クローラーを使用して HTML ページを解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。
PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。
Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。
2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。
Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。
2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。
10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...
fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法
リアルなヌード写真を作成する AI 搭載アプリ
写真から衣服を削除するオンライン AI ツール。
脱衣画像を無料で
AI衣類リムーバー
AIヘンタイを無料で生成します。
ビジュアル Web 開発ツール
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
SublimeText3 Linux 最新バージョン
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
便利なJavaScript開発ツール