當前位置:首頁 » 編程語言 » python執行javascript

python執行javascript

發布時間: 2022-05-08 01:59:30

A. pythonjavaScript 到底選擇哪個

不太懂你在猶豫什麼,實際上python是後端語言,除了用於後端之外還常用於爬蟲,數據分析,機器學習等.
而javascript主要還是用於前端(雖然已經有node.js,但是它相比其他後端語言並沒有太多優勢).
如果你不是從事前端開發只是想要學習一門語言的話那麼建議學習python

B. 如何用python爬取js動態生成內容的頁面

抓取js動態生成的內容的頁面有兩種基本的解決方案

1用dryscrape庫動態抓取頁面
js腳本是通過瀏覽器來執行並返回信息的,所以,抓取js執行後的頁面,一個最直接的方式就是用python模擬瀏覽器的行為。WebKit 是一個開源的瀏覽器引擎,python提供了許多庫可以調用這個引擎,dryscrape便是其中之一,它調用webkit引擎來處理包含js等的網頁!

2 selenium web測試框架

selenium是一個web測試框架,它允許調用本地的瀏覽器引擎發送網頁請求,所以,它同樣可以實現抓取頁面的要求。

C. 如何用spidermonkey在python里調用javascript代碼

由於PyQt的安裝比較麻煩,嘗試了幾次都沒有成功,便決定用spidermonkey,但若直接從官網下載和安裝,由於涉及到js引擎等的安裝,比較麻煩,經過試驗驗證,如下方法可以快速達到目的:

1.spidermonkey下載及安裝

1)下載 svn checkout http://python-spidermonkey.googlecode.com/svn/trunk spidermonkey

2)編譯安裝

python setup install

3)如果編譯時出現

spidermonkey.pyx:82:3: Syntax error in simple statement list 這樣錯誤:則修改spidermonkey.pyx:注釋如下代碼

#IF UNAME_MACHINE == "x86_64":
#ctypedef long jsval
#ELSE:
#ctypedef int jsval

增加:

ctypedef long jsval

4)如果編譯時出現

spidermonkey.c:1323: error: invalid lvalue in assignment,則修改spidermonkey.c程序:

注釋:

/*((PyObject *)((struct __pyx_obj_12spidermonkey_Context *)__pyx_v_self)->rt) = ((PyObject *)__pyx_v_rt);*/

新增:
((PyObject *)((struct __pyx_obj_12spidermonkey_Context *)__pyx_v_self)->rt) = (PyObject *)__pyx_v_rt;

如果還是報以上錯誤,則新增的這條語句也去掉

2.如何在python中調用js:

ECASE)
con=regex.search(content)
rt = Runtime()

cx = rt.new_context()

jsCode= "var acc = g1656.substr(3,3) + da2ef.substr(5,5) + 'abc';" #注意:以分號結束

cx.eval_script(jsCode)
acc = cx.get_global('acc')

D. python 用什麼模塊處理網頁的javascript

lxml 配合 html5lib
可以很好的解析 html DOM
但對於js的解析 據我所知現在沒有什麼很成熟的模塊能做這個

解析js肯定不是正則能辦得到的, 比較現實的方案是
從webkit下手, 但光這一個庫就有10+M
(利用webkit自己解析js等解析完之後讀取html dom, 什麼時候解析完,什麼內容需要解析,什麼內容不應該解析是使用的難點)

如果你碰到的js代碼比較簡單
可以自己看看js代碼然後使用python模擬js代碼得到網址

其中使用webkit是最難的(不是簡單顯示界面,需要自己hook)
模擬js其次
lxml是最普遍的了
(這個解析一般的html必須配合其他html解析庫,自帶的那個html解析不是很健壯碰到稍微差點的頁面就不能正確解析)
另外html DOM 裡面 beautifulsoup 是一個比較老道的使用正則實現解析HTML DOM的庫.

E. python怎麼塞javascript進去執行

importPyV8
defexecuteJavaScript(txt):
info_lt=['encodeURIComponent','encodeURI','escape','unescape','decodeURI','decodeURIComponent']
ctxt=PyV8.JSContext()
ctxt.enter()
func=ctxt.eval('''(function(a){returnencodeURIComponent(encodeURI(a))})''')
result_txt=func(txt)
returnresult_txt

一般情況下,獲取網頁的JS代碼,python能夠用相等的方法解析理解。

如果你確定要執行JS代碼,可以使用PyV8的模塊,但有一個問題。JS一般是處理網頁的DOM上下文的。這樣做不一定理想。


演示代碼如上

F. 如何將python執行的程序結果參數傳給JavaScript

2種
1
直接輸出json格式的字元串並賦給js變數
2
js通過ajax請求python,python返回結果 一般數據的話用json格式字元串

G. 如何在python中解析或者運行javascript的一個函數

ambda是個匿名函數而已, 這里就是產生了字典{True:f1, False f2},字典的兩個值就是2個函數,f1 就是shutil.(...),f2就是tree了,你可以理解成兩個函數指針。
bresult是個true或者false的值,後面[bresult]():就表示,根據bresult的結果調用前面字典裡面對應的兩個函數。bresult在這里是字典的key。函數在這里是字典的value.

H. python可以直接調用javascript嗎

不可以,windows上安了pywin32庫可以通過scriptcontrol控制項運行,

I. 在JavaScript 和 python中選一個 選哪個好

Python

Python是對於第一次編程的人來說最為流行的編程語言之一,因為它是一門通用性的語言。這意味著它能應用在廣泛的編程任務上,幾乎沒有你不能用Python完成的工作,這一點使很多新手能在實際中應用到這門編程語言;另外,Python有兩個非常重要的特徵,使其對於新手而言非常友好。語法清晰,類似於英文的語法,和強調代碼的可讀性。

Python盡可能地使用英語,不像其他編程語言那樣經常使用標點符號或者特殊的字元。所以,Python閱讀起來更自然、更像人類語言;這一點,可以讓我們聚焦於編程問題,而不是花費更多的時間糾結語言自身的特性上。

JavaScript

JavaScript是網站建設的首選語言,作為新手語言,它具備以下幾點優勢:

無需安裝任何東西,你可以打開文本編輯器,然後開始輸入JavaScript,代碼將在你的瀏覽器中運行。最頂尖的瀏覽器內置了JavaScript引擎,所以你的代碼將可以運行在幾乎所有的電腦和很好的移動設備上;它能馬上在瀏覽器中運行代碼為編程人員提供一個非常快的反饋,這對於新手來說是很好的。

開始JavaScript是作為前端語言的,不過一個名為Node.js的環境能讓你編寫運行在瀏覽器或者伺服器上的代碼。現在JavaScript能當作前端和後端語言使用,因此增加了它的使用人數。JavaScript也有大量提供除核心功能外的額外功能包,這使得它能當作一門通用語言來使用。

J. Python爬蟲在處理由Javascript動態生成的頁面時有哪些解決方案

思路一:分析Javascript代碼找到請求數據
1. Chrome + F12開發者選項
2. Firefox + Firebug
思路二:利用瀏覽器內核或JS引擎執行Javascript代碼
1. Selenium + PhantomJs
2. PyQt /QtWebkit
3. CasperJS
4. PyExecJS

熱點內容
android敏捷開發 發布:2025-05-11 11:56:49 瀏覽:79
腳本pon 發布:2025-05-11 11:52:27 瀏覽:825
ct5推薦哪個配置 發布:2025-05-11 11:47:45 瀏覽:741
領購未上傳發票 發布:2025-05-11 11:43:27 瀏覽:716
查看華為雲伺服器的ip地址 發布:2025-05-11 11:24:44 瀏覽:235
長沙銀行密碼多少 發布:2025-05-11 11:24:38 瀏覽:671
緩存手機視頻合並軟體哪個好 發布:2025-05-11 11:22:30 瀏覽:698
伺服器c盤怎麼清除 發布:2025-05-11 11:16:33 瀏覽:39
動態估演算法 發布:2025-05-11 11:06:19 瀏覽:923
sql2008使用教程 發布:2025-05-11 10:53:16 瀏覽:315