python3クローラーの最初のステップは、Webページの基本情報を取得することです。

注:この一連の列には、単純なpython3言語の基礎が必要
です。クローラーの関連する役割についてはここでは説明しません。この一連の記事をクリックできる読者は、クローラーとは何か、何ができるかをすでに理解していると思います。これらはインターネット上で公開されている記事であるため、一連の記事は最初から最後までナレーションが付けられておらず、本の形で簡単に紹介されています。この記事では、クローラーの開発について簡単に説明します。

開始

クローラーの一般的な実装プロセスは次のとおりです。
ここに写真の説明を挿入
最初にUrlアドレスに要求を送信し、次にリモートサーバーがWebページ全体を返します。通常の状況では、ブラウザを使用してWebサイトにアクセスする場合、これは同じプロセスです。ユーザーがブラウザにアドレスを入力すると、ブラウザはサーバーリクエストを送信し、サーバーはリクエストされたコンテンツを返し、ブラウザはコンテンツを解析します。
次に、リクエストを送信した後、Webページ全体のコンテンツを取得します。
最後に、必要に応じてWebページ全体を解析し、通常の方法またはその他の方法で必要なデータを取得する必要があります。

Webページを取得するためのリクエストを送信します

一般に、リクエストの送信とWebページの取得は相互に実装されており、Webページのデータはリクエストが渡された後に取得されます。
リクエストライブラリを使用してWebリクエストを作成します。
コードは次のように記述されています。

import requests

url="https://www.baidu.com/"
headers = {
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
html=requests.get(url,headers=headers)
print(html.text)
  • import requests:リクエストモジュールの紹介
  • url="https://www.baidu.com/":要求するurl値を設定します。これがBaiduです。
  • headers:ブラウザからアクセスしているように見せかけるには、ヘッダーを追加して、ブラウザからアクセスしているように見せかける必要があります。
  • html=requests.get(url,headers=headers):リクエストはgetメソッドを使用して、ウェブサイトで設定されたURLの値をリクエストします。ヘッダーはヘッダーです。
  • print(html.text):戻り値htmlでテキストテキストを表示します。テキストテキストはWebページのソースコードです。

Webページを解析する

次に、ライブラリBeautifulSoupライブラリを使用する必要があります。BeautifulSoupは柔軟で便利なWebページ解析ライブラリです。bs4(BeautifulSoup)を使用すると、Webページの一般情報をすばやく取得できます。たとえば、取得したWebページのソースコードでタイトルタイトルを取得し、最初にbsライブラリをインポートする必要があります。

from bs4 import BeautifulSoup

次に、ビューティフルスープを使用して解析します。html.parserは、htmlコードを解析できるhtmlパーサーを表します。ここで、html.textは、次のようにhtmlとしてのWebページのソースコードです。

val = BeautifulSoup(html.text, 'html.parser')

解析後、タイトル値を取得する場合は、.titleを直接使用して取得できます。

print(val.title)

結果は次のとおりです。
ここに写真の説明を挿入
完全なコードは次のとおりです。

import requests
from bs4 import BeautifulSoup

url="https://www.baidu.com/"
headers = {
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
html=requests.get(url,headers=headers)
val = BeautifulSoup(html.text, 'html.parser')
print(val.title)

キャプチャしたファイルを保存する場合は、次のようにコードを記述できます。

f = open(r'D:\html.html',mode='w')
f.write(html.text)
f.close() 

上記のコードは、WebページのソースコードをディスクDのルートディレクトリに保存します。完全なコードは次のとおりです。

import requests
from bs4 import BeautifulSoup

url="https://www.baidu.com/"
headers = {
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
html=requests.get(url,headers=headers)
val = BeautifulSoup(html.text, 'html.parser')
print(val.title)
f = open(r'D:\html.html',mode='w')
f.write(html.text)
f.close() 

上記のコードは、エンコードと「文字化け」の状況で不整合がある可能性があり、次の方法で解決できます。

f = open(r'D:\html.html',mode='w',encoding="utf-8")

open関数で、コードをutf-8として追加するだけです。最終的に開いて保存したファイルは次のとおりです。
ここに写真の説明を挿入
一部のリソースは動的にロードされるため、取得されたリンクは時間に依存するため、表示されません。

このようにして、最も単純なクローラーが解決され、次の記事ではクローラーについてさらに学習します。

おすすめ

転載: blog.csdn.net/A757291228/article/details/107170282
おすすめ