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 ...
随机推荐
- Ribbon进行服务调用/负载均衡以及请求重试配置
Ribbon负载均衡 经过对Eureka的认识,及Eureka集群的搭建,已经基本可以入门Eureka的使用.之前对于服务调用者我们是直接获取注册列表后通过 get(0) 的方式来获取第一个注册信息. ...
- Metaploit-永恒之蓝漏洞利用
目录 Metaploit介绍 实验环境 漏洞利用过程 Metaploit介绍 本次测试主要是利用永恒之蓝漏洞对windows7进行控制利用,掌握Metaploit工具的使用,知道永恒之蓝的漏洞利用原理 ...
- [续更]一起来撸一下Flex布局里面的那些属性
Flex的全称是Flexible Box,意为弹性布局,用来为盒模型提供最大的灵活性. Flex包含的属性有很多,每个属性又包含了许多不同意义的属性值···然而在实际开发中,能被我们临幸的可能也只是那 ...
- html5调用摄像头功能
前言 前些天,线上笔试的时候,发现需要浏览器同意开启摄像头,感觉像是 js 调用的,由于当时笔试,也就没想到这么多
- IDEA Messages Build总是自动弹出提示错误
IDEA,总是在代码未完成时,在进行切换页面回来后会跳出Messages Build,我相信大家在写java web项目的时候,经常会遇到这个问题,接下来我就和大家说一下问题所在. 主要原因是因为我们 ...
- 关于SSH与SSM的组成及其区别
前言 当下SpringBoot盛行,咱再聊聊SpringBoot盛行之前的框架组合,当做复习巩固哈. 在聊之前,得先说说MVC,MVC全名是Model View Controller,是模型(mode ...
- vue基础----修饰符,watch,computed,method实例方法
1.vue常用的修饰符,number,trim,number--->当作数字,trim-->去掉前后空格 2.methods与计算属性 computed 的相同与区别 <body&g ...
- 通过locust进行性能测试
首先我们需要准备好python环境 接口 安装python 插件 locust,网上有很多文章而且都很错,这里不再赘述 我是通过pycharm 编写的代码 导入 HttpLocust,TaskSet ...
- Flask 偏函数、g对象、flask-session、数据库连接池、信号、自制命令、flask-admin
目录 一.偏函数 二.g对象 g对象和session的区别 三.flask-session 四.数据库连接池 pymsql链接数据库 数据库连接池版 utils/sql.py 五.信号 六.命令fla ...
- 【Weiss】【第03章】栈例程
写栈比队列更简单一些,毕竟只有一个数据出入口. 之前用C在程序里模拟栈代替递归的时候,直接搞个数组来实现都是非常轻松愉快的事情. 不多说,放代码. 测试代码 #include <iostream ...