Python爬虫基础之认识html和学习数据提取(下)

昨天学了beautifulsoup和xpath,今天来学习css选择器和正则表达式吧~


css选择器

惨绿青年:css是层叠样式表,是用来决定html标签如何显示的。css选择器则是用来选择需要的标签进行绑定css,所以也可以用在爬虫程序里选择需要的标签。

惨绿青年:其实昨天的beautifulsoup就能通过select()方法去使用css选择器。下图是常用的css选择器示例。

正则表达式

惨绿青年:正则表达式是最强大,也是最复杂的方法。正则表达式通常被用来检索、替换那些符合某个规则(pattern)的文本。python自带正则表达式的库,只要导入“re”就可以用了。正则表达式首先需要建立一个规则(pattern),然后再搜索符合规则(pattern)的文本。下面是几个常用函数的简单示例。

惨绿青年:正则表达式中有一些特殊的字符,它们有特殊的功能,要匹配它们需要用“\”转义。下面列出了常用的特殊字符“$,^,[],{},|,-”。

惨绿青年:正则表达式里还有一些带“\”的字符,它们也有特殊作用。下面列出了常用的特殊字符“\w,\W,\s,\S,\d,\D,\b,\B”。

惨绿青年:还有一个特殊字符“()”,它能匹配括号里的规则并捕获,然后可以用group()或者groups()获取。re.search()和re.match()有group()、groups()这两个函数。

惨绿青年:正则表达式还能通过修饰符来使用各种模式,常用的模式有re.S(Space的首字母,能使“.”匹配换行符,该模式在提取网页内容时常用到),re.I(Ignore的首字母,能使匹配对大小写不敏感),re.U(Unicode的首字母,根据Unicode字符集解析字符,这个标志影响 \w,\W,\b,\B),re.M(MultiLine的首字母,多行匹配,影响 ^ 和 $)。

惨绿青年:正则表达式里“.*”能匹配任意字符多次。正则表达式还有贪婪模式和非贪婪模式,贪婪模式下,会匹配尽可能多的字符,非贪婪模式下,会匹配尽可能少的字符,用“?”来表示。所以常用“.*?”匹配尽可能少的任意字符,在前面和后面加上特定字符就很容易获取想要的东西了。


今天也学到了很多东西呢,明天有什么新知识呢?真期待鸭~如果喜欢文章可以关注我哦~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 7,198评论 0 99
  • 正则表达式、re模块、匹配单个字符、匹配多个字符、匹配开头结尾、匹配分组、re模块的高级用法、python贪婪和非...
    Cestine阅读 1,558评论 0 1
  • 类 !/usr/bin/python -- coding: UTF-8 -- class Employee:'所有...
    SkTj阅读 1,004评论 0 0
  • 1 “就怕我变得话少,你也习惯了不打扰。” 以前,我以为爱情是没有理由的,也许就是在那么一瞬间,我突然就喜欢上你...
    失眠情书阅读 911评论 0 16
  • 有时候当信仰与自我发生冲突时, 自我就躲在一旁, 暗中督促我们追随信仰前行。 在我们缺乏信仰的时候, 自我就当仁不...
    走肖木南楠阅读 354评论 0 0