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

2017-11-08 10:44:20 +08:00
 dushandz
如题,如何获取爬到的 html 中 script 标签下的 js 文件,能不能加载执行··然后调用方法···
8830 次点击
所在节点    云计算
17 条回复
p2pCoder
2017-11-08 10:53:04 +08:00
script 标签下的肯定就是个 url,你直接 请求 url 就可以了
jsuop 是 html 解析库,和 js 没多大关系,
你要用 java 执行 js 函数可以直接用相关库,jdk 中就有 ScriptEngine 这个类,可以解析执行 js
denghb
2017-11-08 11:00:27 +08:00
HtmlUnit
qqpkat2
2017-11-08 12:58:26 +08:00
jsoup 无法执行 js
有些 js 用 ScriptEngine 也是无法执行的,比如 window 方法
HtmlUnit 太慢,而且复杂 js 也执行不了
那么用什么呢,我就不告诉你
Xiaobaixiao
2017-11-08 13:03:35 +08:00
Selenium
stanjia
2017-11-08 13:37:35 +08:00
期待答案,我也想知道
stanjia
2017-11-08 13:45:36 +08:00
@Xiaobaixiao 刚看了下, 这个应该是最好的方案吧?
p2pCoder
2017-11-08 13:52:56 +08:00
window 是浏览器对象,肯定不能执行
一般爬虫 中用到的的 js 函数都是加密函数和解析函数,如果中间引入了外部库,也要把外部库加进去
python 的话 我用 execjs
DRcoding
2017-11-08 13:59:07 +08:00
java 有 js 的引擎的,Nashron。
MrXiong
2017-11-08 14:16:06 +08:00
楼上正解
paragon
2017-11-08 14:30:13 +08:00
你可以弄个 V8 把 js 传过去执行完把结果再传回来啊
mooncakejs
2017-11-08 14:38:41 +08:00
直接用 js 写爬虫的路过
ooTwToo
2017-11-08 16:41:43 +08:00
@qqpkat2 那你很棒啊
wwwvvvvvvvvvv
2017-11-08 18:27:15 +08:00
Selenium
sodarfish
2017-11-08 18:33:57 +08:00
当然是用 phantomjs
LukeChien
2017-11-08 18:59:50 +08:00
Java 8 的 nashorn 引擎很好用,但是执行的时候一些浏览器对象需要你手工创建,比如 window
kaneg
2017-11-08 19:08:43 +08:00
不知道 headless chrome 能不能满足你的需求
ztmark
2017-11-08 20:11:57 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX