爬数据,能让你少写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 ...
随机推荐
- javascript函数大全
JavaScript函数大全 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->( ...
- docker 实践(一)
docker 简介 容器虚拟化,比传统的虚拟化轻量 2013年出现,发展非常迅猛 Redhat在6.5版本开始支持docker 使用go语言开发,基于apache2.0协议 开源软件,项目代码在git ...
- dedecms文章页调用上一篇和下一篇文章
dedecms文章页调用上一篇和下一篇文章,解析后是链接形式的上下篇 {dede:prenext get='pre'/} {dede:prenext get='next'/}
- VC下防止反汇编的办法(1)
最近在看IDA的书,讲汇编语言的部分提到了一种防止递归向下汇编器逆向程序的方法 这里esp指向栈顶,也就是调用方最后入栈的返回地址.然而实际在VC2017里用内联汇编这么做是不行的,原因可以看看VC生 ...
- J2ee的13个规范
以下来自于网络. 1.JDBC(java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题, ...
- JDBC数据库操作
JDBC: 创建SQL语句对象 Statement statement = (Statement) con.createStatement() ; 调用执行 statement. ...
- c# 委托(Func、Action)
以前自己写委托都用 delegate, 最近看组里的大佬们都用 Func , 以及 Action 来实现, 代码简洁了不少, 但是看得我晕晕乎乎. 花点时间研究一下,记录一下,以便后期的查阅. 1.F ...
- python项目使用jsonschema进行参数校验
python项目使用jsonschema进行参数校验 最近想要给一个新的openstack项目加上参数校验,过完年回来准备开工的时候,发现其他人已经在做了,对应的patch是:https://revi ...
- 文本处理三剑客之grep&正则表达式
grep是一个文本过滤工具,它支持正则表达式,能把搜索匹配到的行打印出来.grep的全称是Global Regular Expression Print(全局正则表达式)使用权限是所有用户. 一.gr ...
- 学生信息管理系统(c语言)
①注意: 程序中使用了sleep()函数.system()函数 关于 sleep() 函数 sleep() 函数的头文件和用法会因环境的不同而有所不同. 具体见-sleep()函数功能及用法 关于sy ...