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

    什么是爬虫?即“请求”网站并“提取”数据的“自动化”程序。

    爬虫基本流程:

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

    获取相应内容:如果服务器能正常相应,会得到一个Response,Response的内容便是要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。

    解析内容:得到的内容可能是HTML,可以用正则表达式,网页解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。

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

    Request中包含什么呢?

    GET请求:请求数据暴露在URL里边;POST请求:表单提交的数据在Form Data里边。

    Response中包含什么呢?

    能抓取什么样的数据?

    解析方式有哪些?

    直接处理:如得到网页源码,得到图片的二进制数据存储到本地。

    json解析:得到json键值对数据,在Network下面的XHR筛选出的内容中有得到的json数据。

    正则表达式

    beautifulsoup库解析

    pyquery库解析

    xpath库解析

    往往自己爬到的数据和网页上显示的不一样,是因为网页除了一些request请求得到的数据,还有一些js渲染的数据,这些js的数据没有爬到,所以不一样。

    怎么解决JavaScript渲染的问题?

    分析ajax请求

    selenium/webdriver来操作浏览器式的获取pagesource的内容

    splash库

    pyv8、ghost.py

    怎样保存数据?

    文本:纯文本、json、xml等

    关系型数据库:如mysql、Oracle、sqlserver等具有结构化表结构形式存储

    非关系型数据库:如MongoDB、Redis等key-value形式存储

    二进制文件:如图片、视频、音频等直接保存成特定格式即可

  • 相关阅读:
    使用 Windows XP 的两种强大的工具在您的代码中检测并堵塞 GDI 泄漏
    SystemParametersInfo
    SQL bcp命令详解
    不同版本操作系统和数据库的之间链接,和操作
    js添加删除行和双击变文本框
    MYSQL 日志问题
    循环文件夹下的文件
    php导出数据到EXCEL
    配置Apache服务器的二级域名支持
    每天读一遍,坚持30天,和老外交流没问题!
  • 原文地址:https://www.cnblogs.com/wisir/p/9943962.html
Copyright © 2011-2022 走看看