实际上爬虫一共就四个主要步骤:
- 明确目标 (要知道你准备在哪个范围或者网站去搜索)
- 爬 (将所有的网站的内容全部爬下来)
- 取 (去掉对我们没用处的数据)
- 处理数据(按照我们想要的方式存储和使用)
模式修正符的构成
模式修正符就是字母,只不过这些在模式修正符的应用之中有特殊的含义。下面我来看看都有哪些模式修正符,请看下表:
模式修正符 | 说明 |
i | 表示在和模式进行匹配进不区分大小写 |
m | 将模式视为多行,使用^和$表示任何一行都可以以正则表达式开始或结束 |
s | 如果没有使用这个模式修正符号,元字符中的"."默认不能表示换行符号,将字符串视为单行 |
x | 表示模式中的空白忽略不计 |
e | 正则表达式必须使用在preg_replace替换字符串的函数中时才可以使用(讲这个函数时再说) |
A | 以模式字符串开头,相当于元字符^ |
Z | 以模式字符串结尾,相当于元字符$ |
U | 正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式 |
例如:
$str1 = <<<str
<div class="e_box e_ProductBox-001 p_Product" dataId=812 data-dismoveable data-foreachitem>
33333333
</div>
str;
$str = preg_replace("/[\t\n\r]+/","",$str1); // 过滤换行空格等
$partern = '/<div class="e_box e_ProductBox-001 p_Product" (.*?)>(.+?)<\/div>/';// 正则匹配式
$str = "<h1>1111</h1><H1>2222</H1>";
$partern = '/<h(\d)>.*?<\/h\1>/i'; // \d 数字0-9的任意数字 i 不区分大小写
preg_match_all($partern,$str,$match);
dump($match);