初心者が Python クローラーを使い始めるために知っておくべき 5 つのことは何ですか?

Python クローラーを使い始めたい場合はまず次の 4 つの問題を解決する必要があります。

  • Pythonプログラミングに精通している
  • HTML について学ぶ
  • Web クローリングの基本原則を理解する
  • Python クローラー ライブラリの使用方法を学ぶ

1. クローラーについて知っておくべきことは何ですか?

Web クローラーは、実際にはネットワーク データ収集と呼ばれ、理解しやすいです。

プログラミングによってネットワークサーバーにデータ(HTML形式)を要求し、そのHTMLを解析して必要なデータを抽出するものです。

これは 4 つの主要なステップに要約できます。

  1. URLに基​​づいてHTMLデータを取得する
  2. HTMLを解析して対象情報を取得する
  3. データの保存
  4. ステップ 1 を繰り返します

これには、データベース、Web サーバー、HTTP プロトコル、HTML、データ サイエンス、ネットワーク セキュリティ、画像処理などが含まれます。しかし、初心者の場合、それほどマスターする必要はありません。

2. Python をどの程度学習する必要がありますか?

Python を知らない場合は、(他の言語に比べて) 非常に簡単な言語である Python を最初に学ぶ必要があります。

プログラミング言語の基本的な構文は、データ型、データ構造、演算子、論理構造、関数、ファイル IO、エラー処理などにすぎません。学ぶのは退屈かもしれませんが、難しくはありません。

クローラーを始めたばかりの場合は、Python のクラスやマルチスレッド、モジュールなどの少し難しい内容を学ぶ必要さえありません。初心者向けの教科書やオンライン チュートリアルを探し、10 日以上費やすと、Python の基本を 30 ~ 40% 理解できるようになります。この時点で、クローラーで遊ぶことができます。

もちろん、この 10 日間で注意深くコードを入力し、文法ロジックを繰り返し噛み砕くことが前提です。たとえば、リスト、辞書、文字列、if 文、for ループなどの核となるものに精通している必要があります。心と手で。

Nuke.com にアクセスしてオンラインで練習することができます。この Python 入門質問シートでは、Hello World の初歩から実践的なタスク、データ分析、機械学習、どの関数を使用するか、どのように入力する必要があるかまで、非常に詳細にガイドします。出力。

教材の選択肢はたくさんありますが、個人的には前者は体系的で内容が充実しており、後者は簡潔なPython 公式ドキュメントPython Concise チュートリアル がおすすめです。

3. HTML を理解する必要がある理由

前述したように、クローラーがクロールしたいデータは Web ページの HTML の中に隠されているため、少しわかりにくくなります。

Wikipedia では HTML を次のように説明しています。

ハイパーテキスト マークアップ言語 ( 英語: Hyper Text Markup Language、略称: HTML ) は、 Web ページ 作成に使用される標準の マークアップ言語です。HTML は、Web ページ、Web アプリケーション、モバイル アプリケーションのユーザー インターフェイスを設計するために、 多くの Web サイトでCSSJavaScriptとともによく使用される基本テクノロジです [3]Web ブラウザはHTML ファイルを読み取り、それを視覚的な Web ページにレンダリングできます。HTML は、ヒントが提示されると Web サイトの構造的意味論を記述するため、 プログラミング言語ではなくマークアップ言語になります。

要約すると、HTML は Web ページの作成に使用されるマークアップ言語であり、テキスト、画像、その他のデータが埋め込まれており、これらのデータはブラウザーで読み取って、表示される Web ページにレンダリングできます。

データは HTML に隠されているため、最初に HTML をクロールしてからデータを解析します。

HTML の学習は難しくありません。HTML はプログラミング言語ではありません。マークアップ ルールを理解するだけで十分です。ここで簡単に説明しましょう。

HTML マークアップには、タグ (およびその属性)、文字ベースのデータ型、文字参照、エンティティ参照など、いくつかの重要な部分が含まれています。

HTML タグが最も一般的で、通常はwith となどのペアで表示されます<h1></h1>

これらのペアで現れるタグのうち、最初のタグが開始タグ、2 番目のタグが終了タグです。2 つのタグの間には、要素のコンテンツ (テキスト、画像など) が入ります。一部のタグにはコンテンツがなく、空の要素になります ( など) <img>

以下は、古典的なHello Worldプログラムの例です

HTML ドキュメントは、ネストされた HTML 要素で構成されます。これらは、 [56]のように山かっこで囲まれた HTML タグで表されます。<p>

一般に、要素は「開始タグ」と「終了タグ」という1 対のタグで表されますテキスト コンテンツを含む要素は、これらのタグの間に配置されます。<p></p>

4. Python Web クローラーの基本原理を理解する

Python クローラー プログラムを作成するときは、次の 2 つのことだけを行う必要があります。

  • GET リクエストを送信して HTML を取得します
  • HTMLを解析してデータを取得する

Python には、これら 2 つのことを行うのに役立つ対応するライブラリがあり、それらの使用方法を知る必要があるだけです。

5. Python ライブラリを使用して、Baidu ホームページのタイトルと写真をクロールします。

まず、HTML データのリクエストを送信するには、Python の組み込みライブラリ urllib を使用できます。このライブラリには、URL に基づいて HTML ファイルを取得できる urlopen 関数があります。ここでは、Baidu ホームページ「 https」HTML コンテンツを取得してみます。://www.baidu.com/ "で効果を確認してください。:

実際の Baidu ホームページの HTML がどのようなものかを見てみましょう。Google Chrome を使用している場合は、Baidu ホームページで [設定] > [その他のツール] > [開発者ツール] を開き、要素をクリックすると表示されます。 

比較すると、Python プログラムを通じて取得した HTML が Web ページ内の HTML と同じであることがわかります。

HTML を取得したら、次は HTML を解析しますが、必要なテキスト、画像、ビデオはすべて HTML 内に隠されているため、何らかの方法で必要なデータを抽出する必要があります。

Python には、HTML の解析に役立つ強力なライブラリも多数提供されています。ここでは、有名な Python ライブラリBeautifulSoup を、上記で取得した HTML を解析するツールとして使用します。

BeautifulSoup はサードパーティのライブラリであり、インストールして使用する必要があります。コマンドラインで pip を使用してインストールするだけです。

pip install bs4

BeautifulSoup は HTML コンテンツを構造化コンテンツに変換します。必要なのは構造化タグからデータを抽出することだけです。

このタイトルは、第 1 レベルのタグ <head><head> と第 2 レベルのタグ <title><title> の 2 つのタグで囲まれているので、タグから情報を取り出すだけです。

# 导入urlopen函数
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 打印标题
print(title)

以上で、Baidu ホームページのタイトルが正常に抽出されました。

Baidu ホームページのロゴ画像をダウンロードしたい場合はどうすればよいですか?

最初のステップは、Web ページのすべてのイメージ タグと URL を取得することです。タグに含まれる情報を抽出できる BeautifulSoup の findAll メソッドを使用できます。

一般的に、HTML 内のすべての画像情報は「img」タグ内にあるため、findAll("img") を通じてすべての画像の情報を取得できます。

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 使用find_all函数获取所有图片的信息
pic_info = obj.find_all('img')
# 分别打印每个图片的信息
for i in pic_info:
    print(i)

結果を見てみましょう:

class (要素クラス名)、src (リンクアドレス)、長さ、幅、高さなど、すべての画像の属性が出力されます。

Baidu のホームページのロゴの画像がありますが、その画像のクラス(要素クラス名)は、index-logo-src です。

[<img class="index-logo-src" height="129" hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" usemap="#mp" width="270"/>, <img alt="到百度首页" class="index-logo-src" src="//www.baidu.com/img/baidu_jgylogo3.gif" title="到百度首页"/>]

画像のリンク アドレスが src 属性に含まれていることがわかります。画像のリンク アドレスを取得する必要があります。

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 打印链接
print(logo_url)

結果:

アドレスを取得したら、urllib.urlretrieve 関数を使用してロゴ画像をダウンロードできます。

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 导入urlretrieve函数,用于下载图片
from urllib.request import urlretrieve
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 使用urlretrieve下载图片
urlretrieve(logo_url, 'logo.png')

最終的な画像は「logo.png」に保存されます

6. 結論

この記事では、Baidu ホームページのタイトルとロゴ画像をクロールする場合を例に、Python クローラーの基本原理と関連する Python ライブラリの使用法を説明します。これは比較的基本的なクローラーの知識であり、多くの優れた Python クローラー ライブラリとフレームワークが学習を待っています。後で。

もちろん、この記事で説明した知識ポイントをマスターしていれば、すでに Python クローラーに精通していることになります。さあ、坊や!

最後に、Python の実際の質問をブラッシュアップするための Web サイトもあります。

Niuke.com - 求人検索ツール | 筆記試験質問バンク | 面接体験談 | インターンシップ採用 ​​社内推薦、就活・就職のワンストップソリューション_Niuke.com www.nowcoder.com/link/pc_kol_zwj 編集者


知識ポイントを絞った特別演習や、自分で選べる問題集もあり、すべて無料でご利用いただけますので、興味のある方はぜひお試しください。

おすすめ

転載: blog.csdn.net/Everly_/article/details/133159008