推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
wico77
V2EX  ›  Python

如何在 python 里运行 js 代码?

  •  
  •   wico77 · Oct 28, 2016 · 9316 views
    This topic created in 3671 days ago, the information mentioned may be changed or developed.

    pyv8 已经没人维护了。没法使用。其他还有什么好用的包吗

    20 replies  •  2016-11-04 04:53:37 +08:00
    tinyproxy
    tinyproxy
    Oct 28, 2016
    1
    我的做法是直接扔到 node 里面跑完给结果,但如果你的东西上下文相关,为啥不拿 node 来用呢,或者自己拿 v8 编译成动态库用 python 去调用呢。
    wico77
    wico77
    OP
    Oct 28, 2016
    2
    @tinyproxy 我的 js 带 dom 操作。比较麻烦。能用 selenium 吗。我就想要运行后的数据。
    zhuangzhuang1988
    zhuangzhuang1988
    Oct 28, 2016
    3
    @wico77 dom 操作属于浏览器范畴了, 有 pyv8 也没用。。
    wico77
    wico77
    OP
    Oct 28, 2016
    4
    @zhuangzhuang1988 python 里哪个库可以运行 js 加密结果(会操作 dom),然后返回数据。
    moyang
    moyang
    Oct 28, 2016
    5
    @wico77 jsdom node 里跑没有问题 https://github.com/tmpvar/jsdom
    Trim21
    Trim21
    Oct 28, 2016 via Android
    6
    execjs
    wico77
    wico77
    OP
    Oct 28, 2016
    7
    @Trim21 execjs 不能操作 dom 吧
    Trim21
    Trim21
    Oct 28, 2016 via Android
    8
    @wico77 那是 node 那边的事情了,不是 Python 的事情了
    dsg001
    dsg001
    Oct 28, 2016
    9
    @tinyproxy 有相关 demo 没?
    Librazy
    Librazy
    Oct 28, 2016 via Android
    10
    不如 node 调用 python 吧。。
    tinyproxy
    tinyproxy
    Oct 28, 2016
    11
    @dsg001 把你的 JS 代码 wrapp 一下,需要的数据通过 console.log 输出,然后读子进程的输出就好了。
    tinyproxy
    tinyproxy
    Oct 28, 2016
    12
    @wico77 看你的描述是为了爬东西, selenium 的效率相对比较低一点,如果你可以接受当然没问题。
    master13
    master13
    Oct 28, 2016
    13
    phantomJS
    jinfeng333
    jinfeng333
    Oct 28, 2016
    14
    phantomJS +1
    triostones
    triostones
    Oct 28, 2016
    15
    Selenium.
    wico77
    wico77
    OP
    Oct 29, 2016
    16
    我已经想用 v8 跑这段 js ,等结果出来。但麻烦的是 pyv8 会在 js 操作 dom 的时候给出错误。怎么阻止 v8 操作 dom ?或者遇到错误的时候跳过?
    @triostones
    @wujunze
    @master13
    @tinyproxy
    @Trim21
    sleshep
    sleshep
    Oct 29, 2016
    18
    模拟 window 等对象,即可
    mingyun
    mingyun
    Oct 29, 2016
    19
    windows 下安装出错怎么办?
    $ pip install pyv8
    Collecting pyv8
    Using cached PyV8-0.5.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\ADMINI~1\AppData\Local\Temp\pip-build-s20z1zyl\pyv8\setup.p
    y", line 17, in <module>
    include_dirs += os.environ["INCLUDE"].split(';')
    File "d:\python3\lib\os.py", line 725, in __getitem__
    raise KeyError(key) from None
    KeyError: 'INCLUDE'

    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in C:\Users\ADMINI~1
    \AppData\Local\Temp\pip-build-s20z1zyl\pyv8\
    wico77
    wico77
    OP
    Nov 4, 2016
    20
    @sleshep 如何模拟出 window 等对象。网站找不到好的教程。 pyv8 现在用的人很少了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1177 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 17:25 · PVG 01:25 · LAX 09:25 · JFK 12:25
    ♥ Do have faith in what you're doing.