本文主要介绍 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的过程

篇尾总结:

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

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

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

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

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

最新文章

  1. MVC中RenderBody的工作原理
  2. canvas的用法介绍
  3. 使用IntelliJ IDEA 配置Maven(入门)
  4. React Native填坑之旅--Stateless组件
  5. JS魔法堂:再次认识Function.prototype.call
  6. Android 隐式意图和显示意图的使用场景
  7. 如何让jboss eap 6.2+ 的多个war应用共享 jar 包?
  8. CAS单点登录系统整合——注册的问题
  9. 全网扫描扫描10000端口后的优化脚本&域名列表指定端口的批量测试
  10. UIControlEventTouch
  11. [iOS]关于状态栏(UIStatusBar)的若干问题
  12. 20145204&20145212信息安全系统实验四报告
  13. 【python】
  14. Git入门指南十一:Git branch 分支与合并分支
  15. jni 入门 android的C编程之旅 --->环境搭建&&helloworld
  16. ThinkSNS+ alpha.2 版本发布,功能抢先看!【社交系统研发日记六】
  17. JAVA EE 的学习目标
  18. Java学习NO.4
  19. 用HttpClient和用HttpURLConnection做爬虫发现爬取的代码少了的问题
  20. k8s HPA自动收缩

热门文章

  1. 达拉草201771010105《面向对象程序设计(java)》第一周学习总结
  2. 将mysql数据库集成到idea中
  3. 一篇文章带您读懂Map集合(源码分析)
  4. 用nodejs+express搭建前端测试服务端
  5. 提取.bank音频包。 Extract .bank audio files
  6. 那些年,我的前端/Java后端书单
  7. Python基础-检测密码,一些网站会给密码强加一些规则。
  8. 实验一 Linux系统与应用准备(嵌入式Linux工程师的“修真之路”)
  9. drf分页功能
  10. DOTNET CORE源码分析之IServiceProvider、ServiceProvider、IServiceProviderEngine、ServiceProviderEngine和ServiceProviderEngineScope