请教一个关于 python 的 GUI 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
deadofpeople
V2EX    Python

请教一个关于 python 的 GUI 问题

  •  
  •   deadofpeople 2016-12-16 15:45:28 +08:00 2918 次点击
    这是一个创建于 3270 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己学习 python 动手做了 gui 的小程序,问题如下: 登录某网站进去后,怎么免登录打开指定的网址呢?登陆的时候要设置 http 的 header 中的 cookie 。 我试过 python 自带的 webbrowser 不能行(不能设置 cookie 吧?)

    btw: 我看了某些应用,如:心蓝订票助手和 12306bypass 里面有个免登录打开 12306 ,所以我想试试 python 有没有类似的

    各位 V 友,有了解的麻烦指点一二,谢谢了

    16 条回复    2016-12-21 18:09:43 +08:00
    deadofpeople
        1
    deadofpeople  
    OP
       2016-12-16 21:40:59 +08:00
    别沉呀。
    ihciah
        2
    ihciah  
       2016-12-17 02:41:54 +08:00 via iPhone
    这和 GUI 有啥关系…一件懵逼
    thekoc
        3
    thekoc  
       2016-12-17 12:21:02 +08:00
    这个只有把 webbrowser 换了才行吧
    deadofpeople
        4
    deadofpeople  
    OP
       2016-12-19 09:28:42 +08:00
    @ihciah 就是想实现这样的功能
    deadofpeople
        5
    deadofpeople  
    OP
       2016-12-19 09:29:01 +08:00
    @thekoc 有第三方的包么?
    thekoc
        6
    thekoc  
       2016-12-19 11:44:57 +08:00
    @deadofpeople Selenium?
    diffworld
        7
    diffworld  
       2016-12-19 11:56:57 +08:00
    可以写一个爬虫自动登录吗?用 requests
    Simpleyyt
        8
    Simpleyyt  
       2016-12-19 12:18:57 +08:00
    改用 pyQt?
    deadofpeople
        9
    deadofpeople  
    OP
       2016-12-19 15:41:09 +08:00
    @thekoc 这个我有试过,貌似要先预装相关的浏览器才行,而且体验很不好,打开有延迟的。
    deadofpeople
        10
    deadofpeople  
    OP
       2016-12-19 15:42:20 +08:00
    @diffworld 要看那个网站登录模块有没有做什么限制,比如:验证码之类的
    deadofpeople
        11
    deadofpeople  
    OP
       2016-12-19 15:42:50 +08:00
    @Simpleyyt pyQt 没用过,我现在是用 wxpython 写的
    deadofpeople
        12
    deadofpeople  
    OP
       2016-12-19 15:46:34 +08:00
    我看 心蓝订票助手和 12306bypass 还有其他某些软件登录进去直接能打开某地址(应该是设置了 cookie 之类的)。
    不知道 C#是如何设置此类操作的
    falseen
        13
    falseen  
       2016-12-20 00:43:04 +08:00
    你的意思是在 gui 界面中登陆之后再打开外部浏览器 ?
    deadofpeople
        14
    deadofpeople  
    OP
       2016-12-20 13:39:58 +08:00
    @falseen 是的,就是打开系统浏览器
    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 。
    (这种方法稍微有点复杂,不知道你看懂没有)
    deadofpeople
        16
    deadofpeople  
    OP
       2016-12-21 18:09:43 +08:00
    @falseen 谢谢回复,方法一我可以尝试下,方法二的话确实复杂了,不折腾了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1543 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 55ms UTC 16:20 PVG 00:20 LAX 08:20 JFK 11:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86