CookieJar:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。
MozillaCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。
urlparse()实现URL的识别和分段
使用cookie(模拟登陆)保持回话
Session可以维持同一个回话
Install_opener使用全局opener
:param method: 请求方式
:param url: 发起请求的url
:param params: get请求后面拼接的参数,(字典类型)
:param data: 发送post请求的时候要传递的表单数据,(字典类型)
:param json: 同样是发起post请求时传递的参数,(json数据类型)
:param headers: 请求头
:param cookies: 发起请求携带cookies参数,要吗的字段,要吗是cookiesjar对象
:param files: 上传文件
:param auth: 网页认证
:param timeout: 设置请求超时时间
:param allow_redirects: 设置是否允许重定向(bool值类型)
:param proxies: 设置代理(字典类型)
:param verify: 是否要进行证书认证,默认为True,表示验证
9. 进程,线程对比功能
进程,能够完成多任务,比如在一台电脑上能够同时运行多个QQ
线程,能够完成多任务,比如一个QQ中的多个聊天窗口
定义的不同
进程是系统进行资源分配基本单位
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位
线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享所在进程所拥有的全部资源
区别
一个程序至少有一个进程,一个进程至少有一个线程
线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大提高了程序的运行效率
线线程不能够独立执行,必须依存在进程中
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。
多进程常用来处理计算密集型任务
多线程常用来处理IO密集型任务
Scrapy框架
Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛
框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便
Scrapy 使用了 Twisted['twɪstɪd] 异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求
异步:调用在发出之后,这个调用就直接返回,不管有无结果 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程