什么是代理?
代理就是代理服务器(proxy server),存在的目的:代理网络用户访问服务器获取数据
为什么使用代理?
因为在爬虫爬取数据的过程中,如果提高爬取效率,往往会导致访问服务器频率过快,超过对方服务器设置的频率阀值,就可能认为你是一个违规用户(爬虫),会封掉你的ip(封ip并不是一个永久行为)
proxies:对应的是一个字典类型
常用的是http/https代理服务器
并且要是高匿代理
代理的获取途径:
免费:西刺代理、快代理、讯代理 (质量不高)
收费代理:西瓜代理、快代理、讯代理、芝麻代理、阿布云代理 (质量高)
MozillaCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。
什么是opener?
opener是 urllib.request.OpenerDirector 的实例我们经常使用的 urlopen方法内部其实就是自定义了opener
为什么要自定义opener?
因为urlopen方法比较有局限性,不能够实现一些高级的功能(使用代理,处理cookies),这时我们就需要自定义opener
去实现这些功能
handler:处理器,实例化一个 handler的目的是为了完成特定
install_opener():将自定义的opener设置为全局的opener,
下次纸雕调用urlopen方法的时候使用的就是自定义的opener
http:请求是没有状态的,是依靠session和cookies维持统一会话
为什么要获取cookies?
网站有一些比较重要的信息,只有登陆之后才能访问,登陆网网站成功后,浏览器本地的cookies信息会发生变化(cookie保存着登陆之后的用户信息),所以要获取cookie,模拟登录用户访问网站