正则表达式
以英文字母开头,出现一次。后面的是数字,大小写,出现5到15位,一共6-16位。前面那个1可以省略。
要匹配div标签中的内容。
关闭贪婪模式,这里加了一个?。因为正则表达式是默认匹配尽量多的内容的,关闭贪婪模式,这里就不会加div也匹配进去。
re模块使用
re模块有很多方法,但是爬虫中常用的有提取,匹配和替换。
案例:比如现在有个html文件,要提取它的Email和手机号。
首先,with open打开文件。其次,根据提取的格式,ret=re.findall(正则表达式,提取的字符串)
但是注意,.匹配除了换行符\n外的所有字符,这里面行与行之间是有换行符的。所以要先把\n过滤掉。
实战:提取商城分类结构
给到相应的index.html网址,要求提取出第一章标题以及每章里面哪些课程。先打开文件,然后替换换行符。先看好整体分为两部分,把每一部分提取出来,那么应该是列表里有两个元素。再在for循环遍历下,分别对每一个部分进行提取标题和课程类别的操作。主要就是re.findall,re.sub的操作。定义好正则表达式和要操作的对象就可以了。