Python 爬虫如何执行页面中的 js 函数

2015-03-13 09:02:01 +08:00
 jedyu
如在页面中定义了A函数,我想爬下页面后,执行A,查看结果是什么。试了下pyV8没成功,是我的姿势不对吗?
9428 次点击
所在节点    Python
25 条回复
zealic
2015-03-13 09:03:00 +08:00
那就不叫爬了,叫模拟浏览:
参考 Casper.js 以及 PhantomJS
arachide
2015-03-13 09:30:34 +08:00
精确掌握这个技术的目前貌似只有google
icedx
2015-03-13 09:39:23 +08:00
PyQt 内置浏览器模拟浏览
xunyu
2015-03-13 09:46:51 +08:00
saihuang
2015-03-13 10:02:24 +08:00
看一下selenium和phantomjs
nomaka
2015-03-13 10:03:53 +08:00
selenium
shoumu
2015-03-13 10:05:10 +08:00
PhantomJs
dingyaguang117
2015-03-13 12:10:13 +08:00
PhantomJs +1
jedyu
2015-03-13 13:09:32 +08:00
@xunyu Ghost好像就是在pyV8上封装了一层

@icedx 就是想通过脚本
tabris17
2015-03-13 13:22:07 +08:00
@jedyu pyv8只是封装了个v8引擎,无法执行web页面的里的js
icedx
2015-03-13 13:25:50 +08:00
@jedyu PyQt 这是脚本阿
jedyu
2015-03-13 13:39:54 +08:00
@tabris17 确实,window这些都要自己写类,写不全还跑不了
poke707
2015-03-13 17:24:38 +08:00
如果你的目的是挖出js里面调用的ajax, 可以直接用chrome调试模式找出来URL来
leonlu
2015-03-13 17:31:46 +08:00
python爬虫可以删掉,用phathomjs重新写一份了。
jedyu
2015-03-13 17:45:48 +08:00
@poke707 我是为了获取一个加密的值,用于一个请求,可这个加密算法的js被混淆了,只有一个入口函数
icedx
2015-03-13 18:17:58 +08:00
@jedyu 你就顺着它逻辑写呗J's 混淆能到什么程度
kchum
2015-03-14 01:28:26 +08:00
PhantomJs 一劳永逸。再混淆你又要看一次。
gaotongfei
2015-03-14 10:45:41 +08:00
我都是用selenium-webdriver的
gaotongfei
2015-03-14 10:47:49 +08:00
tonic
2015-03-14 15:58:30 +08:00
可以试试 PyExecJS

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

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

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

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

© 2021 V2EX