本文主要介绍 Web Scraping 的基本原理,基于Python语言,大白话,面向可爱的小白(^-^)。

易混淆的名称:

很多时候,大家会把,在网上获取Data的代码,统称为“爬虫”,

但实际上,所谓的“爬虫”,并不是特别准确,因为“爬虫”也是分种的,

常见的“爬虫”有两种:

  1. 网路爬虫 (Web Crawler),又称 Spider;Spiderbot
  2. 网页抓取 (Web Scraper),又称 Web Harvesting;Web Data Extraction

而,这篇文章,主要讲解的是第二种“爬虫”(Web Scraper)的原理。

Web Scraping 是什么?

简单的说 Web Scraping,(在本文里)就是指,用Python代码,从肉眼可见的网页上,抓取数据。

为什么需要 Web Scraping?

因为,重复工作太多,自己做,可能会累死!

代码的适用实例有哪些?

  1. 如,需要在证交所,下来50只不同股票的当前价格,
  2. 或者,想 print 出,新闻网站上,所有最新新闻的标题,
  3. 或者,只是想把网站上所有商品的价格列出来,放到 Excel 里对比下,
  4. 等等各种,尽可发挥你的想象力.....

Web Scraping 的基本原理:

  1. 首先,你需要了解,网页是怎么呈现在,我们屏幕上的;

    1. 其实就是,我们发出一个Request,
    2. 然后百公里外的服务器回给我们一个 Response;
    3. 然后我们收看到一大堆文字,
    4. 最后,浏览器,偷偷的把这堆文字排好了版,放在了我们屏幕上;
    5. 再详细的原理,可以去看我之前博文里的书,HTTP下午茶 - 小白入门书
  2. 然后,我们要了解,使用Python,如何实现它,实现原理基本就四个步骤:

    1. 首先,代码需要向服务器发出一个Request,然后收到一个Response(html文件)

      • 这里可以,使用Python的,request库,或者 urllib标准库
    2. 然后,我们需要处理收到的这个Response,找到我们所需要的文字
      • 这里使用,BeautifulSoup4 来实现对 html 文件的解析
    3. 然后,需要设计代码流程,来处理重复任务
      • 这里使用,Loop什么的,来完成重复的流程
    4. 最后,导出我们得到的数据,最好是漂亮的Excel表格
      • 这里可以先使用,pandas,来完成一些数据处理,或者计算
      • 然后使用,openpyxl库来完成,写入Excel的过程

篇尾总结:

这篇文章,重点在于讲解实现的思路和过程,

所以,并非详尽,也并没有给出实际的代码,

但是,这个思路,几乎是网页抓取的通用套路。

就写到这里吧,想起什么再更新,

要是有写的不到位的地方,还请包涵!

Web Scraping(网页抓取)基本原理 - 白话篇的更多相关文章

  1. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  2. 基于Casperjs的网页抓取技术【抓取豆瓣信息网络爬虫实战示例】

    CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Ge ...

  3. 简易数据分析 09 | Web Scraper 自动控制抓取数量 & Web Scraper 父子选择器

    这是简易数据分析系列的第 9 篇文章. 今天我们说说 Web Scraper 的一些小功能:自动控制 Web Scraper 抓取数量和 Web Scraper 的父子选择器. 如何只抓取前 100 ...

  4. 分享一个c#t的网页抓取类

    using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Ne ...

  5. 网页抓取:PHP实现网页爬虫方式小结

    来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现 ...

  6. Nutch网页抓取速度优化

    Nutch网页抓取速度优化 Here are the things that could potentially slow down fetching 1) DNS setup 2) The numb ...

  7. Spider_基础总结5--动态网页抓取--元素审查--json--字典

    # 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,此时仍然使用 # requests+beautifulsoup是不能够 ...

  8. Spider--动态网页抓取--审查元素

    # 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,我们需要使用动态网页抓取技术. # Ajax: Asynchronou ...

  9. java网页抓取

    网页抓取就是,我们想要从别人的网站上得到我们想要的,也算是窃取了,有的网站就对这个网页抓取就做了限制,比如百度 直接进入正题 //要抓取的网页地址 String urlStr = "http ...

随机推荐

  1. 数据库及MySQL概述

    #什么是数据 用来描述事物的符号记录.可以是数字.文字.图形等,有多种形式,经过数字化之后存入计算机 #什么是数据库 数据库(Database)就是一个用来存放数据库的仓库,是按照一定的数据结构来组织 ...

  2. http面试问题集锦

    1.http的请求报文和响应报文? http请求报文:请求行(请求方法+url).请求头,请求体 http响应报文:状态行(http版本+状态码).响应头.响应体   2.常用的http请求类型? 请 ...

  3. 7-30 jmu-python-凯撒密码加密算法 (10 分)

    编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母. 输入格式: 接收两行输入,第一行为待加密的明文,第二行为密钥k. 输出格式: 输出加密后的 ...

  4. 我的webpack学习笔记(二)

    前言 上一篇文章我们讲了多页面js的打包,本篇文章我们继续scss的打包. 多页面css单独打包 首先,我们css编写采用的是sass,所以我们先来安装sass-loader以及可以用到的依赖 $ n ...

  5. 【原创】为什么我的 Kafka 总是连接失败呢?

    提出问题 近日助友 Docker 部署 Kafka 服务,服务日志启动正常,但客户端却无法连接 往日曾踩过此坑,然方法均源于博客,其语焉不详,不知为何不行,亦不知为何行,印象不甚深刻,耗费大量时间 为 ...

  6. 用libvlc 播放指定缓冲区中的视频流

    有时候,我们需要播放别的模块传输过来的视频流,VLC提供了这样的机制,但一般很少这样用,下面的例子实现了这样的功能. 其中用到一个关键的模块 imem.  vlc提供多种创建媒体的方式,如要从指定缓存 ...

  7. FSBPM流程引擎(002)之表单+自定义流程挂载到引擎

    本章节介绍如何将实际业务的表单和自定义流程挂载到FSBPM流程引擎上. 首先进入引擎交互界面: 点击创建:->出差申请 然后根据实际的业务输入对应的数据项即可,比如[姓名,部门,开始时间,结束时 ...

  8. 简单的scrapy命令和中间件

    创建爬虫 scrapy genspider 名字 xxx.com 运行爬虫 运行名为usnews的爬虫scrapy crawl usnews​运行爬虫文件scrapy runspider quote_ ...

  9. Polly每次重试执行不同的操作

    Polly每次重试执行不同的操作 前言   最近在写WG(用的 .net core 3.1 + wpf + abp vnext),程序里大量用到了重试机制选用的是Polly组件(只知道这个...). ...

  10. C++ 别踩白块小游戏练习

    #include <iostream> #include <stdio.h> #include <stdlib.h> #include <easyx.h> ...