全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python 登录网站详解及实例

Python 登录网站详解及实例

对于大部分论坛,我们想要抓取其中的帖子分析,首先需要登录,否则无法查看。

  这是因为 HTTP 协议是一个无状态(Stateless)的协议,服务器如何知道当前请求连接的用户是否已经登录了呢?有两种方式:

  1. 在URI 中显式地使用 Session ID;
  2. 利用 Cookie,大概过程是登录一个网站后会在本地保留一个 Cookie,当继续浏览这个网站的时候,浏览器会把 Cookie 连同地址请求一起发送过去。

  Python 提供了相当丰富的模块,所以对于这种网络操作只要几句话就可以完成。我以登录 QZZN 论坛为例,事实上下面的程序几乎所有的 PHPWind 类型的论坛都是适用的。

# -*- coding: GB2312 -*-

from urllib import urlencode
import cookielib, urllib2

# cookie
cj = cookielib.LWPCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)

# Login
user_data = {'pwuser': '你的用户名',
       'pwpwd': '你的密码',
       'step':'2'
      }
url_data = urlencode(user_data)
login_r = opener.open("http://bbs.qzzn.com/login.php", url_data)

 一些注释:

  • urllib2 显然是比 urllib 高级一点的模块,里面包括了如何使用 Cookies。
  • 在 urllib2 中,每个客户端可以用一个 opener 来抽象,每个 opener 又可以增加多个 handler 来增强其功能。
  • 在构造 opener 时指定了 HTTPCookieProcessor 做为 handler,因此这个 handler 支持 Cookie。
  • 使用 isntall_opener 后,调用 urlopen 时会使用这个 opener。
  • 如果不需要保存 Cookie,cj 这个参数可以省略。
  • user_data 存放的就是登录所需要的信息,在登录论坛的时候把这个信息传递过去就行了。
  • urlencode 功能是把字典 user_data 编码成"?pwuser=username&pwpwd=password"的形式,这样做是为了使程序易读一些。

  最后一个问题是,pwuser、pwpwd 这类的名字是从哪儿来的,这就要分析需要登录的网页了。我们知道,一般的登录界面都是一个表单,节选如下:

<form action="login.php?" method="post" name="login" onSubmit="this.submit.disabled = true;"> 
<input type="hidden" value="" name="forward" /> 
<input type="hidden" value="http://bbs.qzzn.com/index.php" name="jumpurl" /> 
<input type="hidden" value="2" name="step" /> 
... 
<td width="20%" onclick="document.login.pwuser.focus();"><input type="radio" name="lgt" value="0" checked />用户名 <input type="radio" name="lgt" value="1" />UID</td> 
<td><input class="input" type="text" maxLength="20" name="pwuser" size="40" tabindex="1" /> <a href="reg1ster.php" rel="external nofollow" >马上注册</a></td> 
<td>密 码</td> 
<td><input class="input" type="password" maxLength="20" name="pwpwd" size="40" tabindex="2" /> <a href="sendpwd.php" rel="external nofollow" target="_blank">找回密码</a></td> 
... 
</form>

  从这里可以看出,我们需要输入的用户名密码对应的就是 pwuser 和 pwpwd,而 step 对应的则是登录(这个是尝试出来的)。

  注意到,这个论坛表单采用的是 post 方式,如果是 get 方式则本文的方法就需要变动一下,不能直接 open,而是应该首先 Request,然后再 open。更详细的请看手册...

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Python  # 登录网站  # 登录网站详解  # 登录网站实例代码  # 用python登录带弱图片验证码的网站  # python中requests模拟登录的三种方式(携带cookie/session进行请求网站)  # python实现网站微信登录的示例代码  # python实现网站用户名密码自动登录功能  # 对python抓取需要登录网站数据的方法详解  # Python实现爬取需要登录的网站完整示例  # Python3使用requests登录人人影视网站的方法  # Python爬虫模拟登录带验证码网站  # python实现网站的模拟登录  # 使用Python中的cookielib模拟登录网站  # python 模拟网站登录——滑块验证码的识别  # 都是  # 表单  # 的是  # 是一个  # 多个  # 不需要  # 则是  # 可以用  # 会在  # 是从  # 这就  # 这类  # 希望能  # 注意到  # 这样做  # 问题是  # 然后再  # 我以  # 为例  # 可以看出 


相关文章: 建站之星备案流程有哪些注意事项?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何通过虚拟主机快速搭建个人网站?  建站主机服务器选购指南:轻量应用与VPS配置解析  如何用VPS主机快速搭建个人网站?  网站专业制作公司有哪些,做一个公司网站要多少钱?  如何快速生成ASP一键建站模板并优化安全性?  如何正确选择百度移动适配建站域名?  如何快速搭建高效服务器建站系统?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  香港网站服务器数量如何影响SEO优化效果?  家具网站制作软件,家具厂怎么跑业务?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  C++时间戳转换成日期时间的步骤和示例代码  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  广州美橙建站如何快速搭建多端合一网站?  ,柠檬视频怎样兑换vip?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  建站之星IIS配置教程:代码生成技巧与站点搭建指南  小程序网站制作需要准备什么资料,如何制作小程序?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  建站之星官网登录失败?如何快速解决?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  制作网站公司那家好,网络公司是做什么的?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  建站之星如何优化SEO以实现高效排名?  实现虚拟支付需哪些建站技术支撑?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Android使用GridView实现日历的简单功能  如何在IIS中新建站点并配置端口与物理路径?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何注册花生壳免费域名并搭建个人网站?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何撰写建站申请书?关键要点有哪些?  建站之星如何修改网站生成路径?  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何选择靠谱的建站公司加盟品牌?  小型网站制作HTML,*游戏网站怎么搭建?  焦点电影公司作品,电影焦点结局是什么?  ,想在网上投简历,哪几个网站比较好?  ,巨量百应是干嘛的?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。