JavaScriptを好きなように操作できるようにする3つのPythonライブラリのインベントリ

序文

Pythonは特定の関数を簡単に実装でき、RemiやPysimpleguiなどのWebページを作成できることは誰もが知っていますが、JavaScriptなどのブラウザー用のスクリプト言語について聞いたのは初めてであり、これは初めてです。聞いたことがあるので、この知識をみんなの頭脳で満たしていきます。

多くの人がPythonを学び、どこから始めればよいのかわかりません。
多くの人がPythonを学び、基本的な文法を習得した後、どこから始めればよいかわかりません。
ケーススタディを行った多くの人々は、より高度な知識を学ぶ方法を知りません。
したがって、これら3つのタイプの人々のために、ビデオチュートリアル、電子書籍、およびコースのソースコードを無料で受け取ることができる優れた学習プラットフォームを提供します。
QQグループ:705933274

1つ、PyExecJS

これはJavaScriptスクリプトを実行できるPythonモジュールです。Webページ上のJavaScriptと対話できるため、Webページの暗号化されたコンテンツをより正確に取得できます。Pythonのネットワークモジュールを使用してリクエストすると、次のようになります。ドキュメントコンテンツの暗号化を復号化することはできません。今回はPyExecJSを使用すると、Webページの暗号化されたコンテンツを復号化するのに非常に便利です。もちろん、Jを逆にする必要があります。ただし、PyExecJSで問題なくJSステートメントを解析する場合は、Js言語環境全体を解析する必要があります。ここではNodeJSをお勧めしますが、これは恥ずかしいことです。PyExecJsの使用法を見てみましょう。

1.日常の操作

import execjs
aa=execjs.eval("'one|two|three'.split('|')") #执行JavaScript代码,将字符串分割形成数组
print(aa) 

e=execjs.compile('''     #编译一个表达式
function add(x,y){
  return x+y;
}
''')
print(e.call('add',10,20))#调用编译好的函数并且赋值

次のように、エンジンを取得してステートメントを実行することもできます。

print(execjs.get().eval('1+1'))

 

2.解釈エンジンを表示する

print(execjs.get().name)

ここで、JavaScriptの解釈エンジンはJScriptであり、「Nodejs」などの独自の指定エンジンを使用することもできます。

 

3.エンジンを指定します

import execjs
import os
os.environ["EXECJS_RUNTIME"] = "Node"
print(execjs.get().name)

次のように、エンジンを手動で指定することもできます。

js1=execjs.get(execjs.runtime_names.JScript)
print(js1.eval('1'))

js2=execjs.get(execjs.runtime_names.Node)
print(js2.eval('2'))

 

 

2、Js2Py

これは比較的良いと思います。複雑であると言えます。他の環境に依存する必要はなく、Jsファイルを個別に実行できますが、実行速度は少し遅いかもしれませんが、これは何もありません。そのアーティファクトの機能を見てみましょう。

1.日常の操作、必須

2.ループトラバーサル

import js2py
aa=js2py.eval_js(
'''
var i=0;
for(var c=1;c<6;c++){
console.log(c);
}

'''
)
print(aa)

 

3.Jsファイルを読み取ります

JSファイルをファイルに書き込んで、次のように呼び出すことができます。

1.js

function f(aa){
    if(aa>11){
        console.log('OK')

    }else{
        console.log('Fail')
  }
}

Pythonファイル

import  js2py
with open('1.js','r') as f:
    aa=js2py.eval_js(f.read())
    print(aa(11))

 

4.Webサイトデータをクロールします

ここでは淘宝網に焦点を当て、そのJSスクリプトファイルを次のようにアセンブルしたいと思います。

import execjs
import requests
import re
url = 'https://ai.taobao.com/?pid=mm_26632323_6762370_25910879'
res=requests.get(url).text
js=re.findall(r'<script>(.*?)</script>',res)
print(js,'\n')
js1=re.sub(r'eval\(','return(',js[0])
html="function getLego2WPK(){" + js1 + "};"
ctx = execjs.compile(html)
temp = ctx.call('getLego2WPK')
print(temp)

 

 

3、PyV8

これはGoogleのV8エンジンに基づいていますが、残念ながらPython2バージョンのみをサポートしており、現在は保守されていません。Python2の友人が試してみることをお勧めします。

 

4、まとめ

この記事では主に、JavaScriptを操作できる3つのPythonライブラリ、つまりPyExecJS、Js2Py、PyV8について説明します。これらのモジュールを使用する限り、クローラーをプレイする際のスキルと精度が向上します。

私はまだ自分で構築したPython開発学習グループをお勧めしたいと思います:705933274(使用するコードファイルとデータを取得できます)、グループはすべてPython開発を学習しています、Pythonを学習したい、または学習している場合は、参加してください、誰もがソフトウェア開発パーティーであり、2021年に私が編集した最新のPythonの高度な資料と高度な開発チュートリアルのコピーを含むドライグッズ(Pythonソフトウェア開発に関連するもののみ)を時々共有しています。 Python Little buddiesに深く入り込むために!

おすすめ

転載: blog.csdn.net/aaahtml/article/details/114988039