网络爬虫学习前置知识

本文介绍了Scrapy爬虫的基本使用,包括创建工程和spider模版,编写spider及item pipeline。重点讲解了Scrapy中的Request、Response和Item数据类型。Request包含6个属性和方法,如URL、请求方法、头部信息等;Response包括URL、状态码、头部信息等内容;Item用于存储从HTML中提取的信息,类似字典。还提及了提取信息的工具如Beautiful Soup、Lxml、正则表达式和XPath。最后,概述了Requests库的主要方法和异常处理。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值