PythonのRequestsモジュールの使い方を詳しく解説
Requests モジュールは、ネットワーク アクセスに使用されるモジュールです。実際、urllib、urllib2、httplib、httplib2 など、基本的に同様の機能を提供するモジュールが多数あります。なぜ Requests モジュールが目立つのでしょうか。公式ウェブサイトを開いて見てください。これは「人間」用の http モジュールです。それで、それはどれほど人間的ですか?これまでに urllib などのモジュールを使用したことがある場合は、これが非常に使いやすいことがわかると思います。
1. インポート
ダウンロードが完了したら、モジュールのインポートは非常に簡単です。コードは次のとおりです:
import requests
2. リクエスト URL
ここでは、get リクエストまたは post リクエストを送信するための最も一般的な構文をリストします。
1. パラメーターなしで get リクエストを送信します。
r=requests.get("http://php.cn/justTest")
これで、応答オブジェクト r を取得できます。このオブジェクトを使用して、必要な情報を取得できます。
上記の例では、get リクエストにパラメータがありません。リクエストにパラメータが必要な場合はどうなりますか?
2. パラメーターを指定して get リクエストを送信します
payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://php.cn/justTest", params=payload)
上記からわかるように、get パラメーターは params キーワード パラメーターとして渡されます。
リクエストされた特定の URL を出力して、それが正しいかどうかを確認できます:
>>>print r.url http://pythontab.com/justTest?key2=value2&key1=value1
正しい URL が実際にアクセスされたことがわかります。
リクエスト パラメータにリストを渡すこともできます:
>>> payload = {'key1': 'value1', 'key2': ['value2', 'value3']} >>> r = requests.get("http://php.cn/justTest", params=payload) >>> print r.url http://pythontab.com/justTest?key1=value1&key2=value2&key2=value3
上記は get リクエストの基本形式です。
3. 投稿リクエストを送信します
r = requests.post("http://php.cn/postTest", data = {"key":"value"})
上記からわかるように、投稿リクエストのパラメーターは data キーワード パラメーターとともに渡されます。
現在のデータパラメータは辞書を渡します。次のように、json 形式のデータを渡すこともできます。
>>> import json >>> import requests >>> payload = {"key":"value"} >>> r = requests.post("http://php.cn/postTest", data = json.dumps(payload))
json 形式のデータを送信するのが一般的であるため、json のキーがリクエストの上位バージョンに追加されました。 Word パラメーターを使用すると、json モジュールを使用せずに json データを投稿リクエストに直接送信できます。以下を参照してください:
>>> payload = {"key":"value"} >>> r = requests.post("http://php.cn/postTest", json=payload)
ファイルを投稿したい場合はどうすればよいですか?現時点では、files パラメーターを使用する必要があります:
>>> url = 'http://php.cn/postTest' >>> files = {'file': open('report.xls', 'rb')} >>> r = requests.post(url, files=files) >>> r.text
ファイルを投稿するときにファイル名などの追加情報を指定することもできます:
>>> url = 'http://php.cn/postTest' >>> files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})} >>> r = requests.post(url, files=files)
ヒント: ファイルを開くにはバイナリ モードを使用することを強くお勧めします。テキストファイル形式で開いた場合、「Content-Length」ヘッダーによりエラーが発生する可能性があります。
ご覧のとおり、リクエストを使用してリクエストを送信するのは簡単です。
3. 返品情報を取得する
リクエストを送信した後に返品情報を取得する方法を見てみましょう。上の例を引き続き使用してみましょう:
>>> import requests >>> r=requests.get('http://php.cn/justTest') >>> r.text
r.text はどのようなエンコード形式で出力されますか?
>>> r.encoding 'utf-8'
utf-8形式で出力されることが分かりました。 r.text の出力形式を変更したい場合はどうすればよいですか?
>>> r.encoding = 'ISO-8859-1'
これにより、出力形式が「ISO-8859-1」に変更されます。
r.contentという出力ステートメントもありますが、これとr.textの違いは何でしょうか? r.content はバイト ストリームを返します。これは、画像アドレスを要求し、画像を保存したい場合に使用できます。コード スニペットは次のとおりです。
def saveImage( imgUrl,imgName ="default.jpg" ): r = requests.get(imgUrl, stream=True) image = r.content destDir="D:\" print("保存图片"+destDir+imgName+"\n") try: with open(destDir+imgName ,"wb") as jpg: jpg.write(image) return except IOError: print("IO Error") return finally: jpg.close
先ほど紹介した r.text は文字列を返します。リクエストに対するレスポンスがjsonになっているのですが、json形式のデータを直接取得することはできますか? r.json() はこれのために用意されています。
r.raw.read() を使用するだけで、サーバーから返された元のデータを取得することもできます。ただし、本当に元の戻りデータを取得したい場合は、リクエスト時に次のように「stream=True」オプションを追加することを忘れないでください:
r = requests.get('https://api.github.com/events', stream=True)。
応答ステータス コードを取得することもできます:
>>> r = requests.get('http://php.cn/justTest') >>> r.status_code 200
リクエストを使用することもできます。 ok は戻り値 200 を指します:
>>> r.status_code == requests.codes.ok True
4. ヘッダーに関しては、応答ヘッダーを出力できます:
>>> r= requests.get("http://php.cn/justTest") >>> r.headers
`r.headers` は辞書を返します。例:
{ 'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'connection': 'close', 'server': 'nginx/1.0.4', 'x-runtime': '147ms', 'etag': '"e1ca502697e5c9317743dc078f67693a"', 'content-type': 'application/json' }
判定のためにいくつかの応答ヘッダーを取得するには、次のメソッドを使用します:
r.headers['Content-Type']
または
r.headers.get('Content-Type')
リクエストヘッダー (つまり、サーバーに送信するヘッダー情報) を取得したい場合はどうすればよいでしょうか? r.request.headers を使用して直接取得できます。
同時に、データをリクエストするときにカスタムヘッダー (ヘッダーのキーワードパラメータを介して渡される) を追加することもできます:
>>> headers = {'user-agent': 'myagent'} >>> r= requests.get("http://php.cn/justTest",headers=headers)
5. Cookie について
応答に Cookie が含まれている場合、次のメソッドを使用してそれらを取得できます:
>>> url = 'http://www.php.cn' >>> r = requests.get(url) >>> r.cookies['example_cookie_name'] 'example_cookie_value'
独自の Cookie を送信することもできます (Cookie キーワード パラメーターを使用):
>>> url = 'http://php.cn/cookies' >>> cookies={'cookies_are':'working'} >>> r = requests.get(url, cookies=cookies)
6. リダイレクトについて
URL をリクエストすると、サーバーが自動的にリクエストをリダイレクトします (例: github は http リクエストを https にリダイレクトします)。リクエスト。 r.history を使用してリダイレクトを表示できます:
>>> r = requests.get('http://php.cn/') >>> r.url 'http://php.cn/' >>> r.history []
上の例からわかるように、アクセスには http プロトコルを使用しますが、r.url では https プロトコルが出力されます。では、サーバーが http プロトコルを使用することを主張する場合、つまりサーバーが自動的にリダイレクトすることを禁止する場合はどうすればよいでしょうか? allow_redirects パラメータを使用します:
r = requests.get('http://php.cn', allow_redirects=False)
7. リクエスト時間について
timeout パラメータを使用して URL のリクエスト タイムアウトを設定できます (時間単位は秒):
requests.get('http://php.cn', timeout=1)
8. プロキシについて
次のように、http または https アクセス用のプロキシ プログラムで指定します (proxies キーワード パラメーターを使用)。proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
requests.get("http://php.cn", proxies=proxies)
ログイン後にコピー九、关于session
proxies = { "http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080", } requests.get("http://php.cn", proxies=proxies)
我们有时候会有这样的情况,我们需要登录某个网站,然后才能请求相关url,这时就可以用到session了,我们可以先使用网站的登录api进行登录,然后得到session,最后就可以用这个session来请求其他url了:
s=requests.Session() login_data={'form_email':'youremail@example.com','form_password':'yourpassword'} s.post("http://pythontab.com/testLogin",login_data) r = s.get('http://pythontab.com/notification/') print r.text
其中,form_email和form_password是豆瓣登录框的相应元素的name值。
十、下载页面
使用Requests模块也可以下载网页,代码如下:
r=requests.get("http://www.php.cn") with open("haha.html","wb") as html: html.write(r.content) html.close()
以上がPythonのRequestsモジュールの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









羽毛の鍵は、その漸進的な性質を理解することです。 PS自体は、勾配曲線を直接制御するオプションを提供しませんが、複数の羽毛、マッチングマスク、および細かい選択により、半径と勾配の柔らかさを柔軟に調整して、自然な遷移効果を実現できます。

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

この記事では、MySQLデータベースの操作を紹介します。まず、MySQLWorkBenchやコマンドラインクライアントなど、MySQLクライアントをインストールする必要があります。 1. mysql-uroot-pコマンドを使用してサーバーに接続し、ルートアカウントパスワードでログインします。 2。CreatedAtaBaseを使用してデータベースを作成し、データベースを選択します。 3. createTableを使用してテーブルを作成し、フィールドとデータ型を定義します。 4. INSERTINTOを使用してデータを挿入し、データをクエリし、更新することでデータを更新し、削除してデータを削除します。これらの手順を習得することによってのみ、一般的な問題に対処することを学び、データベースのパフォーマンスを最適化することでMySQLを効率的に使用できます。

PSフェザーリングは、イメージエッジブラー効果であり、エッジエリアのピクセルの加重平均によって達成されます。羽の半径を設定すると、ぼやけの程度を制御でき、値が大きいほどぼやけます。半径の柔軟な調整は、画像とニーズに応じて効果を最適化できます。たとえば、キャラクターの写真を処理する際に詳細を維持するためにより小さな半径を使用し、より大きな半径を使用してアートを処理するときにかすんだ感覚を作成します。ただし、半径が大きすぎるとエッジの詳細を簡単に失う可能性があり、効果が小さすぎると明らかになりません。羽毛効果は画像解像度の影響を受け、画像の理解と効果の把握に従って調整する必要があります。

MySQLパフォーマンスの最適化は、インストール構成、インデックス作成、クエリの最適化、監視、チューニングの3つの側面から開始する必要があります。 1。インストール後、INNODB_BUFFER_POOL_SIZEパラメーターやclose query_cache_sizeなど、サーバーの構成に従ってmy.cnfファイルを調整する必要があります。 2。過度のインデックスを回避するための適切なインデックスを作成し、説明コマンドを使用して実行計画を分析するなど、クエリステートメントを最適化します。 3. MySQL独自の監視ツール(ShowProcessList、ShowStatus)を使用して、データベースの健康を監視し、定期的にデータベースをバックアップして整理します。これらの手順を継続的に最適化することによってのみ、MySQLデータベースのパフォーマンスを改善できます。

mysqlダウンロードファイルは破損していますが、どうすればよいですか?残念ながら、MySQLをダウンロードすると、ファイルの破損に遭遇できます。最近は本当に簡単ではありません!この記事では、誰もが迂回を避けることができるように、この問題を解決する方法について説明します。それを読んだ後、損傷したMySQLインストールパッケージを修復するだけでなく、将来の行き詰まりを避けるために、ダウンロードとインストールプロセスをより深く理解することもできます。最初に、ファイルのダウンロードが破損した理由について話しましょう。これには多くの理由があります。ネットワークの問題は犯人です。ダウンロードプロセスの中断とネットワーク内の不安定性は、ファイル腐敗につながる可能性があります。ダウンロードソース自体にも問題があります。サーバーファイル自体が壊れており、もちろんダウンロードすると壊れています。さらに、いくつかのウイルス対策ソフトウェアの過度の「情熱的な」スキャンもファイルの破損を引き起こす可能性があります。診断問題:ファイルが本当に破損しているかどうかを判断します

MySQLのインストール障害の主な理由は次のとおりです。1。許可の問題、管理者として実行するか、SUDOコマンドを使用する必要があります。 2。依存関係が欠落しており、関連する開発パッケージをインストールする必要があります。 3.ポート競合では、ポート3306を占めるプログラムを閉じるか、構成ファイルを変更する必要があります。 4.インストールパッケージが破損しているため、整合性をダウンロードして検証する必要があります。 5.環境変数は誤って構成されており、環境変数はオペレーティングシステムに従って正しく構成する必要があります。これらの問題を解決し、各ステップを慎重に確認して、MySQLを正常にインストールします。

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。
