用Python模拟登录网站

前面简单提到了 [Python] 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序。简单说一下流程:先用[cookielib]获取cookie,再用获取到的cookie,进入需要登录的网站。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

| `01` | `#  -*- coding: utf-8 -*-` |

| `02` | `# !/usr/bin/python` |

| `03` |   |

| `04` | `import` `urllib2` |

| `05` | `import` `urllib` |

| `06` | `import` `cookielib` |

| `07` | `import` `re` |

| `08` |   |

| `09` | `auth_url ``=` `'[http://www.baidu.com/]'` |

| `10` | `home_url ``=` `'[http://www.baidu.com]'``;` |

| `11` | `# 登陆用户名和密码` |

| `12` | `data``=``{` |

| `13` | `"username"``:``"nowamagic"``,` |

| `14` | `"password"``:``"pass"` |

| `15` | `}` |

| `16` | `# urllib进行编码` |

| `17` | `post_data``=``urllib.urlencode(data)` |

| `18` | `# 发送头信息` |

| `19` | `headers ``=``{` |

| `20` | `"Host"``:``"http://www.baidu.com"``,` |

| `21` | `"Referer"``: ``"[http://www.baidu.com]"` |

| `22` | `}` |

| `23` | `# 初始化一个CookieJar来处理Cookie` |

| `24` | `cookieJar``=``cookielib.CookieJar()` |

| `25` | `# 实例化一个全局opener` |

| `26` | `opener``=``urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))` |

| `27` | `# 获取cookie` |

| `28` | `req``=``urllib2.Request(auth_url,post_data,headers)` |

| `29` | `result ``=` `opener.``open``(req)` |

| `30` | `# 访问主页 自动带着cookie信息` |

| `31` | `result ``=` `opener.``open``(home_url)` |

| `32` | `# 显示结果` |

| `33` | `print` `result.read()` |

再附带几个示例程序:

1. 使用已有的cookie访问网站

| `01` | `import` `cookielib, urllib2` |

| `02` |   |

| `03` | `ckjar ``=` `cookielib.MozillaCookieJar(os.path.join(``'C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default'``, ``'cookies.txt'``))` |

| `04` |   |

| `05` | `req ``=` `urllib2.Request(url, postdata, header)` |

| `06` |   |

| `07` | `req.add_header(``'User-Agent'``, \` |

| `08` | `'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'``)` |

| `09` |   |

| `10` | `opener ``=` `urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )` |

| `11` |   |

| `12` | `f ``=` `opener.``open``(req)` |

| `13` | `htm ``=` `f.read()` |

| `14` | `f.close()` |

2. 访问网站获得cookie,并把获得的cookie保存在cookie文件中

| `01` | `import` `cookielib, urllib2` |

| `02` |   |

| `03` | `req ``=` `urllib2.Request(url, postdata, header)` |

| `04` | `req.add_header(``'User-Agent'``, \` |

| `05` | `'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'``)` |

| `06` |   |

| `07` | `ckjar ``=` `cookielib.MozillaCookieJar(filename)` |

| `08` | `ckproc ``=` `urllib2.HTTPCookieProcessor(ckjar)` |

| `09` |   |

| `10` | `opener ``=` `urllib2.build_opener(ckproc)` |

| `11` |   |

| `12` | `f ``=` `opener.``open``(req)` |

| `13` | `htm ``=` `f.read()` |

| `14` | `f.close()` |

| `15` |   |

| `16` | `ckjar.save(ignore_discard``=``True``, ignore_expires``=``True``)` |

3. 使用指定的参数生成cookie,并用这个cookie访问网站

| `01` | `import` `cookielib, urllib2` |

| `02` |   |

| `03` | `cookiejar ``=` `cookielib.CookieJar()` |

| `04` | `urlOpener ``=` `urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))` |

| `05` | `values ``=` `{``'redirect'``:", ``'email'``:``'abc@abc.com'``,` |

| `06` | `'password'``:``'password'``, ``'rememberme'``:", ``'submit'``:``'OK, Let Me In!'``}` |

| `07` | `data ``=` `urllib.urlencode(values)` |

| `08` |   |

| `09` | `request ``=` `urllib2.Request(url, data)` |

| `10` | `url ``=` `urlOpener.``open``(request)` |

| `11` | `print` `url.info()` |

| `12` | `page ``=` `url.read()` |

| `13` |   |

| `14` | `request ``=` `urllib2.Request(url)` |

| `15` | `url ``=` `urlOpener.``open``(request)` |

| `16` | `page ``=` `url.read()` |

| `17` | `print` `page` |
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值