0

0

[麦先生]使用正则做一个简单的数据采集 - 麦先生

php中文网

php中文网

发布时间:2016-05-20 10:19:20

|

1606人浏览过

|

来源于php中文网

原创

    网上有的朋友在去面试过程中有被要求去做数据采集工作的,但是由于对正则匹配运用的的不熟悉,而陷入了学而无以致用局面尴尬局面;做为新人我自己用所学过的知识尝试着做了一个网站详情页部分信息的数据采集,其中有逻辑不严谨或者应用不恰当的地方欢迎各位大神斧正;

    做数据采集的流程:

      进入一个网站后首先要查看网页源代码,审查检测源代码中是否存在我们需要的内容,如果有则可以直接使用正则匹配的方式来进行数据的抓取和提取;

      假如我们需要的内容是由网站的js动态生成的,我们就不能直接对网站进行正则匹配的方式进行数据抓取,这时我们需要打开(注:我用的火狐)Firebug网络中查看服务器传输回的数据里可以找到服务器返回的源码,反而更加便捷;

      在PHP中有一些内置的函数可以帮助我们更快捷的抓取网页源代码比如:file_get_contents; 包括正则匹配里常用的preg_match,preg_match_all;正确并熟练的使用PHP内置函数和方法可以极大节省我们的时间;

      

class PHP1
{
/**
* 采集详情页
*/
public function getDetailPage($url)
{
//获取源代码
$str = Curl::get($url);

//提取标题内容
preg_match('/

(.*).*发布日期:(.*)  来源.*
(.*).*
.*转载请注明来源.*.*(.*)转载请注明来源.*/isU', $str, $temp);

//创建pdo对象
$pdo = new PDO('mysql:host=localhost;dbname=lamp;charset=utf8;port=3306','root','');

//发送预处理指令
$stmt = $pdo->prepare('insert into article (title, con, intro, time)values(:title, :con, :intro, :time)');

//参数的绑定
$arr = array(
':title'=>$temp[1],
':con'=>$temp[4],
':intro'=>$temp[3],
':time'=>$temp[2]
);
$stmt->execute($arr);

$id = $pdo->lastInsertId();

return $id;
}

Design
Design

Design平台的AI设计工具,AI logo设计、AI背景去除、AI名称生成器。

下载

/**
* 采集列表页 获取详情页的url
*/
public function getListUrl($url)
{
//获取当前列表页中的源代码
$data = Curl::get($url);

if(empty($data)){
return false;
}
//正则匹配
preg_match_all('/

  • .*
    .*

    /isU', $data, $temp);
    //返回结果
    return $temp[1];
    }

    /**
    * 开始采集
    */
    public function startCollect(){
    $urls = $this->getListUrl('http://www.php1.cn/category/44.html');
    //遍历
    foreach ($urls as $key => $value) {
    $this->getDetailPage($value);
    }
    }
    }

    /**
    * curl工具类
    */
    class Curl{
    public static function get($url){
    //初始化curl资源
    $ch = curl_init($url);
    //设置请求选项
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    //发送请求
    $res = curl_exec($ch);
    //
    return $res;
    }
    }

    // $res = get('http://www.php1.cn/Content/XiaoXinGaoXiaoLvDe_sql_ChaXunTaYeHuiDaoZhiWangZhanXiangYingBianMan.html');

    //创建对象
    // $obj = new PHP1;

    // $url = 'http://www.php1.cn/Content/XiaoXinGaoXiaoLvDe_sql_ChaXunTaYeHuiDaoZhiWangZhanXiangYingBianMan.html';
    // $res = $obj->getDetailPage($url);

    //读取列表页的内容
    // $obj->getListUrl('http://www.php1.cn/category/44.html');

    // $obj -> startCollect();

    //如果代码报错 curl_init undefined
    //wampserver->php->php extensions->php_curl

          

  • 本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    Python 自然语言处理(NLP)基础与实战
    Python 自然语言处理(NLP)基础与实战

    本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

    10

    2026.01.27

    拼多多赚钱的5种方法 拼多多赚钱的5种方法
    拼多多赚钱的5种方法 拼多多赚钱的5种方法

    在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

    109

    2026.01.26

    edge浏览器怎样设置主页 edge浏览器自定义设置教程
    edge浏览器怎样设置主页 edge浏览器自定义设置教程

    在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

    16

    2026.01.26

    苹果官方查询网站 苹果手机正品激活查询入口
    苹果官方查询网站 苹果手机正品激活查询入口

    苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

    136

    2026.01.26

    npd人格什么意思 npd人格有什么特征
    npd人格什么意思 npd人格有什么特征

    NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

    7

    2026.01.26

    windows安全中心怎么关闭 windows安全中心怎么执行操作
    windows安全中心怎么关闭 windows安全中心怎么执行操作

    关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

    6

    2026.01.26

    2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
    2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

    铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

    122

    2026.01.26

    个人所得税税率表2026 个人所得税率最新税率表
    个人所得税税率表2026 个人所得税率最新税率表

    以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

    35

    2026.01.26

    oppo云服务官网登录入口 oppo云服务登录手机版
    oppo云服务官网登录入口 oppo云服务登录手机版

    oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

    121

    2026.01.26

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号