您的位置:首页 > 理论基础 > 计算机网络

网络爬虫学习前置知识

2019-08-17 13:58 92 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Antonio_Salieri/article/details/99692286

Scrapy爬虫的使用
步骤

  1. 创建一个工程和spider模版
  2. 编写spider
  3. 编写item pipeline模版
  4. 进行优化策略的配置
    Scrapy爬虫的数据类型:
  5. Request
    包含6个属性和方法
    .url Request对应的请求URL地址
    .method 对应的请求方法,‘GET’ ‘POST’等
    .headers 字典类型风格的请求头
    .body 请求内容主题,字符串类型
    .meta 用户添加的扩展信息,在Scrapy内部模块间传递信息使用
    .copy() 复制该请求
  6. Response
    .url Response 对应的URL地址
    .status HTTP状态码,默认是200
    .headers Response 对应的头部信息
    .body Response 对应的内部信息,字符串类型
    .flag 一组标记
    .request 产生Response 类型对应的Request对象
    .copy() 复制该响应
  7. Item
    是从HTML页面提取的信息内容
    由Spider生成,由Item Pipeline 处理
    类字典类型
    提取网络相关信息后,将生成键值对

提取信息的方法

  1. Beautiful Soup
  2. Lxml
  3. re
  4. XPath Selector
  5. css selector
    使用格式:
.css (‘a::attr (href)’). extract() (‘标签名称::attr(标签属性)’ r = request.get(url) 构建向服务器请求资源的Request对象 返回一个包含服务器的Response对象,包含从服务器返回的所有相关资源

request.get(url, params = None, **kwargs)
url:拟获取页面的url链接
Params:utl中的额外参数,字典或者字节流方式
**kwargs:12个控制访问的参数

requests为Response对象,包含爬虫返回的全部内容
Response 对象的属性

  1. r.status_code
    HTTP请求的返回状态,200表示链接成功,404表示失败
  2. r.text
    HTTP 响应内容的字符串形式,即,url对应的页面内容
  3. r.encoding
    从HTTP headers中猜测的响应内容编码方式
    如果header中不存在charset,则认为编码为ISO-8859-1,但这种编码不能解析中文
  4. r.apparent_encoding
    从网页内容中分析出响应方式编码方式
  5. r.content
    HTTP响应内容的二进制形式

理解Requests库的异常

  1. requests.ConnectionError
    网络链接错误异常,如DNS查询失败、拒绝链接等
  2. request.HTTPError
    HTTP错误处理
    r.raise_for_status() 判断返回的状态类型是不是200
  3. requests.URLRequired
    URL缺失异常
  4. requests.TooManyRedirects
    超过最大重定向次数,产生重定向异常
  5. requests.ConnectTimeout
    连接远程服务器超时异常
  6. requests.Timeout
    请求URL超时,产生超时异常

Requests 库的7个主要方法

  1. requests.requests()
    构造一个请求,支撑以下各方法的基础方法
  2. requests.get()
    获取HTML网页的主要方法,对应HTTP的GET
  3. requests.head()
    获取HTML网页头信息的方法,对应HTTP的HEAD
  4. requests.post()
    向HTML网页提交POST请求的方法,对应HTTP的POST
  5. requests.put()
    向HTML网页提交PUT请求的方法,对应HTTP的PUT
  6. requests.patch()
    向HTML网页提交局部修改请求,对应HTTP的PATCH
  7. requests.delete()
    向HTML页面提交删除请求,对应HTTP的DELETE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: