python执行javascript
不太懂你在犹豫什么,实际上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