Web Scraping(网页抓取)基本原理 - 白话篇

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

篇尾总结:

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

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

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

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

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

原文地址:https://www.cnblogs.com/bitssea/p/12555045.html

时间: 2024-11-09 03:34:41

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

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

CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Gecko) headless browsers, written in Javascript. PhantomJS是基于WebKit内核的headless browser SlimerJS则是基于Gecko内核的headless browser Headless browser: 无界面显示的浏览器,可以用于

网络爬虫(网络蜘蛛)之网页抓取

现在有越来越多的人热衷于做网络爬虫(网络蜘蛛),也有越来越多的地方需要网络爬虫,比如搜索引擎.资讯采集.舆情监测等等,诸如此类.网络爬虫涉及到的技术(算法/策略)广而复杂,如网页获取.网页跟踪.网页分析.网页搜索.网页评级和结构/非结构化数据抽取以及后期更细粒度的数据挖掘等方方面面,对于新手来说,不是一朝一夕便能完全掌握且熟练应用的,对于作者来说,更无法在一篇文章内就将其说清楚.因此在本篇文章中,我们仅将视线聚焦在网络爬虫的最基础技术--网页抓取方面. 说到网页抓取,往往有两个点是不得不说的,首

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

这是简易数据分析系列的第 9 篇文章. 今天我们说说 Web Scraper 的一些小功能:自动控制 Web Scraper 抓取数量和 Web Scraper 的父子选择器. 如何只抓取前 100 条数据? 如果跟着上篇教程一步一步做下来,你会发现这个爬虫会一直运作,根本停不下来.网页有 1000 条数据,他就会抓取 1000 条,有 10W 条,就会抓取 10W 条.如果我们的需求很小,只想抓取前 200 条怎么办? 如果你手动关闭抓取数据的网页,就会发现数据全部丢失,一条都没有保存下来,所

一个实用的C#网页抓取类代码分享

一个实用的C# 网页抓取类 模拟蜘蛛,类中定义了超多的C#采集文章.网页抓取文章的基础技巧,下面分享代码: using System; using System.Data; using System.Configuration; using System.Net; using System.IO; using System.Text; using System.Collections.Generic; using System.Text.RegularExpressions; using Sys

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

来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单. 一.Ganon 项目地址: http://code.google.com/p/ganon/ 文档: http://code.google.com/p/ganon/w/list 测试:抓取我的网站首页所有class属性值是focus的

delphi 用idhttp做web页面数据抓取 注意事项

这里不讨论webbrowse方式了 .直接采用indy的 idhttp  Get post 可以很方便的获取网页数据. 但如果要抓取大量数据 程序稳定运行不崩溃就不那么容易了.这几年也做了不少类似工具 总结了几点 好记性不如烂笔头. 内存泄露 获取页面文本 少不了用到html解析 具体到delphi 估计采用mshtml htmltotext 方法的不少,这个方案再大数据量时就会内存溢出 导致程序崩溃,而这并不是每个程序员都知道.解决的方案:采用自己的html解析类 这里我要感谢 武稀松(csd

网页抓取邮箱

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; namespace Wi

淘搜索之网页抓取系统分析与实现(2)—redis + scrapy

1.scrapy+redis使用 (1)应用 这里redis与scrapy一起,scrapy作为crawler,而redis作为scrapy的调度器.如架构图中的②所示.图1 架构图 (2)为什么选择redis redis作为调度器的实现仍然和其特性相关,可见<一淘搜索之网页抓取系统分析与实现(1)--redis使用>(http://blog.csdn.net/u012150179/article/details/38226711)中关于redis的分析. 2.redis实现scrapy sc

用python做网页抓取与解析入门笔记[zz]

(from http://chentingpc.me/article/?id=961) 事情的起因是,我做survey的时候搜到了这两本书:Computational Social Network Analysis和Computational Social Network,感觉都蛮不错的,想下载下来看看,但是点开网页发现这个只能分章节下载,晕,我可没时间一章一章下载,想起了迅雷的下载全部链接,试试看,果真可以把他们一网打尽,但是,sadly,迅雷下载的时候,文件名没办法跟章节名对应起来,晕,我可