美文网首页
爬虫基本原理

爬虫基本原理

作者: ivan_cq | 来源:发表于2019-01-30 01:06 被阅读0次

    • 什么是爬虫?
      请求网站并提取数据的自动化程序。
      (写代码模拟浏览器向服务器发送请求,然后获取网络资源。一般来说获取到的网络资源是一段html代码,包含html标签还有在浏览器中看到的一些文字。要提取的数据就包含在html文本里。我们要做的就是从这个文本里提取出我们想要的信息。提取出来之后存储。)

    • 网页查看
      打开一个网页,右键鼠标,显示Elements是网页的源代码。


    • 爬虫的基本流程

    1、发起请求
    通过http库向目标站点发起请求,发送一个Request,请求可以包含额外的headers等的信息,等待服务器响应。
    2、获取响应内容
    服务器正常响应的话会得到一个reponse,reponse的内容便是所要获取的页面的内容,类型可能是HTML、json字符串,二进制数据如图片视频等。
    3、解析网页内容
    得到的内容可能是HTML格式可以用正则表达式、网页解析库进行解析。可能是json格式,可以直接转为json对象解析,可能是二进制数据,可以保存做进一步处理。
    4、保存数据
    保存成文本也可以存到数据库,或者保存为特定格式。


    • Request
      1、请求方式
      使用get请求方式,请求内容包含在url里。

    使用post请求,请求参数不在url里面,请求体在新的fromdata里,url里不包含信息


    2、统一资源定位符url
    一个图片、一个视频都可以用url唯一指定。

    3、请求头
    包含比较重要的配置信息。如user-agent、host、cookies等信息。


    4、请求体,get形式没有请求体。
    post以fromdata形式提交请求体。

    • Reponse

    1、响应状态
    状态码:
    200正常
    301以上跳转
    404找不到资源
    502以上,服务器处理错误

    2、响应头
    键值对的Reponse Headers
    如内容类型、内容长度、服务器信息、设设置cookies等等。
    3、响应体
    最主要的部分,包含了请求资源的内容,如网页HTML,图片,二进制数据等。


    • 能抓怎样的数据?
      1、网页文本如HTML、Json等
      2、图片、视频是二进制文件,保存为图片格式。

    • 怎样来解析?
      1、直接处理
      网页是简单的字符串
      2、Json解析(json格式的字符串)结构化的数据,通过ajex进行加载的。
      3、正则表达式
      4、beautifulsoup解析库进行解析
      5、pyquery库
      6、XPath库


    • 为什么抓到的数据和浏览器的数据不一样呢?
      用库和用浏览器拿到不一样的源代码。

    • 怎样解决js的渲染问题
      1、分析Ajax请求(返回jason格式字符串)
      2、使用selenium/webdriver模拟js渲染
      3、Splash

    • 怎样保存数据?
      1、纯文本
      2、保存到关系型数据库,结构化的数据,每一条数据都有统一的字段。
      mysql、oracle、sql server
      3、非关系型数据库
      key-value形式,列表形式的结构。
      4、二进制文件,保存成特定格式。

    相关文章

      网友评论

          本文标题:爬虫基本原理

          本文链接:https://www.haomeiwen.com/subject/pawwjqtx.html