coding=UTF-8

import re
import urllib.request, http.cookiejar, urllib.parse#
# print('---------------第一种方法----------------------')
# URL = 'https://baike.baidu.com/item/%E5%B7%B4%E6%B2%99%E5%B0%94%C2%B7%E9%98%BF%E8%90%A8%E5%BE%B7/2867946?fromtitle=%E9%98%BF%E8%90%A8%E5%BE%B7&fromid=9693472'
# response = urllib.request.urlopen(URL)
# if response.getcode() == 200:
#     conf = response.read()
#     print(conf)
# else:
#     print('Fail')
#
# print('---------------第二种方法----------------------')
# # 创建 request 对象
# request = urllib.request.Request(URL)
#
# # 封装 request 对象
# request.add_header('User-Agent', 'Mozilla/5.0')
#
# # 发送带头信息的请求
# response1 = urllib.request.urlopen(request)
# if response1.getcode() == 200:
#     conf = response1.read()
#     print(conf)
# else:
#     print('Fail')print('---------------第三种方法----------------------')
URL2 = 'http://lczl.cnki.net/jbdetail/index?query=1'
URL3 = 'http://r.cnki.net/Klogin/Login.aspx?ReturnUrl=http://lczl.cnki.net/jbdetail/index?query=1'
# 创建cookieJar作为cookie容器
cj = http.cookiejar.CookieJar()# 创建一个opener
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))# 给urllib.request安装opener
urllib.request.install_opener(opener)# 封装 request 对象
request1 = urllib.request.urlopen(URL2)def getVIEWSTATE(data):cer = re.compile('name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"(.*)\"', flags=0)strlist = cer.findall(data)# print(data)return strlist[0]VIEWSTATE = getVIEWSTATE(request1.read().decode())
# print(VIEWSTATE)
data = {'__VIEWSTATE': VIEWSTATE.encode(), 'userName': '345666561@qq.com', 'passWord': '215501','iplogin': 0}  # 登陆用户名和密码
post_data = urllib.parse.urlencode(data).encode()request2 = urllib.request.Request(URL3, post_data)
request2.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0')response2 = urllib.request.urlopen(request2)
if response2.getcode() == 200:conf = response2.read()print(conf.decode('utf8'))print(cj)
else:print('Fail')

转载于:https://www.cnblogs.com/cenzhongman/p/7344406.html

三种urllib实现网页下载,含cookie模拟登陆相关推荐

  1. 爬虫实战学习笔记_2 网络请求urllib模块+设置请求头+Cookie+模拟登陆

    1 urllib模块 1.1 urllib模块简介 Python3中将urib与urllib2模块的功能组合,并且命名为urllib.Python3中的urllib模块中包含多个功能的子模块,具体内容 ...

  2. 利用python爬虫(part15)--cookie模拟登陆

    学习笔记 文章目录 cookie模拟登陆 获取cookie 爬取我的简介 cookie模拟登陆 有的时候,我们想要抓取一个网站,但是需要先登录才能访问它,如果不输入用户名和密码,我们就会一直停留在登录 ...

  3. PythonScript_003_通过Cookie模拟登陆人人网

    #!/usr/bin/env python # -*- coding:utf-8 -*-import urllib.request import http.cookiejar # 相当于Python2 ...

  4. Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))

    1. 为什么需要模拟登陆? 获取cookie,能够爬取登陆后的页面的数据 2.使用cookie模拟登陆的场景 (1) cookie过期时间很长,常见于一些不规范的网站 (2) 能在cookie过期之前 ...

  5. c access mysql数据库_基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)...

    基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo) 一.三种数据库的主要对比 数据库类型 特点 Microsoft Access 桌面数据库.数据库载体是单个文件 ...

  6. 拱拱Lite开发(3):三翼页及湘大文库下载实现(解析网页获取信息及模拟登陆)

    因为没有三翼新闻及湘大文库的API,简单的方法行不通就只能绕远啦,我们这次来解析网页,嗯,是个体力活其实.因为网页HTML也是有一定格式的,所以只要网页结构不进行大的改动,我们就可以一直这样解析网页获 ...

  7. 7,复习,多对多表的三种创建,form组件,cookie,session

    昨日内容回顾  choices字段   只要是能够罗列出来的有限个选项的都可以使用choices字段来做    1.学历,工作经历,性别,工作状态,客户来源,婚嫁    gender_choices ...

  8. php psot传值_三种方法教你如何用PHP模拟post提交数据

    php模拟post传值在日常的工作中用到的不是很多,但是在某些特定的场合还是经常用到的. 下面,我整理了三种php模拟post传值的方法,file_get_contents.curl和socket. ...

  9. Scrapy中用cookie模拟登陆新浪微博

    最近想做一个微博的搜索页文本分析的小项目,因为开放平台里这个api的限制略多,决定进入爬虫坑自己动手. 之前久闻Scrapy大名,尝试了一下,抓取网页甚是好用,避免了许多HTTP方面的繁琐处理.不过还 ...

最新文章

  1. HTML的标签描述1
  2. r720支持多少频率的内存吗_关于内存频率,高频和低频的性能差距大吗?明白这3点很重要...
  3. VC实现将对话框最小化到系统托盘
  4. java高效率素数算法_《Core Java》里给出的算法,效率比较高。 统计2000000以内的所有的素数。...
  5. 借助Spring站点开始一个spring项目
  6. 【数据结构学习之完全从零实现所有数据结构的代码编写之二】智能指针
  7. 多规则策略如何筛选|视频版
  8. 计算机打开管理工具空白,大师解决win10系统打开设备管理器却显示空白的办法...
  9. 存数据返回他的序列号id_使用excel进行数据分析
  10. php操作mysqli(示例代码)
  11. Mybatis(2)——Mapper映射文件
  12. 使用reportlab生成条码
  13. nekohtml和htmlparser
  14. workbench动力学周炬_ANSYSWorkbench有限元分析实例详解(动力学)
  15. 欧拉角与四元数互相转换
  16. Access 连接字符串汇总
  17. 华为性格面试的技巧方法
  18. 目标检测拉近镜头数据增强
  19. 应聘PHP有面试题吗,php应聘面试题
  20. 匿名发脉脉的拼多多员工,是如何被发现的?背后真相令人发指...

热门文章

  1. 【蓝桥杯】题目 1429: 兰顿蚂蚁
  2. 【数据结构和算法笔记】:稀疏矩阵的存储结构详解
  3. SDL2源代码分析4:纹理(SDL_Texture)
  4. php如何将读取到的mysql内容按发布的日期分割显示_php如何读取文件夹目录里的文件并按照日期,大小,名称排序...
  5. C# 根据url获取文件流流
  6. Helm 3 完整教程(十五):Helm 函数讲解(9)网络函数、文件路径函数、类型检查函数
  7. python高斯求和_利用Python进行数据分析(3)- 列表、元组、字典、集合
  8. 【LOJ#123】最小生成树,Kruskal模板
  9. jQuery→事件、jQuery事件对象属性方法、多事件、自定义事件
  10. 为什么很少人学汇编_要想精通C语言,必须先学习汇编吗