Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam Python

王林
Lepaskan: 2023-05-14 22:13:22
ke hadapan
943 orang telah melayarinya

Penggunaan asas perpustakaan permintaan

Pemasangan

Untuk menggunakan perpustakaan permintaan dalam Python, anda perlu memasangnya menggunakan pip terlebih dahulu. Anda boleh melakukan ini dengan menjalankan arahan berikut dalam terminal:

pip install requests
Salin selepas log masuk

Gunakan

Setelah anda memasang pustaka, anda boleh menggunakannya untuk membuat permintaan HTTP. Berikut ialah contoh cara membuat permintaan GET:

import requests

response = requests.get('https://www.baidu.com')
print(response.text)
Salin selepas log masuk

Dalam contoh ini, kami mengimport perpustakaan permintaan dan kemudian menggunakan kaedah get untuk membuat permintaan GET ke https://www.baidu.com . Respons pelayan disimpan dalam pembolehubah tindak balas dan kami mencetak teks respons ke konsol.

Anda juga boleh menghantar parameter kepada kaedah get untuk memasukkan parameter pertanyaan dalam permintaan:

import requests

params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://www.example.com', params=params)
print(response.url)
Salin selepas log masuk

Dalam contoh ini, kami menghantar kamus parameter pertanyaan kepada parameter params kaedah get. URL yang dijana akan termasuk parameter pertanyaan dan kami mencetak URL ke konsol.

Anda juga boleh menggunakan kaedah siaran untuk membuat permintaan POST:

rreee

Dalam contoh ini, kami menghantar kamus data kepada parameter data kaedah siaran. Data akan dihantar dalam kandungan permintaan dan kami mencetak teks respons ke konsol.

Bangunkan antara muka terjemahan anda sendiri

Analisis terjemahan Baidu

Buka alamat terjemahan Baidu, kemudian tekan F12 untuk membuka mod pembangun, masukkan kandungan yang diterjemahkan, klik Terjemah , dan lulus Dalam gambar di bawah, anda boleh melihat dengan jelas alamat yang diminta dan parameter yang diminta

Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam Python

Terjemahan Baidu menghantar permintaan pos ke https://fanyi.baidu.com/ v2transapi. Hanya tanda dalam data yang sentiasa berubah.

Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam Python

Melalui analisis js Baidu Translation, kod utama untuk penyulitan adalah seperti berikut:

Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam Python

Kini sudah jelas Keseluruhan proses panggilan dilindungi, dan semua parameter boleh dibina sendiri. Dengan cara ini anda boleh menulis kod.

Tulis kod antara muka

1 Untuk mengelakkan kegagalan permintaan, kami perlu meniru permintaan penyemak imbas dan menambah pengepala permintaan semasa membuat permintaan Kami menggunakan fake_useragent perpustakaan pihak ketiga ini secara rawak menjana User-Agent yang berbeza. Kod kunci adalah seperti berikut:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://www.example.com', data=data)
print(response.text)
Salin selepas log masuk

2. Hasilkan parameter sign Memandangkan kami tidak dapat memahami kod js yang disulitkan, kami terus memanggil perpustakaan pihak ketiga python untuk melaksanakan <🎜. > kod. Ia perlu dipasang sebelum digunakan js pustaka, jalankan kod berikut: execjs

from fake_useragent import UserAgent
headers = {&#39;User-Agent&#39;: UserAgent().random}
Salin selepas log masuk

Kaedah menggunakan perpustakaan ini juga sangat mudah, di atas kami telah mengekstrak penyulitan Baidu > kod dan cipta fail

baharu, salin kandungan ke dalamnya. Kod kunci adalah seperti berikut: js

pip3 install PyExecJS
Salin selepas log masuk
js mula-mula membaca fail js ke dalam cache, dan kemudian memanggil objek melalui

. Akhir sekali, kaedah dalam fail

dilaksanakan dengan memanggil kaedah execjs, dengan call ialah kaedah yang sepadan dengan js dan b ialah parameter kaedah js dalam query . jsbSelepas panggilan berjaya, pemulangan adalah seperti berikut:

Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam Python3. Dapatkan nilai

Dengan memerhati kod sumber Baidu halaman terjemahan, didapati bahawa

disimpan dalam halaman, supaya kita boleh mendapatkan token.tokentoken

    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)
Salin selepas log masuk
Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam PythonSetakat ini, semua parameter permintaan sudah ada, jadi kami Anda boleh mula membina permintaan. Kod teras adalah seperti berikut:

res = request.get("https://fanyi.baidu.com").content.decode()
token = re.findall(r"token: &#39;(.*)&#39;,", res, re.M)[0]
Salin selepas log masuk

Selepas permintaan berjaya, gambar berikut akan dikembalikan:

Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam PythonIa didapati melalui panggilan sebenar yang tidak setiap permintaan berjaya, jadi ia diperlukan Buat berbilang permintaan, lalui operasi gelung, dan lompat keluar dari gelung apabila ia jelas dan berjaya Kod utama adalah seperti berikut:

    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().get("trans_result").get("data")[0].get("dst")
Salin selepas log masuk

Dengan cara ini , kami telah selesai menggunakan antara muka terjemahan Baidu untuk membuat panggilan antara muka terjemahan kami sendiri. Anda boleh menggunakan

atau

untuk membangunkan antara muka API mengikut keperluan anda sendiri. Di bawah adalah semua kodFlask

        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")
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan perpustakaan permintaan untuk melaksanakan antara muka terjemahan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan