Python 能控制浏览器并交互吗?

2015-12-18 21:58:08 +08:00
 yuewolf
使用场景如下:
控制浏览器——哪个都行——登录 QQ 空间(太复杂了,菜鸟提交数据完全搞不定,唯一靠谱的 http://git.oschina.net/gerald/qqlib 已经失效),然后提取 cookie 。

当然,大牛有通过 post 成功获取的代码提供更好。
5003 次点击
所在节点    Python
29 条回复
chemzqm
2015-12-18 22:01:53 +08:00
走 http 就行了,用不着浏览器啊,就是 OCR 可能比较费劲,开源的都不好用,您可以用 opencv 去实现一个
hansnow
2015-12-18 22:04:13 +08:00
试试 selenium ?
yuewolf
2015-12-18 22:12:23 +08:00
@chemzqm 对菜鸟而言,走 http 太艰难了, QQ 空间这个不是那种一般的字段提交就 OK ,密码那里不知道怎么加密的,加密算法似乎还经常更新。所以,幻想走浏览器是不是更容易。
just1
2015-12-18 22:18:20 +08:00
@yuewolf
linhua
2015-12-18 22:18:20 +08:00
1.如果只是提取 cookie ,可以用浏览器调试工具找到请求 API ,模拟登录请求,这应该是 qqlib 所用方法。
2.或者用 headless browser

https://en.wikipedia.org/wiki/Headless_browser
https://github.com/dhamaniasad/HeadlessBrowsers
terence4444
2015-12-18 22:19:24 +08:00
只用 GET/POST 可以,再复杂的一点的就要 HTTP 了吧。
angelface
2015-12-18 22:21:37 +08:00
mechanize?
yuewolf
2015-12-18 22:27:22 +08:00
@just1 不想多说什么,你有空看一下,还牵涉各种加密。当然,一个简单的“学”字绝对可以解决这个问题。可有时候人是不是应该多少站别人立场上多想那么一丁点儿呢?
lecher
2015-12-18 22:33:00 +08:00
又没有给钱,为什么要花自己的时间和精力去站到懒人的立场多考虑一些。
真不把别人的时间和精力当回事吗。
kslr
2015-12-18 22:43:04 +08:00
模拟一个浏览器(搜一下叫什么 JS 来着),控制鼠标去点下登陆,然后获取 Cookie 这样就简单了吧
yuewolf
2015-12-18 22:43:39 +08:00
@lecher 你看清楚,我说明自己做过尝试了,找过代码,尝试过。并且,一路搜索找到了对方在简书上的文章 http://www.jianshu.com/p/4217d8f3574b
尝试了两三天以后,失败了,所以求个指点,想着或许其他人有更好方法和思路。我肯定很菜,但不能说是纯粹的伸手党吧?
他简单地回复了一个“学”字,让非常郁闷的我心里更堵,所以做了如上回复。我只是觉得,要么干脆就别回复,呵斥我一句能有多爽呢?
语言撕逼隔几天就上演, V2 里面也不都是纯粹高手在华山论剑吧?我这个问题有那么碍您眼睛?
icedx
2015-12-18 22:44:38 +08:00
vmebeh
2015-12-18 22:46:05 +08:00
不管什么加密都是在浏览器端实现的, JavaScript 可以直接看源码

以前的 webQQ 的密码是三次 md5 后加盐再一次 md5
yuewolf
2015-12-18 22:47:40 +08:00
@linhua 是的,QQlib 的作者就是这样搞的。分析了 QQ 所用的一个 JS 加密,然后在 http://www.jianshu.com/p/4217d8f3574b 这篇文中提出:
JS 中的方法对应于 Python 中的实现:
md5 => hashlib.md5
uin2hex => to_bytes
hexchar2bin => bytes.fromhex
strToBytes => binascii.hexlify
btoa => base64.b64encode
说实话,这些我只了解 md5 ……
而且,看他文中标注似乎已经失效,这个 JS 算法经常变动。
所以我就想干脆不走 http 提交。
yuewolf
2015-12-18 22:49:48 +08:00
@kslr 我也是觉得这样似乎更简单

@vmebeh 对的,它的密码各种加密,还老变。
hanfeng3015
2015-12-18 22:51:07 +08:00
可以研究一下 PyWebkit
yuewolf
2015-12-18 22:53:10 +08:00
@lecher 语气可能不好,细思极悔,请勿见怪。
just1
2015-12-18 22:53:14 +08:00
Mechanize ?
yuewolf
2015-12-18 22:59:01 +08:00
感谢
@angelface
@just1
@hansnow
@hanfeng3015
我去试试看,嘿嘿
linhua
2015-12-18 23:03:21 +08:00
也许你想实现在 python 中调用 javascript 代码,即用 python 实现的 javascript 解析器。如 python-spidermonkey , Js2Py
关键词: javascript parser in python

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

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

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

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

© 2021 V2EX