php函数:preg_match_all(); 采集数据

必备条件

1.抓取的目标网页,例如

$url ="https://www.baidu.com";

2.使用函数格式如下

$str = file_get_contents($url);

或者

$UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)";  // 设置代理  否则转码无效
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $szUrl); //$szurl 为你抓取目标网页的地址,可以在上面定义一个变量
curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl); 
$data = mb_convert_encoding($data,'utf-8',"GBK"); // 从GBK转换成UTF-8字符

务必使用 mb_convert_encoding 进行转码

随后使用preg_match_all进行匹配抓取数据

preg_match_all('/data-processdate="(.*?)" data-isshow/', $str, $bbb);  
//该代码的意思是匹配整个网页中 data-processdate="(.*?)" data-isshow  的字段
//例如网页html源码为:data-processdate="2020-02-02" data-isshow
//使用上面的匹配规则后输出结果
print_r($bbb);
//返回为array数组,内容为 2020-02-02

输出时不能使用echo,需要使用print_r();

例如 print_r($str);    print_r($data);

输出为array数组

给TA买糖
共{{data.count}}人
人已赞赏
编程代码

php函数: Switch(); 执行指定的字段

2021-9-11 23:52:35

编程代码

php函数:strtr(); 替换指定字符串或文本

2021-9-11 12:05:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索