Proxyhandler 处理器(代理)
使用方法:
示例代码如下:
from urllib import request url = “www.baidu.com” # 创建一个 handler handler = request.Proxyhandler(["http":"233.241.25.25:3375"]) # 使用handler 创建一个opener opener = request.build_opener(handler) # 使用opener打开open方法 resp = opener.open(url) print(resp.read())
我们在使用爬虫的时候,经常会用到cookie进行模拟登陆和访问。在使用urllib库做爬虫,我们需要借助http.cookiejar
库中的CookieJar
来实现。
CookieJar类有一些子类,分别是FileCookieJar,MozillaCookieJar,LWPCookieJar。
CookieJar:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。
FileCookieJar (filename,delayload=None,policy=None):从CookieJar派生而来,用来创建FileCookieJar实例,检索cookie信息并将cookie存储到文件中。filename是存储cookie的文件名。delayload为True时支持延迟访问访问文件,即只有在需要时才读取文件或在文件中存储数据。
MozillaCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。
LWPCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与libwww-perl标准的 Set-Cookie3 文件格式兼容的FileCookieJar实例。
其实大多数情况下,我们只用CookieJar()
,如果需要和本地文件交互,就用 MozillaCookjar()
或 LWPCookieJar()
。
示例代码如下:
form urllib import request form http.cookieJar import cookieJar form urllib import parse # 1.登录 # 1.1 创建cookieJar对象 cookieJar = cookieJar() # 1.2使用cookieJar创建一个 HTTPCookierProcessor(cookieJar) handler = request.HTTpCookieProcessor(cookieJar) # 1.3适用handler创建一个opener opener = request.builid_opener(handler) handers = {XXXXX} data = {"user":"xxx", "password":"xxx" } login_url = "http:\\XXXXX" reqs = request.Request(login_url,data=patse.urlencode(data).encode("utf-8"),handers=handers) request.urlopen(resq) # 访问个人主页 gr_url = "http:\\xxxxxxxx" request.open(gr_url)
response.text和 response.content
response.text
返回的类型是str
response.content
返回的类型是bytes
,可以通过decode()
方法将bytes
类型转为str
类型
推荐使用:response.content.decode()
的方式获取相应的html页面
response.encoding = ‘gbk‘
response.content.decode(‘utf8‘)
原文:https://www.cnblogs.com/toling/p/11342729.html