zoukankan      html  css  js  c++  java
  • 爬虫原理分析


    1、什么是爬虫?

    答:请求网站并提取数据的自动化程序


    2、爬虫的基本流程

    (1)、发送请求:

    通过Http库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应

    (2)、获取响应内容

    如服务器正常响应,即返回一个Response对象,其内容即为所要获取的页面内容,但其类型可能是HTML,JSON字符串。二进制数据(包含图片/视频)等类型

    (3)、解析内容

    对于返回的response为HTML,我们可以使用正则表达式、网页解析库进行解析;对于JSON字符串,我们将其转为Json对象进行解析;对于二进制数据,我们需对其进行进一步处理

    (4)、保存数据

    这里我们需对等到的数据进行结构化的存储,可以存为文本、可以存到数据库、或者存为你想保存的数据类型,方便进一步操作


    3、Request详解

    (1)、请求方式:

    主要为GET、POST两种类型,其他的小伙伴们了解即可(打开Chrome 浏览一个网页--右击检查开启开发者工具--单击Network选项卡找到Headers --General中的Request Method :即可查看请求方式 );GET请求特点:请求参数都在url中 /POST请求特点:Headers中多了form data ,另外url中不包含一些请求参数

    (2)、请求URL(统一资源定位符,如一个网页文档、图片等具有唯一的url进行定位)

    (3)、请求头(包含配置信息)【User-Agent ; Referer ;Cookies这三个为重要配置信息】

    配置信息作用:服务器会根据请求头中的信息,来判断请求是否合法,决定是否返回response

    (4)、请求体(只用于post请求)


    4、Response详解

    (1)、响应状态(200--表示成功,其他数字请参考:http://tool.oschina.net/commons?type=5)

    (2)、响应头(Response Headers)

    (3)、响应体(包含网页的源代码、图片、视频、二进制数据等)


    5、爬虫能爬什么信息????

    答:

    (1)网页文本,如HTML文档、Json格式文本

    (2)、图片、视频等(二进制流)


    6、解析方式详解(获取响应后我们需进行解析)

    (1)、直接处理(针对返回的是字符串的网页)

    (2)、json解析(针对Ajax加载的数据)

    (3)、正则表达式

    (4)、BeautifulSoup

    (5)、PyQuery

    (6)、Xpath 或Css


    7、解决JavaScript渲染问题

    (1)、分析Ajax请求

    (2)、Selenium/WebDriver

    (3)、Splash

    (4)、PyV8Ghost.py


    8.保存数据

    (1)、文本(纯文本、json、xml等)

    (2)、关系型数据库(mysql oracle sql server)存为结构化的数据

    (3)、非关系型数据库(mongodb redis)存为KEY-VALUE形式

    (4)、二进制文件(图片、视频、音频等)


    总结:小伙伴们是不是对爬虫的整个流程有了宏观的认识了!(下面让我们开始练习吧)


  • 相关阅读:
    miniconda安装和使用
    linux下git push出现“更新被拒绝,因为远程仓库包含您本地尚不存在的提交。”问题的处理
    win8、win10系统添加组策略的方法
    Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)
    thinkphp5 连接SQLserver
    thinkphp5 上传图片压缩
    在Vue中使用了Swiper ,从后台获取动态数据后,swiper滑动失效
    微信小程序多图上传及后台处理(后台用thinkphp3.2)
    PHP 数组下标从0开始
    微信小程序去除左上角返回的按钮
  • 原文地址:https://www.cnblogs.com/518894-lu/p/9021548.html
Copyright © 2011-2022 走看看