<?PHP
//演示
//数据量不是特别大,不写完整捕捞数据停止。 喜欢的朋友拿自己改改就好了
( “内容类型:文本/ HTML;字符集= UTF-8”); 限定( “MYSQL_HOST”SAE_MYSQL_HOST_M); 限定( “MYSQL_NAME”, “豆瓣”); 限定( “MYSQL_USER”SAE_MYSQL_USER); 限定( “MYSQL_PASSWORD”SAE_MYSQL_PASS); 限定( “MYSQL_PORT”SAE_MYSQL_PORT); $行动=$ _GET[ ‘URL’]。 如果(!$行动)) { $ DATA= GetLink($行动); $ DATA= Str_SUBSTR(‘
’‘
”,$ DATA); $ DATAArray中=爆炸(’
”,$ DATA); array_splice$ DATAArray中中,0,1); 的的foreach$ DataArray中中 $关键=> $项目) { $ BookArray[$关键] [ ‘标题’] = str_SUBSTR( ‘类= “标题” 目标= “_空白”>’,“”,$项目); $ BookArray[$关键] [ ‘评分’] = str_substr(‘’‘”,$项目); $ BookArray[$关键] [ ’Book_id‘] = str_substr( ’/受试者/‘,“/?从”$项目); 如果(!selectBookSaveed($ BookArray[$关键] [ ’标题‘])) { insertMysql($ BookArray[$关键]); } //$ DataArray中[$键] =用htmlspecialchars($项目); } $页=爆炸(“图书?启动=”,$行动); $ NEW_URL=$页[0] 。“书?开始=“。($页[1] + 15); // 后续代码var_dump($页); //后续代码var_dump($ bookArray); } //获取连接 功能 获取链接 ($网址) { $ Data=的GetData($网址); 返回 $ Data; } //拍摄功能数据 功能 的getData($网址) { //初始化 $章= curl_init(); //设置选项,包括URL curl_setopt($章,CURLOPT_URL,$网址); curl_setopt($章,CURLOPT_RETURNTRANSFER,1); curl_setopt($章,CURLOPT_HEADER,0); curl_setopt($章,CURLOPT_USERAGENT,“的Mozilla / 5.0(Windows NT的6.1)为AppleWebKit / 536.11(KHTML,例如Gecko)铬/ 20.0。1132.47的Safari / 536.11’); //执行并获取HTML文档内容 $输出= Curl_exec($章); //卷曲释放手柄 curl_close($章); //返回数据 返回 $输出; } //节省存储 功能 insertMysql($ DataArray) { $场= “”$价值= “”foreach$ DataArray $关键=> $项目) { $场 。= “”。$关键$价值 。= “”‘。$项目。““”; } $场=substr$场1,strlen的的$场)-1); $价值=substr$价值1,strlen$价值)-1); $ sql中= “INSERT INTO豆瓣(”。$场。“)VALUES(”。$价值。“)”// 后续代码var_dump($的SQL); // 出口; $结果= MysqlOperation($ sql中); 返回 $结果; } //查询是否已进入 功能 selectBookSaveed($标题) { $ sql中= “SELECT * FROM豆瓣WHERE标题=“”。$标题。““”$结果= MysqlOperation($ sql中, “选择”); 如果$结果)) { 返回 //不存在 } 返回 真正; } //数据库操作 功能 mysqlOperation($ sql中$方法=“查询”) { $库MySQLi= mysqli的( SAE_MYSQL_HOST_M SAE_MYSQL_USER SAE_MYSQL_PASS SAE_MYSQL_DB SAE_MYSQL_PORT ); 如果mysqli_connect_errno()) 回声 ’错误'// 返回false; 如果$方法==“选择”返回 mysqli_fetch_assoc$库MySQLi- >查询($ sql中)); 如果$方法==“查询”返回 $库MySQLi- >查询($ sql中); } // 字符串截取函数: 功能 str_substr($启动$结束$海峡) { $温度=爆炸$启动$海峡,2); $内容=爆炸$结束$温度[1],2); 返回 $内容[0]。 } ?>