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

    世界上80%的爬虫是基于python开发的,学好爬虫技能,对后续的大数据分析,挖掘,机器学习提供重要的数据源

    网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本

    爬虫的本质是什么

      模拟浏览器打开网页,获取网页中我们想要的那部分数据

    浏览器发送消息给网址所在的服务器,这个过程叫做http Request(请求)

    服务器收到浏览器发送的消息后,根据发送的内容,作出相应的处理,然后把消息传给浏览器,这个过程叫做http Response(响应)

    爬虫的基本流程

    发起请求

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

    获取响应内容

    如果服务器能正常相应,会得到一个Response,其中的内容便是所要获取的页面内容,类型可能是html,json字符串,二进制数据(图片或者视频)等类型

    解析内容

     得到的内容可能是html,可以用正则,页面解析库进行解析

      可能是json,可以直接转换为json对象解析

      可能是二进制数据,可以做保存或者进一步处理

    保存数据

    保存形式多种多样,可以存为文本,可以保存为数据库,或者特定格式的文件

    request包含

    请求方式

    主要有:get和post两种常用类型,两者的区别是get请求的数据放在url中,post则是放在头部

    get:向指定的资源发出"显示请求".使用get方法操作应该只用在读取数据,

    post:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件).数据被包含在请求文本中,这个请求可能会创建新的资源,或者修改现有资源,抑或两者皆有

    请求URL

    URL,即统一资源定位符,也就是我们所说三个部分组成的网址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该曾样处理他

    URL的格式由三个部分组成

      第一部分是协议(服务方式)

      第二部分是存储该资源的主机IP地址(也包括端口号)

      第三部分是主机资源的具体地址,比如目录和文件名

    爬虫爬取数据时必须有一个目标的URl才可以获取数据,

    请求头

     包含请求时的头部信息,比如User-Agent,Host,Cookies等信息

    请求体

     请求时携带的数据,比如提交表单时的表单数据(post)

    Response包含

      所有http响应的第一行都是状态行,依次是http版本号,三位数字组成的状态代码,以及描述状态的词语,彼此由空格分隔

    响应状态

      有多种:比如  200代表成功,301跳转,404找不到页面,502服务器错误

    响应头

      比如内容类型,类型长度,服务器信息,设置Cookie

    响应体

      最主要的部分,包含请求资源的内容,比如html,二进制数据等

    能够爬取什么样的数据

    网页文本:html文档,json格式化文本

    图片:获取到二进制文件,保存为图片格式

    视频:二进制文件

    其他:只要是能够请求到的,都可以获取

    如何解析数据

    1.直接处理

    2.json解析

    3.正则表达式处理

    4.BeadutifulSoup解析处理

    5.PyQuery解析处理

    6.Xpath解析处理

  • 相关阅读:
    android动画坐标定义
    Android animation 动画背景图自动播放的实现
    松开手,你可以拥有更多
    Serializable继承和用途
    程序员必备的国外IT网站
    android 解析json数据格式
    免费的天气预报API谷歌,雅虎,中央气象台
    关于Lockfree Hash Table的一些链接资料
    字符串匹配算法之Brute force algorithm
    java 处理高精度计算
  • 原文地址:https://www.cnblogs.com/sunlizhao/p/8670458.html
Copyright © 2011-2022 走看看