import urllib.request
import urllib.parse
import http.cookiejar # http.cookiejar 该包是专门对网页的cookie只进行获取的
# cookiejar是专门让代码保存cookie值
# 创建一个cookiejar对象
cookiejar = http.cookiejar.CookieJar()
# 根据cookiejar创建一个管理器对象
handler = urllib.request.HTTPCookieProcessor(cookiejar)
# 在使用handler创建一个opener对象对服务器发送请求
opener = urllib.request.build_opener(handler) url = "http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2019131959912"
headers = {
"User-Agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
data = {
"email":"15904923018",
"icode":"",
"origURL":"http://www.renren.com/home",
"domain":"renren.com",
"key_id":"1",
"captcha_type":"web_login",
"password":"3912395285b1bc3a702d4b786c6ca78f31e3eb02581632ff953f3cde5d4a0e4c",
"rkey":"72b87c9a06689d433fac19cc32918a24",
"f":"https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DG3uWgGKuXm54K9E_sD5z1fU3YkI4h1UVckfBqdYMWk_%26wd%3D%26eqid%3D979d3c7c0004e681000000025c63fb79",
}
data = urllib.parse.urlencode(data).encode("utf8")
request = urllib.request.Request(url,headers=headers)
# response = urllib.request.urlopen(request,data=data) response = opener.open(request,data=data)
#显示的结果是一个含登录信息的网页地址
print(response.read().decode("utf8")) # 显示结果:
# {"code":true,"homeUrl":"http://www.renren.com/home"} # 获取登录时的cookie值
# 登录后访问其他含登录信息的网页时,必须带着cookie get_url = "http://www.renren.com/969727800/profile"
request = urllib.request.Request(get_url,headers=headers) # opener对象保存了登录时的cookie值
# 再次更换请求对象使用opener进行请求时,cookie还是存在的,能够保存登录信息
response1 = opener.open(request)
with open("renren1.html","wb")as tf:
tf.write(response1.read())

爬虫学习(九)——登录获取cookie爬取的更多相关文章

  1. Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(人人网)(下)

    Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(下) 自动使用cookie的方法,告别手动拷贝cookie http模块包含一些关于cookie的模块,通过他们我们可以自动的使用co ...

  2. Python爬虫教程-12-爬虫使用cookie爬取登录后的页面(人人网)(上)

    Python爬虫教程-12-爬虫使用cookie(上) 爬虫关于cookie和session,由于http协议无记忆性,比如说登录淘宝网站的浏览记录,下次打开是不能直接记忆下来的,后来就有了cooki ...

  3. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化

    实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件和excel文件. 实 ...

  4. Java爬虫学习(1)之爬取新浪微博博文

    本次学习采用了webmagic框架,完成的是一个简单的小demo package com.mieba.spiader; import us.codecraft.webmagic.Page; impor ...

  5. Python爬虫学习——使用selenium和phantomjs爬取js动态加载的网页

    1.安装selenium pip install selenium Collecting selenium Downloading selenium-3.4.1-py2.py3-none-any.wh ...

  6. Python登录豆瓣并爬取影评

    上一篇我们讲过Cookie相关的知识,了解到Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化设置(如用户自 ...

  7. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  8. python网络爬虫之解析网页的BeautifulSoup(爬取电影图片)[三]

    目录 前言 一.BeautifulSoup的基本语法 二.爬取网页图片 扩展学习 后记 前言 本章同样是解析一个网页的结构信息 在上章内容中(python网络爬虫之解析网页的正则表达式(爬取4k动漫图 ...

  9. Python爬虫入门教程 5-100 27270图片爬取

    27270图片----获取待爬取页面 今天继续爬取一个网站,http://www.27270.com/ent/meinvtupian/ 这个网站具备反爬,so我们下载的代码有些地方处理的也不是很到位, ...

随机推荐

  1. List<Object> 使用Linq

    List<Asset> bdList = allAsset.Where(m => m.Owner.Depts == view.DeptName).ToList(); var quer ...

  2. spring boot与 spring.factories

    spring boot启动加载过程 META-INF下面的spring.factories 解析@Configuration https://www.jianshu.com/p/346cac67bfc ...

  3. Hibernate 批量保存数据

    public Boolean save(Collection<Object> os) { int batchSize = 50,i=0; Session session=this.sess ...

  4. Microsoft JET Database Engine (0x80004005)未指定的错误解决

    Microsoft JET Database Engine (0x80004005)未指定的错误,这个错误只有在使用Access数据库时才能出现 出现以上问题,可以使用以下步骤进行解决问题: 1.系统 ...

  5. Spark 概述

    Spark 是什么? ● 官方文档解释:Apache Spark is a fast and general engine for large-scale data processing. 通俗的理解 ...

  6. bash和zsh切换

    zsh切换bash bash切换zsh 切换bash chsh -s /bin/bash 切换zsh chsh -s /bin/zsh

  7. Primefaces dataTable设置某个cell的样式问题

    设置primefaces dataTable的源网段列的Cell可以编辑,当回车键保存时,判断是否输入的网段合法,如果不合法就显示警告信息,并将这个不合法的数据用红色表示.问题是,怎么给这一个cell ...

  8. 使用Quartz任务调用的时候报错Based on configured schedule, the given trigger will never fire.

    org.quartz.SchedulerException: Based on configured schedule, the given trigger will never fire. 大概意思 ...

  9. 安卓adb调试命令常见的问题

    首先本人使用的是ubuntu系统,在Eclipse下开发的时候使用无线调试,在终端直接输入adb connect 114.114.114.114没有问题,给手机安装软件用adb install  ** ...

  10. Android客户端与PC服务端、android服务端通过WiFi通信

    前期准备:我的是Linux Mint操作系统(总之折腾的过程中怀疑过是不是系统的问题),首先是要创建wifi热点给android手机使用,这个时候笔记本作为通信的服务器端,android手机作为客户端 ...