自己学习 python 动手做了 gui 的小程序,问题如下: 登录某网站进去后,怎么免登录打开指定的网址呢?登陆的时候要设置 http 的 header 中的 cookie 。 我试过 python 自带的 webbrowser 不能行(不能设置 cookie 吧?)
btw: 我看了某些应用,如:心蓝订票助手和 12306bypass 里面有个免登录打开 12306 ,所以我想试试 python 有没有类似的
各位 V 友,有了解的麻烦指点一二,谢谢了
1
deadofpeople OP 别沉呀。
|
2
ihciah 2016-12-17 02:41:54 +08:00 via iPhone
这和 GUI 有啥关系…一件懵逼
|
3
thekoc 2016-12-17 12:21:02 +08:00
这个只有把 webbrowser 换了才行吧
|
4
deadofpeople OP @ihciah 就是想实现这样的功能·
|
5
deadofpeople OP @thekoc 有第三方的包么?
|
6
thekoc 2016-12-19 11:44:57 +08:00
@deadofpeople Selenium?
|
7
diffworld 2016-12-19 11:56:57 +08:00
可以写一个爬虫自动登录吗?用 requests
|
8
Simpleyyt 2016-12-19 12:18:57 +08:00
改用 pyQt?
|
9
deadofpeople OP @thekoc 这个我有试过,貌似要先预装相关的浏览器才行,而且体验很不好,打开有延迟的。
|
10
deadofpeople OP @diffworld 要看那个网站登录模块有没有做什么限制,比如:验证码之类的
|
11
deadofpeople OP @Simpleyyt pyQt 没用过,我现在是用 wxpython 写的
|
12
deadofpeople OP 我看 心蓝订票助手和 12306bypass 还有其他某些软件登录进去直接能打开某地址(应该是设置了 cookie 之类的)。
不知道 C#是如何设置此类操作的 |
13
falseen 2016-12-20 00:43:04 +08:00
你的意思是在 gui 界面中登陆之后再打开外部浏览器 ?
|
14
deadofpeople OP @falseen 是的,就是打开系统浏览器
|
15
falseen 2016-12-20 14:35:24 +08:00 1
打开外部浏览器的时候只能传递 url ,不能传递 cookie 。有一些网站网站支持在 url 中携带登陆信息(比如 QQ 空间之类的),这种网站就可以做到你说的“免登录”。估计你说的那个什么助手也是用的这个方法。
除了上面这种方法之外还有一些高级方法,就看你肯不肯花时间去做了。 方法一: 修改浏览器的 cookie 文件,把指定网站的 cookie 写进去,然后让浏览器去读取。当然如果浏览器有这种 api 的话最好。 (我曾经读取过 chrome 的 cookie 文件,但没有修改过,所以你要自己去试一下) 方法二: 用 Python 搭建一个小型的代理服务器,把要打开的外部链接作为参数传递到代理服务器上。比如你要打开 www.baidu.com ,你的代理服务器是 127.0.0.1 。那么你最终传递给浏览器的链接就是 127.0.0.1/?site=www.baidu.com (这里只是举个例子)。浏览器打开这个链接的时候会首先访问我们的代理服务器,代理服务器在接到这个链接的时候把 www.baidu.com 的 cookie 传递给浏览器。然后我们再在代理服务器上做一个跳转,让浏览器跳转到 www.baidu.com 上去就行了。这样浏览器访问 www.baidu.com 的时候就会携带上我们传递给它的 cookie 。 (这种方法稍微有点复杂,不知道你看懂没有) |
16
deadofpeople OP @falseen 谢谢回复,方法一我可以尝试下,方法二的话确实复杂了,不折腾了。
|