V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
dushandz
V2EX  ›  云计算

Java jsoup 写爬虫如何执行 js 文件

  •  
  •   dushandz · 2017-11-08 10:44:20 +08:00 · 8827 次点击
    这是一个创建于 2572 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,如何获取爬到的 html 中 script 标签下的 js 文件,能不能加载执行··然后调用方法···
    17 条回复    2017-11-08 20:11:57 +08:00
    p2pCoder
        1
    p2pCoder  
       2017-11-08 10:53:04 +08:00   ❤️ 1
    script 标签下的肯定就是个 url,你直接 请求 url 就可以了
    jsuop 是 html 解析库,和 js 没多大关系,
    你要用 java 执行 js 函数可以直接用相关库,jdk 中就有 ScriptEngine 这个类,可以解析执行 js
    denghb
        2
    denghb  
       2017-11-08 11:00:27 +08:00
    HtmlUnit
    qqpkat2
        3
    qqpkat2  
       2017-11-08 12:58:26 +08:00
    jsoup 无法执行 js
    有些 js 用 ScriptEngine 也是无法执行的,比如 window 方法
    HtmlUnit 太慢,而且复杂 js 也执行不了
    那么用什么呢,我就不告诉你
    Xiaobaixiao
        4
    Xiaobaixiao  
       2017-11-08 13:03:35 +08:00
    Selenium
    stanjia
        5
    stanjia  
       2017-11-08 13:37:35 +08:00
    期待答案,我也想知道
    stanjia
        6
    stanjia  
       2017-11-08 13:45:36 +08:00
    @Xiaobaixiao 刚看了下, 这个应该是最好的方案吧?
    p2pCoder
        7
    p2pCoder  
       2017-11-08 13:52:56 +08:00
    window 是浏览器对象,肯定不能执行
    一般爬虫 中用到的的 js 函数都是加密函数和解析函数,如果中间引入了外部库,也要把外部库加进去
    python 的话 我用 execjs
    DRcoding
        8
    DRcoding  
       2017-11-08 13:59:07 +08:00   ❤️ 2
    java 有 js 的引擎的,Nashron。
    MrXiong
        9
    MrXiong  
       2017-11-08 14:16:06 +08:00
    楼上正解
    paragon
        10
    paragon  
       2017-11-08 14:30:13 +08:00
    你可以弄个 V8 把 js 传过去执行完把结果再传回来啊
    mooncakejs
        11
    mooncakejs  
       2017-11-08 14:38:41 +08:00
    直接用 js 写爬虫的路过
    ooTwToo
        12
    ooTwToo  
       2017-11-08 16:41:43 +08:00
    @qqpkat2 那你很棒啊
    wwwvvvvvvvvvv
        13
    wwwvvvvvvvvvv  
       2017-11-08 18:27:15 +08:00
    Selenium
    sodarfish
        14
    sodarfish  
       2017-11-08 18:33:57 +08:00
    当然是用 phantomjs
    LukeChien
        15
    LukeChien  
       2017-11-08 18:59:50 +08:00   ❤️ 1
    Java 8 的 nashorn 引擎很好用,但是执行的时候一些浏览器对象需要你手工创建,比如 window
    kaneg
        16
    kaneg  
       2017-11-08 19:08:43 +08:00 via iPhone
    不知道 headless chrome 能不能满足你的需求
    ztmark
        17
    ztmark  
       2017-11-08 20:11:57 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:15 · PVG 11:15 · LAX 19:15 · JFK 22:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.