• 爬虫基本原理


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

    爬虫基本流程:

    发起请求:通过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形式存储

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

  • 相关阅读:
    Mysql升级过程的问题
    关于SSM项目注解事务不回滚的问题
    Linux环境下tomcat如何热部署
    Windows系统下python3中安装pyMysql
    jvm性能监控及故障处理工具(《深入理解java虚拟机》)
    jvm垃圾回收器(《深入理解java虚拟机》)
    jvm-运行时数据区域(《深入理解java虚拟机》)
    java源码分析-String
    java源码分析-Object
    2019秋季PAT甲级题解(无第一题)
  • 原文地址:https://www.cnblogs.com/wisir/p/9943962.html
Copyright © 2020-2023  润新知