亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

采集2345網站

標簽:
PHP

<?php


// 设置脚本不限制时间一直执行到结束

set_time_limit(0);


/*


create database cj_movie default charset utf8;

use cj_movie;

create table cj_movie

(

id mediumint unsigned not null auto_increment,

title varchar(50) not null comment '电影名称',

logo varchar(150) not null comment '图片',

link varchar(150) not null comment '链接',

primary key (id)

)engine=InnoDB comment '电影基本信息';


*/


class Movie

{

private $init;


public function __construct()

{

// 创建一个下载用的对象

$this->init = curl_init();

// 返回字符串不要直接输出

curl_setopt($this->init, CURLOPT_RETURNTRANSFER, TRUE);

}


// 根据URL地址下载一个页面

public function get($url)

{

curl_setopt($this->init, CURLOPT_URL, $url);

return curl_exec($this->init);

}


// 从一个字符串中截取出一小段

public function getSection($str, $start, $end)

{

// 开始的位置

$startpos = strpos($str, $start);

// 结束的位置

$endpos = strpos($str, $end);

// 开始标记的长度

$startlen = strlen($start);

// 内容的长度

$conlen = $endpos - $startpos - $startlen;

// 截取

return substr($str, $startpos + $startlen, $conlen);

}


// 开始采集

public function start()

{

$pdo = new PDO('mysql:host=localhost;dbname=cj_movie', 'root', '');

$pdo->exec('SET NAMES utf8');

$stmt = $pdo->prepare('INSERT INTO cj_movie VALUES(null,?,?,?)');


// 要采集的分类

$arr = ['aiqing','dongzuo','xiju'];


// 计数

$totalnum = 0;


foreach($arr as $v0)

{

// 循环页数

for($i=1; $i<=100; $i++)

{

// 先下载页面的HTML

$html = $this->get("http://dianying.2345.com/list/$v0-------$i.html");

// 截取出包含电脑的那一段字符串

$html = $this->getSection($html, 'pic180_240', 'v_page');

// 通过正则匹配出每个li标签

$li_re = '/<li.+>.+<\/li>/Us';

// 把匹配到的LI保存到$li中

preg_match_all($li_re, $html, $li);


$img_re = '/<img.+data-class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.+)".+alt="(.+)">/Us';

$a_re = '/<a.+href="(.+)".+>.+<\/a>/Us';


                  <img.+data-class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.+)".+alt="(.+)">/Us

// 循环每个电影下载

foreach($li[0] as $v)

{

// 匹配图片和标题

preg_match($img_re, $v, $img);

$img[2] = mb_convert_encoding($img[2], 'utf-8', 'gb2312');

// 匹配详情页的链接

preg_match($a_re, $v, $link);

$stmt->bindValue(1, $img[2]);

$stmt->bindValue(2, $img[1]);

$stmt->bindValue(3, $link[1]);

$stmt->execute();

// 计数

if(++$totalnum % 10 == 0)

{

echo $totalnum . '已下载完成<br>';

ob_flush();

flush();

// 休息一下,把内存中的数据导入到数据库中

sleep(2);

}

}

}

}

echo 'ok!';

}

}


$a = new Movie;

$str = $a->start();


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
PHP開發工程師
手記
粉絲
16
獲贊與收藏
81

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消