爬虫基本原理介绍

  • 什么是爬虫
    请求网站并提取数据的自动化程序
  • 爬虫基本请求
  1. 发起请求
    通过http库向目标站点发起请求,即发送一个request,请求可以包括额外的headers等信息,等待服务器响应
  2. 获取响应内容
    如果服务器能正常响应,会得到一个response,response的内容就是索要获取的页面内容,类型可能有html,json字符串,二进制数据(比如图片或者视频)等类型
  3. 解析内容
    得到的内容可能是html,可以使用正则表达式,网页解析库进行解析。可能是json,直接转换为json对象解析,可能是二进制数据,直接保存或者进一步处理
  4. 保存数据
    保存形式多样,可以保存为文本,也可以保存到数据库,或者保存为特定格式的文件
  • Request和Response介绍


    image.png
  1. 浏览器发送消息给所在网址的服务器消息,这个过程就是http Request
  2. 服务器收到收到浏览器发送的消息,会根据浏览器发送消息的内容,作适当处理,然后把消息回传给浏览器,这个过程叫做http Response
  3. 浏览器收到服务器的Response信息以后,会对消息进行相应的处理,然后展示
  • Request 相关知识
  1. 请求方式
    主要有get、post两种类型,另外还有head、put、delete、options等
  2. 请求URL
    URL全程统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定
  3. 请求头
    包含请求时的头部信息,比如User-Agent、Host、Cookies等信息
  4. 请求体
    请求时额外携带的数据,不如表单提交时的表单数据
  • Response 相关知识
  1. 响应状态
    有多重响应状态,比如200表示成功、301跳转、404找不到网页、502服务器错误
  2. 响应头
    如内容类型、内容长度、服务器信息、设置Cookie等
  3. 响应体
    最主要的部分。包含了请求资源得内容。比如网页HTML、图片、二进制数据等
  • 爬虫能抓什么数据
  1. 网页文本
    如html文档,json格式文本
  2. 图片
    获取的是二进制文件,保存为图片格式
  3. 视频
    同为二进制文件,保存为视频格式即可
    4 其他
    只要是能获取到的,都不获取
  • 常见的解析方式
  1. 直接处理
  2. json解析
  3. 正则表达式处理
  4. BeautifulSoup
  5. PyQuery
  6. Xpath
  • 如何解决JavaScript渲染的问题
  1. 分析Ajax请求
  2. Selenium/WebDriver
  3. Splash
  4. PyV8、Ghost.py
  • 如何保存数据
    1.文本
    出文本、json、xml
  1. 关系型数据库
    比如MySQL、Oracle、SQL Server等具有结构化表结构的存储
  2. 非关系型数据库
    比如MongoDB、Redis等Key-Value形式存储
  3. 二进制文件
    比如图片、视频、音频等直接保存为特定格式即可

你可能感兴趣的:(爬虫基本原理介绍)