Pythonのクローラー実践 - 3.クローラ抽出戻り値、アナログインターフェイスウェイ辞書

Webインターフェイスの双方向辞書、実際には、することができ爬虫類アナログ入力キー、スプライシングいるFormDataウェイ辞書インターフェースについて、クロール戻り値、実際にAjaxが動的に生成された翻訳なので、外部の変換ルックの実装アナログインターフェースこと、爬虫類同等のアナログブラウザは、実際には、実際にキーワードを入力し、それほど気にしないでください、それにJSONパラメータを渡し、適切な方法のWebインターフェイスを直接呼び出すの言葉を話すが、彼らはシミュレートされたウェブクローラを上陸させ、道辞書ウェブインターフェースを呼び出します翻訳プロセスを取得します。

ブラウザの入力操作、分析的な方法の辞書とウェブインタフェースURL形式の翻訳

#爬虫模拟调用有道词典web接口调用
from urllib import request
from urllib import parse
import re


class YoudaoTranslator:

    def __init__(self, key):
        self.key = key

    def __getData(self):
        # 构造 有道词典web接口所需的Form data
        formdata = {
            "i": self.key,
            "from": "AUTO",
            "to": "AUTO" ,
            "smartresult": "dict",
            "client": "fanyideskweb",
            "salt": "15763837022114",
            "sign": "2b12fd214e066f53bc3455a126d7a509",
            "ts": "1576383702211",
            "bv": "5575008ba9785f184b106838a72d6536",
            "doctype": "json",
            "version": "2.1",
            "keyfrom": "fanyi.web",
            "action": "FY_BY_REALTlME"
        }
        data = parse.urlencode(formdata).encode(encoding="utf-8")
        return data

    def __getPage(self):
        #获得模拟浏览器请求,获得Ajax返回值
        header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"}
        url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

        req = request.Request(url, data=YoudaoTranslator.__getData(self), headers=header)
        res = request.urlopen(req).read().decode()
        return res

    def __Pat(self):
        #解析ajax返回json字符串,正则匹配获取翻译值
        pat = r'"tgt":"(.*?)"}]]'
        result = re.findall(pat, YoudaoTranslator.__getPage(self))
        print(result[0])
        return result

    def Translator(self):
        YoudaoTranslator.__Pat(self)


if __name__ == '__main__':

    i = YoudaoTranslator("人格心理学")
    i.Translator()

然后是运行结果

おすすめ

転載: www.cnblogs.com/liuchaodada/p/12044217.html