python 執行 js **
nodejs
安裝方式
先解決 js 環境,這裡推薦安裝 node.js ,安裝方便,執行效率也高。
然後pip install pyexecjs
就可以了。
>>> import execjs
>>> execjs.get().name # 檢視呼叫的環境
'node.js (v8)'
>>> ctx = execjs.compile(""" # 執行 js 語句
... function add(x, y)
... """)
>>> ctx.call("add", 1, 2)
3>>> with open('./test.js') as f: # 執行 js 檔案
... ctx = execjs.compile(f.read())
... ctx.call('add', 1, 2)
pyv8
這是 google 官方將 chrome v8 引擎用 python 封裝的庫,和 pyexecjs 相比,這個庫很輕量,不需要額外裝 js 環境,因為 v8 本身就是環境,同時也因為不需要啟動外部環境,執行速度很快。
>>> import pyv8 # 注意大小寫
>>> with pyv8.jscontext() as ctx:
... ctx.eval("""
... function add(x, y)
... """)
... ctx.locals.add(1, 2)
js2py
最後這個庫,作用是將 js **直接轉譯成 python **,這種方式可以擺脫呼叫 js 環境的瓶頸,但遺憾的是如果用於很長的混淆 js **,轉譯過來的大概率會報錯… 所以只建議先嘗試一下,如果報錯及時更換上面的庫。
安裝方式
pip install js2py
使用例子
>>> import js2py
>>> add = js2py.eval_js("""
... function add(x, y)
... """)
>>> add # 可以看到大括號裡已被轉譯
'function add(x, y) '
>>> add(1, 2)
3>>> # 使用下邊這個方法可以輸出轉譯後的**
>>> # 可以儲存到檔案裡,下次不需要再次轉譯
>>> print(js2py.translate_js('var x = 1'))
from js2py.pyjs import *
# setting scope
var = scope( js_builtins )
set_global_object(var)
# code follows:
var.registers(['x'])
var.put('x', js(1.0))
python寫網路爬蟲
注 本文旨在練習正規表示式的簡單使用方法 usr bin evn python coding cp936 def gethtml url 定義gethtml 函式,用來獲取頁面源 page urllib.urlopen url urlopen 根據url來獲取頁面源 html page.read 從...
python做爬蟲難嗎 python寫爬蟲難嗎
所謂網路爬蟲,通俗的講,就是通過向我們需要的url發出http請求,獲取該url對應的http報文主體內容,之後提取該報文主體中我們所需要的資訊。下面是乙個簡單的爬蟲程式 http基本知識 當我們通過瀏覽器訪問指定的url時,需要遵守http協議。本節將介紹一些關於http的基礎知識。http基本流...
用python寫爬蟲(一)初識爬蟲
爬蟲又被稱之為網路蜘蛛 網路機械人等,簡單來說就是模擬客戶端傳送網路請求,接收請求響應,按照一定的規則自動的抓取網際網路資訊的程式。1.從個人角度來說,爬蟲可以做我們的生活助手。2.從商業角度來說,爬蟲能實現巨大的商業價值。網路爬蟲根據系統結構和開發技術大致可以分為四種型別 通用網路爬蟲 聚焦網路爬...