Python Urllib2和Cookielib的综合使用

Python Urllib2和Cookielib的综合使用


标签(空格分隔): Python Urllib2 Fetch


  1. 手动添加请求的Headers,在opener,Request,urlopen,看看有几种方法可以使用相同的Headers处理不同的网页;

  2. 设定CookieJar,设定cookielib.Cookie()

  3. 手动添加Headers,并设定CookieJar,看看能否自动处理;

1.手动添加Headers


1.1 添加到opener上


?





1

2

3

4

5

6

7

8

opener =
urllib2.build_opener(urllib2.HTTPCookieProcessor)

opener.addheaders #此时会显示 "Python-urllib/2.7"

opener.addheaders[0]=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0") #把 user-agent变了

    #剩下的添加自己需要的内容,比如Cookie, X-Requested-With

opener.addheaders.append(******,*******)

    #最后可以使用一个opener打开多个内容

opener.open(url1)

opener.open(url2)

之后可以一直使用opener.open打开自己想要打开的网址,headers不需要每次都构建一次了。

1.2 Request对象


Request使用 urllib2.Request(url[, data][, headers][, originreqhost][,
unverifiable]) 进行创建,可以看出,url是必需的。所以构建一个Request对象只能打开一个网页。
修改Request的Headers有两种方法

  • 直接修改Request.headers 这个字典

  • 使用Request.add_header添加一个header

1.3 使用urllib2.urlopen(url[, data][, timeout])

最简单打开一个网页的方法就是直接使用urllib2.urlopen,参数url可以是网址也可以是Request对象。很明显,也不能更换url,甚至不能更改headers。想要添加headers,需要在Request对象里更改。
不过可以使用urllib2.install_opener(opener)修改默认的opener,在使用第一种方法设定好opener的headers后,就可以直接使用urlopen了。所有发送的请求都会自动带上opener的headers。

2 cookielib和CookieJar自动处理


Python Urllib2和Cookielib的综合使用,码迷,mamicode.com

时间: 2024-10-24 13:20:27

Python Urllib2和Cookielib的综合使用的相关文章

Python学习之cookielib模块

cookielib是一个用于处理客户端HTTP cookie的模块 https://docs.python.org/2/library/cookielib.html?highlight=cookielib#cookielib In [191]: import cookielib,urllib2 In [192]: cj=cookielib.CookieJar() In [193]: openner=urllib2.build_opener(urllib2.HTTPCookieProcessor(

Python urllib2 发送HTTP Request

urllib2 是Python自带的标准模块, 用来发送HTTP Request的.  类似于 .NET中的,  HttpWebRequest类 urllib2 的优点 Python urllib2 发出的HTTP Request, 能自动被Fiddler截获, 方便了调试. Python 可以自动处理Cookie urllib2 的缺点 Python urllib2 发出的http Request, 中的header 会被修改成"首字母大写", 比如你的代码里写的header 是:

python urllib2 模拟网站登陆

1. 可用浏览器先登陆,然后查看网页源码,分析登录表单 2. 使用python urllib2,cookielib 模拟网页登录 import urllib,urllib2,cookielib #urllib2 支持 http,https def loginWeb(site,user,pwd): ''' 模拟网页登陆,登陆网址,用户名,密码不能为空 登录post form 表单逻辑需要对应登录网站,可以使用火狐浏览器firebug插件查看登陆请求的网址和参数 ''' formValue={'ac

Python 20.21. cookielib模块翻译

Python 20.21.用于http客户端的处理的模块 By 白熊花田(http://blog.csdn.net/whiterbear) 转载请注明出处,谢谢. 原文链接:https://docs.python.org/2/library/cookielib.html 标注: cookielib模块已经在python3中改名为http.cookiejar了.2to3这个工具能够自动地在你将代码由python2.x转为python3.x帮你更正源码. 简介: cookielib模块中定义了几个处

python urllib2库的简单总结

urllib2的简单介绍参考网址:http://www.voidspace.org.uk/python/articles/urllib2.shtml Fetching URLsThe simplest way to use urllib2 is as follows :1.import urllib2response = urllib2.urlopen('http://python.org/')html = response.read() 2.import urllib2req = urllib

Python Special Syntax 10:列表综合,不定数参数传递(C#的params关键字)

列表综合 参见:http://woodpecker.org.cn/abyteofpython_cn/chinese/ch15s03.html #-*-coding:utf-8 def ttt(value1,*args): for i in args: value1+=i print(value1) def tt2(**args): iSum=args['a']+args['b'] print iSum ttt(10,1,2,3,4) tt2(a=3,b=4) 输出:207 Python Spec

python urllib2使用心得

python urllib2使用心得 1.http GET请求 过程:获取返回结果,关闭连接,打印结果 f = urllib2.urlopen(req, timeout=10) the_page = f.read() f.close()print the_page 2.http GET请求 + 包头 paras = "Token=1234567890;Uuid=0987654321" send_headers = {"Cookie": paras, "Us

Python urllib2实例代码演示

使用urllib2访问页面: import urllib2 import cookielib url = "http://www.baidu.com" print 'The first method : ' response1 = urllib2.urlopen(url) print response1.getcode() print len(response1.read()) print 'The second method : ' request = urllib2.Request

python urllib2 http get、post请求的区别

python urllib2 实现HTTP 的GET POST 请求 python 一般可以用模块urllib2 来实现GET POST的http 请求 GET  请求 import os,sys import os,sys import urllib2 http_str = 'http://127.0.0.1:12345/apps/' + serviceLine + '/clusters/' + clusterName url = http_str + '/machine_info' req