Python爬虫篇--1

学习笔记(3.27-3.29)

这几天主要学爬虫的基础知识,然后跟着一些示例进行尝试,接下来还得进行一些简单的实战,才能更好地掌握。下面是记录的一些基础知识的笔记。


目录

一. 爬虫基础:

  • HTTP基本原理
  • 网页组成
  • 爬虫基本原理
  • 会话和Cookies
  • 代理

二. urllib库的使用

三. requests库的使用


一. 爬虫基础

HTTP基本原理:访问网站时分为两个步骤:请求;响应

  • 请求:①常见的两种请求有GET和POST;②请求网址:URL;③请求头:包 含Cookie、Referer、User-Agent等重要信息;

  • 响应:①响应状态码:表示服务器的响应状态;②响应头:包含Date、Content-Type、Server、Set-Cookie等信息;③响应体:正文数据, 如HTML码;

网页组成:
①HTML;②CSS;③JavaScript;

爬虫基本原理:
①获取页面;②提取信息;③保存数据;

会话和Cookies:
保持HTTP的连接状态;

代理:
通过向代理服务器发出请求,然后再由代理服务器间接发给Web服务器。


二. urllib库的使用

"发送请求"需要用到的模块及其中的类、函数和方法等:

  • request模块:①urlopen()方法;②Request类;③各种Handler类;build_opener()方法;add_password()方法;④open()方法;
  • 高级用法:①需验证的网页;②代理;③cookies的获取;④方法:建立handler–构建opener–在将它open();

"异常处理"需要用到的模块:

  • error模块:①URLError类(reason属性);②HTTPError类(reason、code、 headers属性);
  • 补充:可以用isintance()方法来更详细地判断异常类型;

"解析链接"时用到的模块:

  • parse模块:①urlencode()方法–将参数字典转化为字符串;②urlparse()方 法–实现URL的识别和分段,分成6段;③urlunparse()方法–将6个 分断整合成一个URL;④urlsplit()方法–实现URL的识别和分段, 但只分成5段;⑤urlunsplit()方法–将5个分断整合成一个URL;⑥ urljoin()方法–将接受的两个参数的第二个拼接到第一个参数上(第 一个参数最多接受3段);⑦urlencode()方法–将参数由字典类型转 化为GET请求参数(序列化);⑧parse_qs()方法–反序列化,将参数 转化为字典类型;⑨parse_qsl()方法–反序列化,转为列表类型; ⑩quote()方法–可以将内容(如当链接中出现中文时)转化为URL编 码;⑪unquote()方法–将URL编码解码还原;

"分析Robots协议"的知识点及模块:

  • 知识点:①Robots协议–robots.txt文件,放在网站根目录下;②robots.txt可 规定对爬虫的各种限制;③爬虫爬取前先寻找该文件,确定哪些页面可 爬取,无该文件则直接撒网爬取;
  • robotparser模块:①set_url()方法–用来设置robots.txt文件的链接;②read() 方法–读取robots.txt文件–必须调用!③parse()方法–参 数是r.t文件某些行的内容,然后解析;④can_fetch()方法-- 传入2个参数(User-agent和URL),返回T&F表示此URL能否 抓取;⑤mtime()方法–返回上次抓去和分析r.t文件的时间; ⑥modified()方法–与⑤类似;

三. requests库的使用

基本用法:

  • GET请求:用get()方法实现请求,得到Response对象;其中get()可传入参数 如:params参数(格式)等;而Response作为响应对象,可用"."加上包含的属性 使其显示出来;若要打开从网页抓取的二进制数据(如:图片、音/视频),则要另 外用open()传入文件名以及二进制形式打开指令;
  • POST请求:调用post()方法,返回表单形式,调用时可加入数据(字典)参数
  • 响应:属性 (text\content\cookies\headers\status_code) 等分别可以用来 得到 (内容\cookies\响应头\状态码)等 ;

高级用法:

  • 文件上传:在请求网站的同时传入files参数(文件名);
  • Cookies:可以直接对 response对象使用cookies属性来得到,也可迭代cookies属性将其打印出来,将cookies设置到headers里面发送请求可以维持登录状态;
  • 回话维持:需使用session对象;
  • SSL证书验证:为get()方法传递verify(设为False)参数;
  • 代理设置:用proxies参数(字典格式);
  • 超时设置:传递timeout(=n)参数;
  • 身份验证:传入参数–auth=(‘username’,‘password’)元组
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值