php爬虫框架使用案例QueryList,将数据爬到mysql数据库

准备工具:

QueryList.php (我用的是版本3) 下载地址:https://github.com/jae-jae/QueryList

phpQuery.php   下载地址:https://doc.querylist.cc/

phpStudy:其中包含mysql数据库

注意:PHP版本最好在5.4.45的。在phpStudy中修改。

创建连接数据库的php文件,文件名为sql.php:

在phpstudy的网站目录phpStudy\PHPTutorial\WWW\中创建项目文件夹名为QueryList。

将下载的QueryList.php和phpQuery.php解压后,从解压的文件夹中复制这两个文件夹到项目文件夹QueryList中。

此时,项目的文件夹中的文件如下(demo.php为下一步创建的文件):

php爬虫框架使用案例QueryList,将数据爬到mysql数据库_第1张图片

 创建demo.php,将自己写的爬虫代码放在这里。

其中代码为:

array('tr td','text')/*通过标签的方式选择html中需要爬的数据地址,text表示爬去标签之间的内容*/
                )
        );
        if($run_times!=0){
            $run_times++;
            //此处为爬取的分页数据的分页连接
            $hj = QueryList::Query('http://www.bankofchina.com/sourcedb/ffx/index_'.$run_times.'.html',
                array(
                    "url"=>array('tr td','text')
                )
            );
        }

        //开始通过超链接获取到制定的网页源代码
        $data = $hj->getData(function($x){
            return $x['url'];
        });

        $sige=7;//由于返回的数据是一个数组对象,且根据实际情况分为7个数组为一组,所以此变量的作用是识别每7次就做为一个数据记录,即存入数据库的一条记录
        $model = array();//声明一个空数组,存放循环7次后组成的新数组,此数组的元素作为一条数据的数据字段,用于存放到数据库
        for ($i=0; $i<= count($data); $i++) {//count($data)统计爬到的数据数组的元素个数
            if($sige>0){
                //echo $data[$i];
                array_push($model,$data[$i]);//将爬到的数据数组循环,并将元素作为新的数组元素放在新的数组中
                //echo  "  ";
                $sige--;
            }
            if($sige==0){
                //echo  "
"; //print_r($model); //echo "
"; //sql语句,需要存入的值是新数组的每个元素 $sql="insert into bank (name,num,timess,enterprice,outprice,moneyss,timesss) VALUES ('".$model[0]."','".$model[1]."','".$model[2]."','".$model[3]."','".$model[4]."','".$model[5]."','".$model[6]."')"; mysql_query($sql,$con);//开始执行插入语句 $model = array();//将存入的数据元素从定以的新的数组中删除,将此数组清空 //echo $sql; $sige=7;//清空数组后,将标记循环次数回复到初始状态 } } } // print_r($hj); //print_r($data); /* echo '


'; //echo "

";*/ //echo count($data); mysql_close($con);//当while循环结束时,说明所有数据已经爬取完毕,关闭数据库的连接 } catch (Exception $e) { mysql_close($con);//以上爬取数据到关闭数据库的代码若有某一行报错,则立即执行到此处,抛出异常,并关闭数据库连接 echo $e; }

在浏览器中输入本站点,并访问到demo.php文件。访问成功后数据将存放在数据库中。若想看到结果,请将上诉代码中的输出、打印语句解除注释,访问的时候页面上会显示结果。

你可能感兴趣的:(学习笔记,PHP,张小三,thinkphp,5)