リクエスト ライブラリの基本的な使い方
インストール
リクエスト ライブラリを Python で使用するには、まず pip を使用してインストールする必要があります。これを行うには、ターミナルで次のコマンドを実行します。
pip install requests
Using
ライブラリがインストールされたら、それを使用して HTTP リクエストを行うことができます。以下は、GET リクエストの作成方法の例です。
import requests response = requests.get('https://www.baidu.com') print(response.text)
この例では、リクエスト ライブラリをインポートし、get メソッドを使用して https://www.baidu への GET リクエストを作成します。コム。サーバーの応答は応答変数に保存され、応答テキストをコンソールに出力します。
get メソッドにパラメータを渡して、リクエストにクエリ パラメータを含めることもできます。
import requests params = {'key1': 'value1', 'key2': 'value2'} response = requests.get('https://www.example.com', params=params) print(response.url)
この例では、クエリ パラメータの辞書を get メソッドの params パラメータに渡します。生成された URL にはクエリ パラメーターが含まれており、その URL をコンソールに出力します。
post メソッドを使用して POST リクエストを行うこともできます。
import requests data = {'key1': 'value1', 'key2': 'value2'} response = requests.post('https://www.example.com', data=data) print(response.text)
この例では、データのディクショナリを post メソッドの data パラメータに渡します。データはリクエストの本文で送信され、応答テキストがコンソールに出力されます。
独自の翻訳インターフェイスを開発する
Baidu 翻訳を分析する
Baidu 翻訳アドレスを開き、F12
を押して開発者モードを開き、翻訳済みのテキストを入力します。 「翻訳」をクリックします。下の図を見ると、要求されたアドレスと要求されたパラメータがはっきりとわかります。
Baidu Translation が投稿を https://fanyi.baidu.com に送信します。 /v2transapi リクエストでは、送信されるデータの符号のみが常に変化しているため、v2transapi を検索すると、送信したいデータ文字列を通じて署名フィールドが js によって暗号化されていることがわかりました。
js 分析によると、暗号化のキー コードは次のとおりです。
fake_useragent、異なる
User-Agent をランダムに生成します。キーコードは次のとおりです:
from fake_useragent import UserAgent headers = {'User-Agent': UserAgent().random}2.
sign パラメータを生成します. 暗号化された
js コードを理解できないため、
python# を直接呼び出します## サードパーティ ライブラリは js
コードを実行します。使用する前に execjs
ライブラリをインストールする必要があります。次のコードを実行します: <pre class='brush:php;toolbar:false;'>pip3 install PyExecJS</pre>
のメソッドこのライブラリの使用も非常に簡単です。たとえば、Baidu の暗号化された
コードを抽出し、新しい js
ファイルを作成し、その中にコンテンツをコピーしたことはすでに述べました。キー コードは次のとおりです。 <pre class='brush:php;toolbar:false;'> def generate_sign(self,query):
try:
if os.path.isfile("./baidu.js"):
with open("./baidu.js", &#39;r&#39;, encoding="utf-8") as f:
baidu_js = f.read()
ctx = execjs.compile(baidu_js)
return ctx.call(&#39;b&#39;, query)
except Exception as e:
print(e)</pre>
まず、js ファイルをキャッシュに読み込み、次に
を通じてオブジェクトを呼び出します。最後に、js
ファイル内のメソッドは、call
メソッドを呼び出すことによって実行されます。ここで、b
は js
に対応するメソッドであり、query
は、js
の b
メソッドのパラメーターです。 呼び出しが成功すると、戻り値は次のようになります:
3.
値を取得し、ソース コードを確認します。 Baidu 翻訳ページの findtoken
がページに保存されているため、token
.
res = request.get("https://fanyi.baidu.com").content.decode() token = re.findall(r"token: '(.*)',", res, re.M)[0]

url = 'https://fanyi.baidu.com/v2transapi' sign = generate_sign("你好") data = { "from": "zh", "to": 'en', "query": "你好", "transtype": "translang", "simple_means_flag": "3", "sign": sign, "token": self.token, "domain": "common" } res = requests.post( url=url, params={"from": "zh", "to": 'en'}, data=data, headers = { 'User-Agent': UserAgent().random, } ) res.json().get("trans_result").get("data")[0].get("dst")
リクエストが成功すると、次の画像が返されます。
実際の呼び出しを通じて、次のことがわかります。すべてのリクエストが成功するわけではないため、複数のリクエストを作成し、ループ操作を実行し、それがクリアされて成功したときにループから抜け出す必要があります。キー コードは次のとおりです:
tryTimes = 0 try: while tryTimes < 100: res = self.session.post( url=url, params={"from": fromLan, "to": toLan}, data=data, ) if "trans_result" in res.text: break tryTimes += 1 return res.json().get("trans_result").get("data")[0].get("dst")
この方法では、Baidu 翻訳インターフェイスを使用して独自の翻訳インターフェイス呼び出しを行うことが完了しました。
Flask または Fastapi
を使用して、独自のニーズに応じて API インターフェイスを開発できます。以下はすべてのコードです<pre class='brush:php;toolbar:false;'>import requests
import execjs
import os
import re
import json
from loguru import logger
from fake_useragent import UserAgent
class Baidu_translate:
def __init__(self):
self.session=request.Session()
self.session.headers={
&#39;User-Agent&#39;: UserAgent( ).random,
"Host":"fanyi.baidu.com",
"X-Requested-With":"XMLHttpRequest",
"sec-ch-ua":&#39;"Not?A_Brand";="8","Chromium";v="108","Microsoft Edge";V="108",
"sec-ch-ua-mobile":"?0",
"Sec-Fetch-Dest":"document",
"Sec-Fetch-Mode":"navigate",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User":"?1",
"Connection":"keep-alive",
}
self.session.get("https://fanyi.baidu.com" )
res = self.session.get("https://fanyi.baidu.com").content.decode( )
self.token = re.findall(r"token: &#39;(.*)&#39;,",res,re.M)[0]
def generate_sign(self,query):
try:
if os.path.isfile("./baidu.js"):
with open("./baidu.js",&#39;r&#39;,encoding="utf-8") as f:
baidu_js = f.read( )
ctx = execjs.compile(baidu_js)
return ctx.call(&#39;b&#39;,query)
except Exception as e:
print(e)
def lang_detect(self,src: str) -> str:
url = "https://fanyi.baidu.com/langdetect"
fromLan = self.session.post(url, data={"query": src}).json()["lan"]
return fromLan
def translate(self,query: str, tolan: str = "", fromLan: str = "") -> str:
if fromLan == "":
fromLan = self.lang_detect(query)
if toLan == "":
toLan = "zh" if fromLan != "zh" else "en"
url = &#39;https://fanyi.baidu.com/v2transapi&#39;
sign = self.generate_sign(query)
data = {
"from" : fromLan,
"to": toLan,
"query": query,
"transtype":"translang",
"simple_means_flag":"3",
"sign" : sign,
"token": self.token,
"domain":"common"
}
tryTimes = 0
try:
while tryTimes < 100:
res = self.session.post(
url=url,
params={"from": fromLan,"to": toLan},
data=data,
)
if "trans_result" in res.text:
break
tryTimes +=1
return res.json().get("trans_result").get("data")[0].get("dst")
except Exception as e:
print(e)
def test():
url =&#39;https://fanyi.baidu.com/v2transapi&#39;
sign = generate_sign("你好")
data = {
"from":"zh",
"to":&#39; en&#39;,
"query":"你好",
"transtype":"translang",
"simple_means_flag":"3",
"sign": sign,
"token": self.token,
"domain": "common"
}
res = requests.post(
url=url,
params={"from": "zh","to":&#39;en&#39;},
data=data,
headers = {
&#39;User-Agent&#39;: UserAgent( ).random,
}
)
res .json()
if _name__ == "__main__":
baidu_tran = Baidu_Translate()
sign = baidu_tran.generate_sign("你好")</pre>
以上がリクエストライブラリを使用してPythonで翻訳インターフェースを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonArraysSupportVariousoperations:1)SlicingExtractsSubsets、2)Appending/ExtendingAdddesements、3)inSertingSelementSatspecificpositions、4)remvingingDeletesements、5)sorting/verversingsorder、and6)listenionsionsionsionsionscreatenewlistsebasedexistin

numpyarraysAressertialentionsionceivationsefirication-efficientnumericalcomputations andDatamanipulation.theyarecrucialindatascience、mashineelearning、物理学、エンジニアリング、および促進可能性への適用性、scaledatiencyを効率的に、forexample、infinancialanalyyy

UseanArray.ArrayOverAlistinPythonは、Performance-criticalCode.1)homogeneousdata:araysavememorywithpedelements.2)Performance-criticalcode:Araysofterbetterbetterfornumerumerumericaleperations.3)interf

いいえ、notallistoperationSaresuptedbyarrays、andviceversa.1)arraysdonotsupportdynamicoperationslikeappendorintorintorinsertizizing、whosimpactsporformance.2)リスト

toaccesselementsinapythonlist、useindexing、negativeindexing、slicing、oriteration.1)indexingstartsat0.2)negativeindexingAcsesess.3)slicingextractStions.4)reterationSuseSuseSuseSuseSeSeS forLoopseCheckLentlentlentlentlentlentlenttodExeror。

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版
便利なJavaScript開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









