python学习笔记1
来源:互联网 发布:查询淘宝账号 编辑:程序博客网 时间:2024/05/16 08:46
HTTP代理介绍
代理服务器是介于浏览器和web服务器之间,通常是浏览器向web服务器发出请求,使用代理服务器后,浏览器先向代理服务器发出请求,然后代理服务器再向web服务器取回请求的资源。
HTTP代理本质上是一个Web应用,它和其他普通Web应用没有根本区别。HTTP代理收到请求后,根据Header中Host字段的主机名和Get/POST请求地址综合判断目标主机,建立新的HTTP请求并转发请求数据,并将收到的响应数据转发给客户端。
Proxy(代理)的设置
import urllib.request
创建一个代理处理器
proxy_handler = urllib.request.ProxyHandler({'http': '代理服务器地址'})
创建一个opener,python在打开一个url链接时,就会使用opener。其实,urllib.request.urlopen()函数实际上是使用的是默认的opener,只不过在这里我们需要定制一个opener来指定handler。
opener = urllib.request.build_opener(proxy_handler)
使用这个opener打开要进入的网页URL
(1)r = opener.open('https://www.zhihu.com/#signin')print(r.read())
备注:(1)处也可以按照如下的方法,install_opener是创建一个全局默认的opener,这样会将程序默认的urlopen方法替换掉。
urllib.request.install_opener(opener)
response = urllib.request.urlopen(url)
cookie的使用
cookie是指某些网站为了辨别用户身份和session追踪而存储在用户本地终端上的数据。
获取cookie打印出来
import http.cookiejarimport urllib#声明一个CookieJar对象实例来保存cookiecookie = http.cookiejar.CookieJar()#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器handler=urllib.request.HTTPCookieProcessor(cookie)#通过handler来构建openeropener = urllib.request.build_opener(handler)#此处的open方法同urllib2的urlopen方法,也可以传入requestresponse = opener.open('http://www.baidu.com')for item in cookie: print('Name = '+item.name) print ('Value = '+item.value)注意在python3版本中cookiejar被 移到了http.cookiejar中。
保存cookie为文件
CookieJar是基类,接着是FileCookieJar。然后是两个子类MozillaCookieJar和LWPCookieJar。MozillaCookieJar和LWPCookieJar类都是FileCookieJar的子类。实现了具体的把cookie内容保存为文件的方法。只是这两个类对应的标准不同而已。
使用MozillaCookieJar保存cookie。
import http.cookiejar, urllib.requestfilename = "cookie.txt"cookie = http.cookiejar.MozillaCookieJar(filename)handler = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(handler)response = opener.open('http://www.baidu.com')cookie.save(ignore_discard=True, ignore_expires=True)
ignore_discard的意思是即使cookies将被丢弃也将它保存下来;ignore_expires的意思是如果在该文件中 cookies已经存在,则覆盖原文件写入。在这里,我们将这两个全部设置为True。
使用LWPCookieJar保存cookie
import http.cookiejar, urllib.requestfilename = 'cookie.txt'cookie = http.cookiejar.LWPCookieJar(filename)handler = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(handler)response = opener.open('http://www.baidu.com')cookie.save(ignore_discard=True, ignore_expires=True)读取cookie中的内容
import http.cookiejar, urllib.requestcookie = http.cookiejar.LWPCookieJar()cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)handler = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(handler)response = opener.open('http://www.baidu.com')print(response.read().decode('utf-8'))利用之前读取到保存的cookie文件登陆目标网站。
首先创建cookiejar.LWPCookieJar实例对象,然后读取cookie文件到变量,再创建一个自己的带有cookie的opener
注意:如果使用MozillaCookieJar保存的cookie,则要在登陆时要保持一致。
阅读全文
0 0
- python学习笔记1
- python学习笔记(1)
- python学习笔记(1)
- Python学习笔记1
- Python学习笔记1
- Python 学习笔记(1)
- Python学习笔记1
- python学习笔记【1】
- Python学习笔记【1】
- python学习笔记--1
- python学习笔记1
- Python学习笔记[1]
- python学习笔记--1
- python学习笔记1
- Python学习笔记 - 1
- 学习Python笔记1
- Python学习笔记(1)
- Python学习笔记.1
- 手机相机图像对比工具开发
- Neural Networks for Machine Learning
- C++学习笔记之QT/MFC生成二维码
- 嵌入式9月高薪就业榜6翻天 月薪过万比率超过50%
- kaldi训练thchs30详细步骤
- python学习笔记1
- 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26
- 04-栅格波段
- 排序算法(五)冒泡排序
- HBase Zookeeper的一些运维经验
- golang 简单的登录操作 http
- freemarker模板引擎
- 利用pandas实现一个小需求
- 方便运维提供sql执行功能