搜索
首页后端开发php教程抓取“全球 IC 采购网”供应商程序_PHP教程

/** 
* 抓取“全球 IC 采购网(http://www.qic.com.cn/)”供应商主程序 
* author Lee. 
* Last modify $Date: 2012-2-7 09:35:21 $ 
*/ 
require_once './config.inc.php'; 
class qic{ 
    private $startId; 
    private $endId; 
     
    public function __construct() { 
        $this->startId = 27688; 
        $this->endId = 55185; 
    } 
     
    public function go() { 
        for ($i=$this->startId; $iendId; $i++) { 
            $infoArr = $this->getInfoByUrl($this->getUrl($i)); 
            if (emptyempty($infoArr['company'])) continue; 
            $m = new Model(); 
            if ($m->isExists('qic', "company='{$infoArr['company']}'")) { 
                echo 'Data Exists!!'; continue; 
            } else { 
                if ($this->addInfoInDB($m, $infoArr)) { 
                    echo 'Add Success!!'; 
                } else { 
                    echo 'Add Faild!!'; 
                } 
            } 
        } 
    } 
     
    /**
     * 添加数据进数据库
     * @param Object $m
     * @param array $infoArr
     * @return Number
     */ 
    private function addInfoInDB($m ,$infoArr) { 
        $num = null; 
        $num = $m->insert('qic', array('company', 'person', 'phone', 'mobile', 'fax', 'qq', 'msn', 'email', 'address', 'website', 'shopUrl'), array($infoArr['company'], $infoArr['person'], $infoArr['phone'], $infoArr['mobile'], $infoArr['fax'], $infoArr['qq'], $infoArr['msn'], $infoArr['email'], $infoArr['address'], $infoArr['website'], $infoArr['shopUrl'])); 
        return $num; 
    } 
     
    /**
     * 根据供应商地址获取信息
     * @param string $re
     * @return ArrayObject
     */ 
    private function getInfoByUrl($url) { 
        $re = file_get_contents($url); 
        preg_match_all('/

(.*)/Usi', $re, $companyArr); 
        preg_match_all('/
  • \s*联 系 人:(.*)/Usi', $re, $personArr); 
            preg_match_all('/
  • \s*电 话:(.*)/Usi', $re, $phoneArr); 
            preg_match_all('/
  • \s*手 机:(.*)/Usi', $re, $mobileArr); 
            preg_match_all('/
  • \s*传 真:(.*)/Usi', $re, $faxArr); 
            preg_match_all('/
  • \s*QQ:(.*)/Usi', $re, $qqArr); 
            preg_match_all('/
  • \s*MSN:(.*)/Usi', $re, $msnArr); 
            preg_match_all('/
  • \s*邮 箱:(.*)/Usi', $re, $emailArr); 
            preg_match_all('/公司地址:(.*)/Usi', $re, $addressArr); 
            preg_match_all('/公司网址:(.*)/Usi', $re, $websiteArr); 
            $infoArr = array( 
                'company'=>$this->formatString($companyArr[1][0]), 
                'person'=>$this->formatString($personArr[1][0]), 
                'phone'=>$this->formatString($phoneArr[1][0]), 
                'mobile'=>$this->formatString($mobileArr[1][0]), 
                'fax'=>$this->formatString($faxArr[1][0]), 
                'qq'=>$this->formatString($qqArr[1][0], 'qm'), 
                'msn'=>$this->formatString($msnArr[1][0], 'qm'), 
                'email'=>$this->formatString($emailArr[1][0]), 
                'address'=>$this->formatString($addressArr[1][0]), 
                'website'=>$this->formatString($websiteArr[1][0], 'a'), 
                'shopUrl'=>$url 
            ); 
            return $infoArr; 
        } 
         
        /**
         * 获取页面内容
         * @param string $url
         * @return string
         */ 
        private function getContent($url) { 
            $re = file_get_contents($url); 
            return $re;  
        } 
         
        /**
         * 格式化字符串
         * @param string $str
         * @param string $type 类型
         * @return string
         */ 
        private function formatString($str, $type='default') { 
            $str = trim($str); 
            switch ($type) { 
                case 'default': 
                    return emptyempty($str) ? '' : $str;  
                    break; 
                case 'qm': # 处理QQ 
                    if (emptyempty($str)) return ''; 
                    preg_match_all('/\'(.+)\'/si', $str, $arr); 
                    return trim($arr[1][0]); 
                    break; 
                case 'a': 
                    $str = preg_replace('/(.+)/', '\1', $str); 
                    return $str; 
                    break; 
                default: 
                    return ''; 
                    break; 
            } 
        } 
         
        /**
         * 获取供应商页面地址 www.2cto.com
         * @param int $shopId
         * @return string
         */ 
        private function getUrl($shopId) { 
            return "http://www.qic.com.cn/specialstore/tsh_{$shopId}.html";  
        } 
         

     
    /*
     * 表结构
     CREATE TABLE `qic` (
        `id` mediumint(8) unsigned NOT NULL auto_increment,
        `company` varchar(500) NOT NULL,
        `person` varchar(500) NOT NULL,
        `phone` varchar(300) NOT NULL,
        `mobile` varchar(300) NOT NULL,
        `fax` varchar(300) NOT NULL,
        `qq` varchar(300) NOT NULL,
        `msn` varchar(500) NOT NULL,
        `email` varchar(500) NOT NULL,
        `address` varchar(500) NOT NULL,
        `website` varchar(500) NOT NULL,
        `shopUrl` varchar(200) NOT NULL,
        PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
     * */ 
     
    $q = new qic(); 
    $q->go(); 
    ?> 

    摘自 Lee.的专栏

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478402.htmlTechArticle?php /** * 抓取全球 IC 采购网(http://www.qic.com.cn/)供应商主程序 * author Lee. * Last modify $Date: 2012-2-7 09:35:21 $ */ require_once ./config.inc.php; class qic...
  • 声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    ace-guard client exe是什么程序ace-guard client exe是什么程序Sep 22, 2021 pm 06:07 PM

    ace-guard client exe是腾讯代理游戏的反作弊程序,是ewido的守护进程,保护“ewido.exe”进程不被恶意软件关闭;使用它可以检测游戏用户是否有开挂行为,可自动进行封号处理。

    microsoft visual c++可以卸载吗?microsoft visual c++可以卸载吗?Sep 14, 2022 am 11:36 AM

    “microsoft visual c++”是可以卸载的,但是不建议卸载;“microsoft visua”这些都是一些微软的组件,里面包括一些“C++”标准库、原始数据库等相关信息,很多软件尤其是游戏中需要“microsoft visual c++”中的环境组件,如果缺少了“C++”标准库的支持,可能会造成软件的无法运行。

    如何自动切换特定应用程序的iPhone方向锁定如何自动切换特定应用程序的iPhone方向锁定Jun 06, 2023 am 08:22 AM

    在iOS中,当您将iPhone从纵向旋转到横向时,许多App会显示不同的视图。根据应用程序及其使用方式,这种行为并不总是可取的,这就是Apple在“控制中心”中包含方向锁定选项的原因。但是,某些应用程序在禁用方向锁定的情况下工作得更有用-想想YouTube或照片应用程序,将设备旋转到横向可以提供更好的全屏观看体验。如果您倾向于保持锁定状态,则必须在每次打开这些类型的应用程序时在“控制中心”中禁用它以获得全屏体验。然后,当您关闭应用程序时,您必须记住重新打开方向锁定,这并不理想。幸运的是,您可以创

    卸载程序的文件名是什么卸载程序的文件名是什么Oct 21, 2022 pm 02:05 PM

    卸载程序的文件名是“uninstall.exe”或“uninst.exe”,是用以协助使用者将软件自电脑中删除的一种电脑软件。使用方法:1、在文件资源管理器中挖掘并导航到应用程序EXE文件所在的文件路径;2、通过文件路径打开应用程序的安装目录,找到“uninstall.exe”文件;3、双击卸载文件“uninstall.exe”即可开始程序删除过程。

    如何在设备管理器中查找供应商 ID?如何在设备管理器中查找供应商 ID?Apr 25, 2023 pm 08:19 PM

    如果设备管理器中有一个未知条目并且您无法识别它,您会怎么做?除非您安装驱动程序,否则未知设备将无法工作,并且在识别设备之前您无法找到驱动程序。这就是设备管理器中的供应商ID出现的地方。设备管理器是一个应用程序,它列出了连接到计算机的所有设备、组件和外围设备,包括内部和外部。它还允许您选择执行一系列功能,并查找有关设备的信息。因此,让我们了解供应商ID是什么以及如何在设备管理器中找到它。什么是供应商ID?供应商ID是分配给设备制造商的标识符,用于帮助追踪设备制造商的各种原因,包括查找相关驱动程

    Scrapy案例解析:如何抓取LinkedIn上公司信息Scrapy案例解析:如何抓取LinkedIn上公司信息Jun 23, 2023 am 10:04 AM

    Scrapy是一个基于Python的爬虫框架,可以快速而方便地获取互联网上的相关信息。在本篇文章中,我们将通过一个Scrapy案例来详细解析如何抓取LinkedIn上的公司信息。确定目标URL首先,我们需要明确我们的目标是LinkedIn上的公司信息。因此,我们需要找到LinkedIn公司信息页面的URL。打开LinkedIn网站,在搜索框中输入公司名称,在

    wmiprvse.exe是什么程序wmiprvse.exe是什么程序Sep 02, 2022 am 10:59 AM

    “wmiprvse.exe”是windows管理规范程序;该程序是windows操作系统的一个组件,用于通过“WinMgmt.exe”程序处理WMI操作,能够实现为用户提供管理信息和企业环境中的控制功能。

    五个美妙的程序,让你的 Linux 终端更加精彩五个美妙的程序,让你的 Linux 终端更加精彩Jun 09, 2023 am 12:29 AM

    许多人都曾经使用过命令行。这个经典的基于文本的界面让你可以完成一些图形界面无法实现的琐碎任务。有时候你只需要深入终端。对于全面发展的开发人员来说,基本的命令行知识是必不可少的。你应该熟悉命令行,能够编辑文件,配置应用程序——掌握所有基础知识。然而,Linux命令行界面并不一定是黑白单调的体验。你可以在命令行上使用有趣、充满活力的程序,给它带来焕然一新的外观。在本文中,我们将介绍一些炫酷的第三方程序,让使用控制台界面更具视觉吸引力。虽然纯功能和效率可能不是这些程序的主要目标,但它们为原本单调的体验

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    2 周前By尊渡假赌尊渡假赌尊渡假赌
    仓库:如何复兴队友
    4 周前By尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒险:如何获得巨型种子
    4 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    PhpStorm Mac 版本

    PhpStorm Mac 版本

    最新(2018.2.1 )专业的PHP集成开发工具

    安全考试浏览器

    安全考试浏览器

    Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境