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爬虫基础之认识html和学习数据提取(下))