Web ページのクローリングとは、実際には URL を通じて Web ページの情報を取得することであり、Web ページの情報の本質は、JavaScript と CSS が追加された HTML コードです。 Python は、Web ページ情報を取得するためのサードパーティ モジュール、requests を提供します。requests モジュールは、それ自体を「HTTP for Humans」と呼びます。これは、文字通り人間専用に設計された HTTP モジュールを意味します。このモジュールは、リクエストの送信と応答の取得をサポートします。
リクエスト モジュールには、HTTP リクエストを送信するための多くの関数が用意されており、一般的に使用されるリクエスト関数を表 10-1 に示します。
表 10-1 リクエスト モジュールのリクエスト関数
によって提供される Response クラス オブジェクトリクエスト モジュールは、クライアント リクエストに動的に応答し、ユーザーに送信される情報を制御し、ステータス コードや Web ページ コンテンツなどの応答を動的に生成するために使用されます。次に、表 10-2 に示すように、表を使用して、Response クラスが取得できる情報をリストします。
表 10-2 Response クラスの共通属性
次に、ケースを使用して、リクエスト モジュールを使用して Baidu Web をクロールする方法を示します。
# 01 requests baidu import requests base_url = 'http://www.baidu.com' #发送GET请求 res = requests.get (base_url) print("响应状态码:{}".format(res.status_code))#获取响应状态码 print("编码方式:{}".format(res.encoding))#获取响应内容的编码方式 res.encoding = 'utf-8'#更新响应内容的编码方式为UIE-8 print("网页源代码:n{}".format(res.text)) #获取响应内容
上記のコードでは、行 2 で import を使用してリクエスト モジュールをインポートし、コードの行 3 ~ 4 で URL に基づいて GET リクエストをサーバーに送信します。変数 res を使用して、サーバーから返された応答コンテンツを受け取ります。コードの 5 行目 ~ コードの 6 行目は、ステータス コードと応答コンテンツのエンコード方式を出力します。7 行目は、応答コンテンツのエンコード方式を「utf-」に変更します。 8"; コードの 8 行目は応答の内容を出力します。プログラムを実行します。プログラムの出力は次のとおりです:
响应状态码:200 编码方式:ISO-8859-1 网页源代码: <!DOCTYPE html> <!–-STATUS OK--><html> <head><meta http-equiv=content-type content=text/html; charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content= always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic. com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc>…省略N行…</body></html>
リクエスト モジュールを使用して Web ページをクロールする場合、ネットワーク接続がない、サーバー接続がないなどの理由でさまざまな例外が発生する可能性があることに注意してください。最も一般的な例外は URLError と HTTPError です。これらのネットワーク例外は、try...Except ステートメントを使用してキャプチャおよび処理できます。
以上がRequests モジュールを使用して Web ページをクロールするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。