Web Scraping(网页抓取)基本原理 - 白话篇
本文主要介绍 Web Scraping 的基本原理,基于Python语言,大白话,面向可爱的小白(^-^)。
易混淆的名称:
很多时候,大家会把,在网上获取Data的代码,统称为“爬虫”,
但实际上,所谓的“爬虫”,并不是特别准确,因为“爬虫”也是分种的,
常见的“爬虫”有两种:
- 网路爬虫 (Web Crawler),又称 Spider;Spiderbot
- 网页抓取 (Web Scraper),又称 Web Harvesting;Web Data Extraction
而,这篇文章,主要讲解的是第二种“爬虫”(Web Scraper)的原理。
Web Scraping 是什么?
简单的说 Web Scraping,(在本文里)就是指,用Python代码,从肉眼可见的网页上,抓取数据。
为什么需要 Web Scraping?
因为,重复工作太多,自己做,可能会累死!
代码的适用实例有哪些?
- 如,需要在证交所,下来50只不同股票的当前价格,
- 或者,想 print 出,新闻网站上,所有最新新闻的标题,
- 或者,只是想把网站上所有商品的价格列出来,放到 Excel 里对比下,
- 等等各种,尽可发挥你的想象力.....
Web Scraping 的基本原理:
首先,你需要了解,网页是怎么呈现在,我们屏幕上的;
- 其实就是,我们发出一个Request,
- 然后百公里外的服务器回给我们一个 Response;
- 然后我们收看到一大堆文字,
- 最后,浏览器,偷偷的把这堆文字排好了版,放在了我们屏幕上;
- 再详细的原理,可以去看我之前博文里的书,HTTP下午茶 - 小白入门书
然后,我们要了解,使用Python,如何实现它,实现原理基本就四个步骤:
- 首先,代码需要向服务器发出一个Request,然后收到一个Response(html文件)
- 这里可以,使用Python的,request库,或者 urllib标准库
- 然后,我们需要处理收到的这个Response,找到我们所需要的文字
- 这里使用,BeautifulSoup4 来实现对 html 文件的解析
- 然后,需要设计代码流程,来处理重复任务
- 这里使用,Loop什么的,来完成重复的流程
- 最后,导出我们得到的数据,最好是漂亮的Excel表格
- 这里可以先使用,pandas,来完成一些数据处理,或者计算
- 然后使用,openpyxl库来完成,写入Excel的过程
- 首先,代码需要向服务器发出一个Request,然后收到一个Response(html文件)
篇尾总结:
这篇文章,重点在于讲解实现的思路和过程,
所以,并非详尽,也并没有给出实际的代码,
但是,这个思路,几乎是网页抓取的通用套路。
就写到这里吧,想起什么再更新,
要是有写的不到位的地方,还请包涵!
Web Scraping(网页抓取)基本原理 - 白话篇的更多相关文章
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
- 基于Casperjs的网页抓取技术【抓取豆瓣信息网络爬虫实战示例】
CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Ge ...
- 简易数据分析 09 | Web Scraper 自动控制抓取数量 & Web Scraper 父子选择器
这是简易数据分析系列的第 9 篇文章. 今天我们说说 Web Scraper 的一些小功能:自动控制 Web Scraper 抓取数量和 Web Scraper 的父子选择器. 如何只抓取前 100 ...
- 分享一个c#t的网页抓取类
using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Ne ...
- 网页抓取:PHP实现网页爬虫方式小结
来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现 ...
- Nutch网页抓取速度优化
Nutch网页抓取速度优化 Here are the things that could potentially slow down fetching 1) DNS setup 2) The numb ...
- Spider_基础总结5--动态网页抓取--元素审查--json--字典
# 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,此时仍然使用 # requests+beautifulsoup是不能够 ...
- Spider--动态网页抓取--审查元素
# 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,我们需要使用动态网页抓取技术. # Ajax: Asynchronou ...
- java网页抓取
网页抓取就是,我们想要从别人的网站上得到我们想要的,也算是窃取了,有的网站就对这个网页抓取就做了限制,比如百度 直接进入正题 //要抓取的网页地址 String urlStr = "http ...
随机推荐
- NOI Online 赛前刷题计划
Day 1 模拟 链接:Day 1 模拟 题单:P1042 乒乓球 字符串 P1015 回文数 高精 + 进制 P1088 火星人 搜索 + 数论 P1604 B进制星球 高精 + 进制 D ...
- java 初探-猜数字
学习Java而编写的猜数字的程序代码. /** * */ package org.literal.test; import java.util.Scanner; /** * @author liter ...
- TCP/IP协议概要--01
学习一下tcp/ip协议,还是很枯燥,哎..... 图片的是从下到上对TCP/IP的协议进行描述的.主要是的描述每一层协议的特点 该层对应的是最底层的数据链路层,即图中的以太网驱动程序那一层. 该层是 ...
- 如何提升.NET控制台应用体验?
原文:Upgrade Your .NET Console App Experience 作者:Khalid Abuhakmeh 译文:Lamond Lu 在.NET生态系统中,控制台程序的表现相对较差 ...
- js的立即执行函数
立即执行函数:常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),一般想到的方法就是使用立即执行函数.jQuery就是使用的立即执行函数. 函数 ...
- django 博客搭建
comment1.安装django pip install django 2.创建项目 django-admin startproject mysite 3.在mysite文件夹下创建app pyth ...
- JVM02——JVM运行时内存
在上一篇文章中,我们介绍了 JVM 的内存区域,本文我们将继续围绕 JVM 展开话题,介绍 JVM 运行时内存.关注我的公众号「Java面典」了解更多 Java 相关知识点. Java 堆从 GC 的 ...
- Vue2.0 【第二季】第8节 Component 父子组件关系
目录 Vue2.0 [第二季]第8节 Component 父子组件关系 第8节 Component 父子组件关系 一.构造器外部写局部注册组件 二.父子组件的嵌套 Vue2.0 [第二季]第8节 Co ...
- C++中的内存分配
C++提供下面两种方法分配和释放未构造的原始内存 (1)allocator 类,它提供可感知类型的内存分配 (2)标准库中的 operator new 和 operator delete,它们分配和释 ...
- ES6—get 与 set
在类里面可以去定义一些getter和setter,getter可以得到一些东西的方法,setter可以设置东西 class Chef{ constructor(food){ this.food = f ...