(.*?)
.*?(.*?)
.*?通常、必要なデータを取得するには、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>这是一级标题</h2> <p>这是一段文本</p> </body> </html>
この HTML ページ コード例では、<!DOCTYPE html>
はドキュメント タイプ宣言です。 タグはページ全体のルートタグであり、
と
<body> は
## のサブタグです。 # タグを配置します。 <body>
タグの下のコンテンツがブラウザ ウィンドウに表示されます。コンテンツのこの部分は Web ページの本体であり、< の下のコンテンツはブラウザ ウィンドウに表示されます。 ;head>
タグはブラウザ ウィンドウには表示されません。ブラウザ ウィンドウには表示されますが、通常 Web ページのヘッダーと呼ばれる、ページの重要なメタ情報が含まれています。 HTML ページの一般的なコード構造は次のとおりです。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
<html>
<head>
<!-- 页面的元信息,如字符编码、标题、关键字、媒体查询等 -->
</head>
<body>
<!-- 页面的主体,显示在浏览器窗口中的内容 -->
</body>
</html></pre><div class="contentsignin">ログイン後にコピー</div></div>
タグ、カスケード スタイル シート (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>这是一级标题</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>这是一级标题</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>这是一级标题</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 サイトの他の関連記事を参照してください。 このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
![]() ホットAIツール![]() Undresser.AI Undressリアルなヌード写真を作成する AI 搭載アプリ ![]() AI Clothes Remover写真から衣服を削除するオンライン AI ツール。 ![]() Undress AI Tool脱衣画像を無料で ![]() Clothoff.ioAI衣類リムーバー ![]() AI Hentai GeneratorAIヘンタイを無料で生成します。 ![]() 人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1 か月前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最高のグラフィック設定
1 か月前
By 尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
2週間前
By DDD
R.E.P.O.誰も聞こえない場合はオーディオを修正する方法
1 か月前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.チャットコマンドとそれらの使用方法
1 か月前
By 尊渡假赌尊渡假赌尊渡假赌
![]() ホットツール![]() メモ帳++7.3.1使いやすく無料のコードエディター ![]() SublimeText3 中国語版中国語版、とても使いやすい ![]() ゼンドスタジオ 13.0.1強力な PHP 統合開発環境 ![]() ドリームウィーバー CS6ビジュアル Web 開発ツール ![]() SublimeText3 Mac版神レベルのコード編集ソフト(SublimeText3) ![]() ホットトピック
Gmailメールのログイン入り口はどこですか?
![]() ![]()
CakePHP チュートリアル
![]() ![]()
Steamのアカウント名の形式は何ですか
![]() ![]()
NYTの接続はヒントと回答です
![]() ![]() ![]() htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。 ![]() PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。 ![]() DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。 ![]() Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする: ![]() PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。 ![]() MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。 ![]() NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。 ![]() Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所 ![]() |