python访问需要登录的网页
有些网页需要你登录之后才可以访问,你需要提供账户和密码。
只要在发送http请求时,带上含有正常登陆的cookie就可以了。
1.首先我们要先了解cookie的工作原理。
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。
2.之后我们要获取到用户正常登录的cookie.
python提供了cookieJar的库,只要把cookieJar的实例作为参数传到urllib2的一个opener里面。
然后访问一次登录的页面,cookie就已经保存下来了。之后通过这个实例访问所有的页面都带有正常登陆的cookie了。
以人人网为例子。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#encoding=utf-8 import urllib2 import urllib import cookielib def renrenBrower(url,user,password): #登陆页面,可以通过抓包工具分析获得,如fiddler,wireshark login_page = "http://www.renren.com/PLogin.do" try: #获得一个cookieJar实例 cj = cookielib.CookieJar() #cookieJar作为参数,获得一个opener的实例 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #伪装成一个正常的浏览器,避免有些web服务器拒绝访问。 opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] #生成Post数据,含有登陆用户名密码。 data = urllib.urlencode({"email":user,"password":password}) #以post的方法访问登陆页面,访问之后cookieJar会自定保存cookie opener.open(login_page,data) #以带cookie的方式访问页面 op=opener.open(url) #读取页面源码 data= op.read() return data except Exception,e: print str(e) #访问某用户的个人主页,其实这已经实现了人人网的签到功能。 print renrenBrower("http://www.renren.com/home","用户名","密码") |
python访问需要登录的网页的更多相关文章
- 用python实现模拟登录人人网
用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46 我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路 ...
- Python模拟校园网登录
最近忙着实验室的项目,学习的时间相对较少.前一段时间刚开始接触python时,依葫芦画瓢照着写了一个爬虫,爬取了某个网站的图片.当看到一张张图片自动出现在电脑屏幕上时,有些小小成就感.我想大多数人开始 ...
- 【爬虫】python requests模拟登录知乎
需求:模拟登录知乎,因为知乎首页需要登录才可以查看,所以想爬知乎上的内容首先需要登录,那么问题来了,怎么用python进行模拟登录以及会遇到哪些问题? 前期准备: 环境:ubuntu,python2. ...
- 利用Python模拟GitHub登录
最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一 ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- 使用python访问网络上的数据
这两天看完了Course上面的: 使用 Python 访问网络数据 https://www.coursera.org/learn/python-network-data/ 写了一些作业,完成了一些作业 ...
- Python 爬虫修养-处理动态网页
Python 爬虫修养-处理动态网页 本文转自:i春秋社区 0x01 前言 在进行爬虫开发的过程中,我们会遇到很多的棘手的问题,当然对于普通的问题比如 UA 等修改的问题,我们并不在讨论范围,既然要将 ...
- 使用Python访问微信
itchat是一个开源的微信个人号接口,使用它我们可以很方便的访问我们个人微信号里的信息.itchat的github地址如下: https://github.com/littlecodersh/itc ...
- python模拟自动登录网站(urllib2)
不登录打开网页: import urllib2 request = urllib2.Request('http://www.baidu.com') response = urllib2.urlopen ...
随机推荐
- webpack整体配置结构
摘自<深入浅出webpack>2.8 const path = require('path'); module.exports = { // entry 表示入口,webpack执行的第一 ...
- Hackerank-Array-NewYearChaos
题目背景描述 新年第一天,N 个人排队坐过山车.每个人穿有带编号的衣服 \([1, 2, 3, ...]\). 因为排队时间太久,有人发现给前面相邻的人喂一颗糖,就可以和他交换位置,而每人手里只有两颗 ...
- Numpy入门笔记第二天
# 数组的组合 import numpy as np arr1 = np.arange(5) arr2 = np.arange(3) print arr1 print arr2 [0 1 2 3 4] ...
- 关于requestanimationframe
首先字面理解,请求动画框架, 用法: var nextFrame = (function() { return window.requestAnimationFrame || window.webki ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- iOS- 关于AVAudioSession的使用——后台播放音乐
1.前言 •AVAudioSession是一个单例,无需实例化即可直接使用.AVAudioSession在各种音频环境中起着非常重要的作用 •针对不同的音频应用场景,需要设置不同的音频会话分类 1 ...
- beta阶段——项目复审
beta阶段--项目复审 小组的名字和链接 优点 缺点 bug 排名顺序 颜罗王team http://www.cnblogs.com/LDLYMteam 界面清新,音乐能够选择是否播放,词汇按照四六 ...
- pyspark在windows中的安装
0.安装python,我用的是python2.7.13 1.安装jdk 一定要安装1.7以上的版本,安装低版本会报下面的错误 java.lang.NoclassDefFoundError 安装后不用手 ...
- HDU4054_Hexadecimal View
水题.直接八位八位地枚举即可. 注意控制输出,注意读数的时候要把s中的全部元素置零. #include <iostream> #include <cstdio> #includ ...
- CIR,CBS,EBS,PIR,PBS 名词解释 令牌桶应用
为了达到上述目的,我们需要对进入网络的流量进行监督,实现CAR(Committed Access Rate). CAR:将进入网络的用户流量的速率限制在约定的范围之内,从而避免引起网络拥塞. CIR( ...