婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php使用pthreads v3多線程實現抓取新浪新聞信息操作示例

php使用pthreads v3多線程實現抓取新浪新聞信息操作示例

熱門標簽:邢臺400電話辦理 正規電銷機器人系統 辦理400電話哪家好點 嘟嘟云外呼系統 咸陽電銷 濟源百應電銷機器人聯系方式 南京3D地圖標注 南寧電話外呼系統線路 重慶外呼電銷系統多少錢

本文實例講述了php使用pthreads v3多線程實現抓取新浪新聞信息。分享給大家供大家參考,具體如下:

我們使用pthreads,來寫一個多線程的抓取頁面小程序,把結果存到數據庫里。

數據表結構如下:

CREATE TABLE `tb_sina` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `url` varchar(256) DEFAULT '' COMMENT 'url地址',
 `title` varchar(128) DEFAULT '' COMMENT '標題',
 `time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '時間',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='sina新聞';

代碼如下:

?php

class DB extends Worker
{
  private static $db;
  private $dsn;
  private $root;
  private $pwd;

  public function __construct($dsn, $root, $pwd)
  {
    $this->dsn = $dsn;
    $this->root = $root;
    $this->pwd = $pwd;
  }

  public function run()
  {
    //創建連接對象
    self::$db = new PDO($this->dsn, $this->root, $this->pwd);

    //把require放到worker線程中,不要放到主線程中,不然會報錯找不到類
    require './vendor/autoload.php';
  }

  //返回一個連接資源
  public function getConn()
  {
    return self::$db;
  }
}

class Sina extends Thread
{
  private $name;
  private $url;

  public function __construct($name, $url)
  {
    $this->name = $name;
    $this->url = $url;
  }

  public function run()
  {
    $db = $this->worker->getConn();

    if (empty($db) || empty($this->url)) {
      return false;
    }

    $content = file_get_contents($this->url);
    if (!empty($content)) {
      //獲取標題,地址,時間
      $data = QL\QueryList::Query($content, [
        'tit' => ['.c_tit > a', 'text'],
        'url' => ['.c_tit > a', 'href'],
        'time' => ['.c_time', 'text'],
      ], '', 'UTF-8', 'GB2312')->getData();

      //把獲取的數據插入數據庫
      if (!empty($data)) {
        $sql = 'INSERT INTO tb_sina(`url`, `title`, `time`) VALUES';
        foreach ($data as $row) {
          //修改下時間,新浪的時間格式是這樣的04-23 15:30
          $time = date('Y') . '-' . $row['time'] . ':00';
          $sql .= "('{$row['url']}', '{$row['tit']}', '{$time}'),";
        }
        $sql = rtrim($sql, ',');
        $ret = $db->exec($sql);

        if ($ret !== false) {
          echo "線程{$this->name}成功插入{$ret}條數據\n";
        } else {
          var_dump($db->errorInfo());
        }
      }
    }
  }
}

//抓取頁面地址
$url = 'http://roll.news.sina.com.cn/s/channel.php?ch=01#col=89spec=type=ch=01k=offset_page=0offset_num=0num=60asc=page=';
//創建pool池
$pool = new Pool(5, 'DB', ['mysql:dbname=test;host=192.168.33.226', 'root', '']);

//獲取100個分頁數據
for ($ix = 1; $ix = 100; $ix++) {
  $pool->submit(new Sina($ix, $url . $ix));
}

//循環收集垃圾,阻塞主線程,等待子線程結束
while ($pool->collect()) ;
$pool->shutdown();

由于使用到了QueryList,大家可以通過composer進行安裝。

composer require jaeger/querylist

不過安裝的版本是3.2,在我的php7.2下會有問題,由于each()已經被廢棄,所以修改下源碼,each()全換成foreach()就好了。

運行結果如下:

數據也保存進了數據庫

當然大家也可以再次通過url,拿到具體的頁面內容,這里就不做演示了,有興趣的可以自已去實現。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP進程與線程操作技巧總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP pthread拓展使用和注意點
  • PHP pthreads v3下worker和pool的使用方法示例
  • PHP pthreads v3下同步處理synchronized用法示例
  • PHP pthreads v3使用中的一些坑和注意點分析
  • PHP中使用pthread拓展

標簽:唐山 通遼 南通 黃山 河南 平頂山 武漢 隴南

巨人網絡通訊聲明:本文標題《php使用pthreads v3多線程實現抓取新浪新聞信息操作示例》,本文關鍵詞  php,使用,pthreads,多,線程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php使用pthreads v3多線程實現抓取新浪新聞信息操作示例》相關的同類信息!
  • 本頁收集關于php使用pthreads v3多線程實現抓取新浪新聞信息操作示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品成人免费观看| 欧美午夜电影网| 视频一区欧美精品| 一区二区三区在线免费视频| 欧美一级高清大全免费观看| 欧美日韩一区二区在线视频| 色94色欧美sute亚洲13| 91浏览器入口在线观看| 成人激情免费电影网址| 懂色av一区二区在线播放| 国产成人精品免费网站| 91视频一区二区三区| 不卡一区二区中文字幕| 白白色亚洲国产精品| av成人动漫在线观看| 91视视频在线观看入口直接观看www | 国产亚洲综合色| 国产精品久久久久一区 | 亚洲动漫第一页| 日韩av电影天堂| 成人深夜在线观看| 在线观看免费成人| 日韩三区在线观看| 国产精品乱码妇女bbbb| 亚洲精品中文在线| 久久精品99国产精品| 不卡av免费在线观看| 欧美色视频一区| 国产日韩欧美电影| 舔着乳尖日韩一区| 成人听书哪个软件好| 欧美日韩不卡一区| 国产精品久久久久婷婷| 日韩高清不卡一区二区| 色伊人久久综合中文字幕| 日韩一级片在线观看| 亚洲一区二区三区不卡国产欧美| 久久国产精品无码网站| 欧美日韩二区三区| 亚洲免费色视频| 高清不卡一区二区| 亚洲精品一区二区三区蜜桃下载 | 国产福利一区二区三区视频在线| 在线观看国产91| 亚洲精品国产高清久久伦理二区| 国模少妇一区二区三区| 欧美刺激午夜性久久久久久久| 午夜欧美大尺度福利影院在线看| 色婷婷激情久久| 中文字幕欧美一区| 成人avav在线| 一区二区三区在线观看欧美| av亚洲精华国产精华精华 | 日韩一区二区三区四区| 亚洲电影视频在线| 69成人精品免费视频| 蜜桃精品视频在线| 久久精品一区二区三区不卡牛牛 | 有码一区二区三区| 欧美色视频一区| 久久69国产一区二区蜜臀| 久久久久综合网| 一本一道久久a久久精品| 亚洲成av人片在www色猫咪| 欧美一区二区在线不卡| 国产成人精品免费看| 亚洲成年人网站在线观看| 日韩一区二区在线观看视频播放| 国产91在线|亚洲| 国产精品久久久久久亚洲伦| 欧美美女激情18p| 成人免费视频视频在线观看免费| 一区二区三区成人| 久久尤物电影视频在线观看| 99精品久久只有精品| 麻豆视频一区二区| 亚洲精品ww久久久久久p站 | 日本三级亚洲精品| 亚洲欧美经典视频| 日本一区二区综合亚洲| 欧美年轻男男videosbes| jizz一区二区| 国产精品456露脸| 国产裸体歌舞团一区二区| 日日夜夜一区二区| 一区二区三区四区在线播放 | 黄色资源网久久资源365| 亚洲卡通动漫在线| 洋洋av久久久久久久一区| 中文字幕欧美日韩一区| 精品久久五月天| 久久精品在这里| 欧美国产日韩在线观看| 国产日韩v精品一区二区| 日韩欧美在线1卡| 久久欧美中文字幕| 国产欧美日韩视频一区二区| 国产欧美视频一区二区三区| 欧美激情综合五月色丁香| 国产亚洲精品7777| 亚洲老司机在线| 日韩国产高清在线| 国产99久久久精品| 97精品久久久午夜一区二区三区| 久久夜色精品国产噜噜av| 国产精品激情偷乱一区二区∴| 毛片av一区二区| 欧美三级乱人伦电影| 中文字幕字幕中文在线中不卡视频| 国产精品88av| 欧美国产1区2区| av一区二区三区黑人| 亚洲免费在线观看| 欧美无人高清视频在线观看| 亚洲一区二区综合| 91.xcao| 久久99国产精品久久| 久久久久高清精品| 99精品热视频| 爽好久久久欧美精品| 欧美电影免费提供在线观看| 国产不卡高清在线观看视频| 亚洲精品五月天| 日韩一区二区电影| 91网站最新地址| 手机精品视频在线观看| 国产视频在线观看一区二区三区| 99精品视频在线观看| 日韩一区精品字幕| 中文乱码免费一区二区| 欧美日韩久久一区| 99精品偷自拍| 国产成人午夜精品5599| 亚洲成人一二三| 中文字幕一区二区三区不卡 | 激情五月婷婷综合| 亚洲第一搞黄网站| 国产精品久久久久久久久免费桃花 | 午夜精品福利一区二区三区av | 国产一区二区三区免费播放| 亚洲一区二区三区四区的| 欧美精品一区二区久久久| 欧美日韩精品一区二区三区| 成人午夜在线免费| 国产麻豆91精品| 久久电影网站中文字幕| 一区二区三区视频在线看| 中文字幕一区二区三区精华液 | 亚洲欧美在线另类| 欧美日韩视频一区二区| 99久久精品一区| 成人美女视频在线看| 国产成人免费视| 国产ts人妖一区二区| 国产精品影音先锋| 国产精品一二三四| 国产一区二区视频在线| 国内成人自拍视频| 国产原创一区二区| 不卡一卡二卡三乱码免费网站| 成人h动漫精品| 欧洲精品在线观看| 日韩午夜av一区| 国产精品丝袜久久久久久app| 国产精品区一区二区三区| 亚洲视频免费看| 亚洲成人午夜电影| 看片网站欧美日韩| 国产成人小视频| 欧美日本国产视频| 欧美精品一区二区三区很污很色的 | 久久精品夜夜夜夜久久| 中文字幕不卡在线观看| 亚洲免费伊人电影| 毛片av中文字幕一区二区| 国产91精品入口| 8v天堂国产在线一区二区| 精品免费国产一区二区三区四区| 欧美国产日本视频| 日韩一区精品字幕| av在线综合网| 国产亚洲欧美日韩在线一区| 亚洲一区电影777| 高清成人免费视频| 欧美一三区三区四区免费在线看| 国产精品女同互慰在线看| 人人超碰91尤物精品国产| 91性感美女视频| 国产日产欧美一区二区三区| 日本不卡高清视频| 日本高清不卡视频| 亚洲伦理在线免费看| 国产精品一区在线| 久久午夜电影网| 日韩精品亚洲一区| 777久久久精品| 亚洲福利视频一区| 欧美疯狂做受xxxx富婆| 亚洲精品免费在线播放| 99国产欧美另类久久久精品|