Inventar von 3 Python-Bibliotheken, damit Sie JavaScript nach Belieben bearbeiten können

Vorwort

Wir alle wissen, dass Python bestimmte Funktionen leicht implementieren und auch Webseiten wie Remi, Pysimplegui schreiben kann, aber es ist das erste Mal, dass ich von der Skriptsprache für Browser wie JavaScript höre, und dies ist das erste Mal Ich habe davon gehört. Also werde ich dieses Wissen mit jedermanns Verstand füllen.

Viele Menschen lernen Python und wissen nicht, wo sie anfangen sollen.
Viele Menschen lernen Python und nachdem sie die grundlegende Grammatik beherrschen, wissen sie nicht, wo sie Fälle finden können, um loszulegen.
Viele Menschen, die Fallstudien durchgeführt haben, wissen nicht, wie sie fortgeschritteneres Wissen erlernen sollen.
Für diese drei Arten von Menschen biete ich Ihnen eine gute Lernplattform, auf der Sie kostenlos Video-Tutorials, E-Books und den Quellcode des Kurses erhalten können!
QQ-Gruppe: 705933274

Eins, PyExecJS

Es ist ein Python-Modul, das JavaScript-Skripte ausführen kann. Es kann mit dem JavaScript auf der Webseite interagieren, sodass Sie den verschlüsselten Inhalt der Webseite genauer abrufen können. Wenn Sie das Netzwerkmodul in Python zum Anfordern verwenden, werden Sie dies tun Die Verschlüsselung im Dokumentinhalt kann nicht entschlüsselt werden. Diesmal kann die Verwendung unseres PyExecJS sehr praktisch sein, um den verschlüsselten Inhalt auf der Webseite zu entschlüsseln. Natürlich müssen Sie die Js umkehren. Wenn Sie jedoch möchten, dass PyExecJS JS-Anweisungen ohne Probleme analysiert, müssen Sie die gesamte Js-Sprachumgebung analysieren. Hier wird NodeJS empfohlen, was peinlich ist. Werfen wir einen Blick auf die Verwendung von PyExecJs:

1. Routinebetrieb

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))#调用编译好的函数并且赋值

Sie können unsere Anweisung auch ausführen, indem Sie den Motor wie folgt abrufen:

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

 

2. Zeigen Sie die Interpretations-Engine an

print(execjs.get().name)

Hier ist die Interpretations-Engine von JavaScript JScript, und wir können auch unsere eigene designierte Engine verwenden, z. B. "Nodejs".

 

3. Geben Sie den Motor an

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

Sie können den Motor auch manuell wie folgt angeben:

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

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

 

 

Zwei, Js2Py

Ich denke, das ist relativ gut, es kann als komplex bezeichnet werden, es muss nicht auf andere Umgebungen angewiesen sein, es kann Js-Dateien unabhängig ausführen, aber seine Laufgeschwindigkeit kann etwas langsamer sein, aber das ist nichts. Werfen wir einen Blick auf die Funktionen seiner Artefakte.

1. Routinebetrieb erforderlich

2. Schleifenüberquerung

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

'''
)
print(aa)

 

3. Lesen Sie die Js-Datei

Wir können die JS-Datei in die Datei schreiben, so dass wir sie wie folgt aufrufen können:

1.js

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

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

Python-Datei

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

 

4. Crawlen Sie Website-Daten

Hier konzentrieren wir uns auf Taobao, und ich möchte seine JS-Skriptdatei wie folgt zusammenstellen:

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)

 

 

Drei, PyV8

Es basiert auf der V8-Engine von Google. Leider unterstützt es nur die Python2-Version und wird nicht mehr gewartet. Es wird Python2-Freunden empfohlen, es auszuprobieren.

 

Viertens Zusammenfassung

Dieser Artikel enthält hauptsächlich 3 Python-Bibliotheken, die JavaScript manipulieren können, nämlich PyExecJS, Js2Py und PyV8. Solange wir diese Module verwenden, können wir beim Spielen von Crawlern geschickter und genauer sein.

Ich möchte weiterhin die Python-Entwicklungslerngruppe empfehlen, die ich selbst erstellt habe : 705933274 (Sie können die verwendeten Codedateien und Daten abrufen ). Die Gruppe lernt alle Python-Entwicklung. Wenn Sie Python lernen möchten oder lernen, sind Sie herzlich willkommen Mitmachen, Jeder ist eine Softwareentwicklungspartei, die von Zeit zu Zeit Trockenwaren austauscht (nur im Zusammenhang mit der Python-Softwareentwicklung), einschließlich einer Kopie der neuesten Python-Materialien für Fortgeschrittene und Tutorials für Fortgeschrittene, die ich 2021 zusammengestellt habe tiefer in Python Little Buddies eintauchen!

Ich denke du magst

Origin blog.csdn.net/aaahtml/article/details/114988039
Empfohlen
Rangfolge