数据的采集

(一)采集原理分析

数据采集是指获取指定网站的内容,之后将其存入数据库中,采集步骤如下:
第1步:获取指定网址的数据
http://www.qidian.com?id=1&articleid=6
获取数据可以使用如下函数:
(1)file_get_content()函数
(2)fopen()函数、fread()函数
(3)curl()函数
(4)snoopy类

第2步:提取所需内容,使用preg_match_all()函数获取匹配的数据

使用正则表达式获取需要采集的特定内容。
第3步:分类存储至数据库表中(入库)
第4步:从数据库中读取数据
第5步:展示读取出的数据

(二)正则表达式

使用正则表达式可以匹配、检索字符串。
r e g = / . reg=’/^…. /’;
KaTeX parse error: Expected 'EOF', got '#' at position 6: reg=’#̲^….#’;
1.量词

  • 匹配任何至少包含一个前导字符串
  • 匹配任何包含零个或多个前导字符串
  • 匹配任何包含零个或一个前导字符串
  • 匹配任意字符串
  • {x} 匹配任何包含x 个的前导字符串 /y{3}/ yyy
  • {x,y} 匹配任何包含x 到y 个前导字符串 /y{2,5}/
  • {x,} 匹配任何包含至少x 个前导字符串 /y{2,}/
  • $ 匹配字符串的行尾 /abc[0-9]$/
  • ^ 匹配字符串的行首
  • | 匹配字符串的左边或者右边(或)
  • ()包围一个字符分组或定义个反引用,可以使用$1,$2 提取 ([0-9]{3}-[0-9]{8})+
    *可以匹配任意字符串(因为.匹配任意字符,*表示任意个)
    2.元字符
  • [a-z] 匹配任何包含小写字母a-z 的字符串
  • [c-g] 匹配c,d,e,f,g [3-7]
  • [A-Z] 匹配任何包含大写字母A-Z 的字符串
  • [0-9] 匹配任何包含数字0-9 的字符串
  • [bek] 匹配任何包含小写字母b、e、k的字符串,只要字符串中含有b、e、k中的任意一个就算匹配到 goo[bek]d
  • [^bek] 只要有不含b、e、k的字符都能匹配
  • [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9 和下划线的字符串
  • \w 匹配任何包含a-zA-Z0-9 和下划线的字符串(同上)
  • \W 匹配任何没有下划线和字母数字的字符串,和\w相反
  • \d 匹配任何数字字符,和[0-9]相同
  • \D 匹配任何非数字字符,和[^0-9]相同
  • \s 匹配任何空白字符
  • \S 匹配任何非空白字符
  • \b 匹配是否到达了单词边界 /abc\b/ helloabcgood
  • \B 匹配是否没有达到单词边界
  • \ 匹配正则中的特殊字符
    3.修饰符
    语法:修饰符放在“/”的后面 /\w/i
  • i 完成不区分大小写的搜索
  • m 在匹配首内容或者尾内容时候采用多行识别匹配
  • x 忽略正则中的空白
  • A 强制从头开始匹配
  • U 禁止贪婪匹配只跟踪到最近的一个匹配符并结束 /xo*/U xoooobc
    4.正则相关函数
  • preg_match(’/正则表达式/’ , 要处理的字符串);
  • 匹配到一次就终止继续匹配,返回1;
  • 如果没有匹配到,就一直向后找,直到字符串的末尾,如果仍然没找到,返回0。

在这里插入图片描述

匹配邮箱
在这里插入图片描述

  • preg_match_all(’/正则表达式/’,字符串,$arr)
  • preg_match_all()搜索字符串所有匹配的结果,将所有匹配到的字符串放到$arr数组中。

在这里插入图片描述

  • preg_replace(’/正则表达式/’, ‘字符串’, $str);
  • 将$str中匹配正则规则的内容用指定字符串替换。

(三)采集入库

采集网页中列表的标题和链接,获取后存入数据库。
在这里插入图片描述
在这里插入图片描述
(四)Snoopy
在这里插入图片描述
在这里插入图片描述

(五)snoopy类实现数据采集
output()函数的功能是格式化输出数组数据
在这里插入图片描述
fetch()方法
在这里插入图片描述
Fetchtext()、fetchlinks()、fetchform()方法
在这里插入图片描述
(六)Snoopy实现表单提交和模拟登陆
在这里插入图片描述
(七)Snoopy实现图片下载
在这里插入图片描述
(八)cURL

1.Client URL库
在这里插入图片描述
2.开启curl扩展
在这里插入图片描述
3.使用cURL完成请求的四步

第1步:初始化资源 $ch = curl_init();

第2步: 设置相关的参数 curl_setopt()

第3步: 发送请求 curl_exec($ch)

第4部:关闭资源 curl_close($ch);

4.封装cURL函数

封装POST请求
在这里插入图片描述
封装GET请求
在这里插入图片描述
POST请求与GET请求相结合
在这里插入图片描述
5.使用cURL函数提交请求
在这里插入图片描述

希望在这里可以给大家提供一些帮助

猜你喜欢

转载自blog.csdn.net/dxm521/article/details/89206359
今日推荐