爬数据,能让你少写1000行代码的捷径! | Python 正则表达式
▌春暖花开,又到了出门游玩拍拍拍吃吃吃的好季节了!
说到拍照摄影,你会构图吗?就是在照片有限的空间内处理人、景、物的关系,并将三者安排在画面中最佳的位置,以形成画面特定结构的方法。
学院君就是一个「拍啥啥变形」的摄影黑洞……心塞到无法呼吸.jpg
为了能够框出特定的凸出的景物,学院君尝试着使用取景框,诶,豁然开朗。
原本山河树草,蓝天白云等一堆景物,在取景框特定的大小和范围里,取出了一块我想要的景色。
别懵,你没走错,今天我们要学习的不是摄影技术和取景框。
我们将基于Python,学习正则表达式,帮助大家在爬虫以及搜索引擎优化等方面,以更少的功夫得到更精确的结果!
不怕,我们可以借助喜闻乐见的摄影这件事情,来理解它~
什么是正则表达式?
正则表达式,是对字符串操作的一种逻辑公式。就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个「规则字符串」。这个「规则字符串」,用来表达对字符串的一种过滤逻辑。
回想一下取景框,我们用定义好的形状,比如圆形、方形、菱形等,过滤眼前的一整片景色,将自己想拍的特定景物筛出来,比如一棵树,一朵云,是不是一下子就清晰了很多?
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作"匹配");
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分;
3. 也可以替换符合某一个规则的字符串。
为什么要学 正则表达式?
你可能还有点懵,有一个「取景框」一样的规则字符串,对我来说有什么意义呢?有什么具体应用的场景吗?
就爬虫技术来说,例如我们要爬一个招聘网站,传统的爬法是一股脑儿全扒下来,你会得到各种各样地区/城市/职位/薪水/要求/面经等文本和数据。此后你再利用数据处理的方法去筛选自己要的信息。
如果我只想得到,「5年以上,北京,产品经理,教育行业」这个信息,就可以利用正则表达式已有的规则,去撰写爬虫的代码,帮助快速高效准确地定位到自己要的信息。
同理,这种利用极简单的方式达到对字符串的复杂控制的方式,也可以应用在对产品评论/大众舆情/顾客喜好偏向/邮件信息调查等各个领域,此外还有谷歌、百度、搜狗等搜索引擎,如果做好精准的匹配和控制,优化SEO推广妥妥的~如今大热的机器学习,里面的标注,语法也会使用正则表达式噢~
基于Python, 我们一起学吧!
Python就不多说了,2017年程序届的黑马。选它学习,顺应时代呼唤~
这次,学院君又请来曾在学院多次开设Python相关小项目课程的杰克老师,教大家如何学习正则表达式这套规则,从解释到案例都有哦~力争用最少的时间和精力投入,得到更加精确的结果!http://www.aibbt.com/a/18041.html
当然啦,本次课程需要大家对Python有基础的入门了解,至少知道基本数据类型和变量,其他的就由杰克老师带上车啦~
爬数据,能让你少写1000行代码的捷径! | Python 正则表达式的更多相关文章
- 学会lambda表达式,能让你少敲1000行代码!
01.什么是 lambda 表达式 1. 函数式接口 在聊起 lambda 表达式之前,我们不得不提起函数式接口:一个接口只包含唯一的方法,那么它就是函数式接口.例如: public class La ...
- (转)如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器
原文地址:http://www.dranger.com/ffmpeg/ FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具.FFMPEG几乎为你把所有的繁重工作都做了,比如解码.编码. ...
- 厉害了,Google大神每天写多少行代码?
文章转自开源中国社区,编译自:Quora Quora上有个有趣的问题:Google工程师们每天写多少行代码? Google 的 AdMob 全栈工程师 Raymond Farias 在 Quora 发 ...
- 不写1行代码,在Mac上体验ASP.NET 5的最简单方法
昨天微软发布了ASP.NET 5 beta2(详见ASP.NET 5 Beta2 发布),对ASP.NET 5的好奇心又被激发了. 今天下午在Mac OS X上体验了一下ASP.NET 5,而且借助Y ...
- 只写104行代码!在nopCommerce中如何实现自动生成网站地图
表告诉我说你不知道nopCommerce是什么.它是目前.NET中最流行的完全开源网上商城,由俄罗斯的团队在2008年开始立项一直开发到现在已经是3.3版本了.代码目前托管在codeplex上,有兴趣 ...
- 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用
简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA ...
- 用好idea这几款插件,可以帮你少写30%的代码
Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大. 1.安装(EasyCode) 我这里的 ...
- delphi 自我删除和线程池(1000行代码,需要仔细研究)
unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- 1000行代码实现MVVM (类似Angular1.x.x , Vue)
最近花了近半个多月的时间, 自己纯手工写了一个很小型的类angularjs/vue的mvvm 库. 目前已经用于公司一个项目. 项目托管在github https://github.com/leonw ...
随机推荐
- jira + confluence 安装和破解
Window环境: 环境准备 安装JAVA1.8以上版本 安装SQL SERVER 或 MySQL: jira安装和破解 下载安装包 https://downloads.atlassian.com/s ...
- DaemonSet 案例分析 - 每天5分钟玩转 Docker 容器技术(130)
本节详细分析两个 k8s 自己的 DaemonSet:kube-flannel-ds 和 kube-proxy . kube-flannel-ds 下面我们通过分析 kube-flannel-ds 来 ...
- 【模板小程序】循环方阵构造(仿《剑指offer》循环矩阵打印)
/* 本程序说明: 输入:方阵大小n,输出:n*n的旋转方阵 举例: 当n=2时,输出: 1 2 4 3 当n=4时,输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 ...
- python中的randint,引入模块
引入模块的方法: from 模块名 import 方法名 范例: from random import randint#使用randint需要加上这句 while True: answer=randi ...
- Win7 64位操作系统中搭建C/C++的编译环境
通常使用IDE工具为 VS2010 .但是如果仅仅只是想在Windows中使用命令行对C/C++源码进行编译和运行.则需要使用 CL 命令方式或另外安装 Cygwin / MinWin 命令行编译器. ...
- 配置python虚拟环境Virtualenv及pyenv
pyenv pyenv 可以让机器安装各种不同版本的python pyenv install --list 查看可以安装的python版本 pyenv versions 查看已安装的python版本 ...
- Go语言获取命令行参数
package main import ( "os" "fmt" ) func main() { args := os.Args //获取用户输入的所有参数 { ...
- mac qq怎么删除全部聊天记录
找到 ./Users/user/Library/Containers/com.tencent.qq/ 删除com.tencent.qq文件夹就行.
- Supervisor 安装及配置管理uwsgi进程
Supervisor介绍 Supervisor 允许其用户在UNIX类操作系统上控制多个进程. 块如下: 方便 需要为每个进程实例编写rc.d脚本通常是不方便的. rc.d脚本是进程初始化/自动启动/ ...
- JavaScript对象创建的几种方式
1 工厂模式 1.1 创建 function createFruit(name,colors) { var o = new Object(); o.name = name; o.colors = co ...