婷婷综合国产,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
    91精品国产全国免费观看 | 亚洲综合一区二区精品导航| 久久99蜜桃精品| 正在播放亚洲一区| 免费人成在线不卡| 久久综合狠狠综合久久综合88| 国产综合色产在线精品| 欧美激情中文不卡| 色综合天天综合给合国产| 一区二区在线免费| 777亚洲妇女| 国产精品99久久久久久久女警| 国产精品视频一二三区 | 午夜精品aaa| 欧美一区二区观看视频| 国产成人综合在线播放| 一区二区三区四区精品在线视频| 欧美卡1卡2卡| 激情文学综合网| 欧美激情在线一区二区| 99热在这里有精品免费| 亚洲五码中文字幕| 久久久亚洲精品一区二区三区 | 国产乱人伦偷精品视频免下载| 国产精品网曝门| 欧美高清视频不卡网| 国产福利一区二区三区视频在线 | 日韩成人免费电影| 中文字幕免费观看一区| 欧美日本在线观看| 国产成人免费9x9x人网站视频| 一区二区三区欧美视频| 精品日韩成人av| 91在线免费播放| 国产在线播放一区三区四| 一区二区三区精品在线观看| 欧美大胆人体bbbb| 欧美视频你懂的| 99精品热视频| 国产精品夜夜爽| 喷白浆一区二区| 亚洲亚洲人成综合网络| 欧美激情在线一区二区| 精品国产91洋老外米糕| 777久久久精品| 欧美图片一区二区三区| 91蜜桃免费观看视频| 夫妻av一区二区| 国产成人在线看| 国产大陆亚洲精品国产| 国产麻豆成人传媒免费观看| 麻豆国产精品777777在线| 午夜精品一区在线观看| 亚洲午夜三级在线| 亚洲与欧洲av电影| 亚洲观看高清完整版在线观看 | 欧美一区二区三区四区久久| 91久久人澡人人添人人爽欧美| 粉嫩av一区二区三区粉嫩| 精品综合免费视频观看| 老司机午夜精品| 麻豆精品一区二区三区| 免费一区二区视频| 精品午夜久久福利影院| 国内精品久久久久影院色| 久久97超碰国产精品超碰| 久久99九九99精品| 国产传媒欧美日韩成人| 白白色 亚洲乱淫| 91色在线porny| 欧美性生交片4| 欧美日韩成人综合| 日韩免费成人网| 国产欧美日韩综合| 亚洲少妇30p| 性感美女极品91精品| 蜜桃精品视频在线| 国产99久久精品| 色婷婷亚洲综合| 欧美日韩国产高清一区二区| 91麻豆精品91久久久久久清纯 | 欧美三级日韩三级| 日韩一区二区电影在线| 久久精品水蜜桃av综合天堂| 中文字幕中文字幕一区二区| 亚洲精品伦理在线| 老司机午夜精品99久久| www.日韩在线| 91精品一区二区三区在线观看| 久久综合色婷婷| 亚洲欧美激情小说另类| 日韩精品一二区| 国产精品69毛片高清亚洲| 欧美影片第一页| 国产亚洲一本大道中文在线| 亚洲欧美国产三级| 男人的天堂久久精品| 波多野结衣精品在线| 欧美丰满少妇xxxbbb| 国产精品午夜在线| 蜜臀精品久久久久久蜜臀| 99国产精品国产精品毛片| 精品国产乱码久久久久久免费 | 日韩精品一区第一页| 国产高清视频一区| 日韩欧美国产综合一区| 樱花草国产18久久久久| 国产成人免费视频一区| 日韩三级在线观看| 亚洲精品视频免费看| 国产福利一区二区三区视频在线| 91丨九色丨尤物| 国产午夜精品久久| 蜜桃av一区二区三区电影| 色婷婷av一区二区三区软件| 国产日韩欧美综合一区| 麻豆91在线播放免费| 欧美裸体一区二区三区| 亚洲激情自拍偷拍| gogo大胆日本视频一区| 欧美激情一区在线观看| 国产成人福利片| 久久久夜色精品亚洲| 极品美女销魂一区二区三区免费| 欧美人妖巨大在线| 亚洲国产日韩a在线播放性色| 91麻豆文化传媒在线观看| 国产午夜亚洲精品不卡| 看电视剧不卡顿的网站| 日韩视频中午一区| 麻豆freexxxx性91精品| 日韩欧美国产一区在线观看| 裸体健美xxxx欧美裸体表演| 日韩欧美视频一区| 极品少妇一区二区| 久久久久久久久一| 国产一区二区在线看| 欧美激情中文字幕| av一区二区三区四区| 一区二区三区在线看| 欧美性猛交一区二区三区精品| 亚洲一级二级三级在线免费观看| 色一情一伦一子一伦一区| 亚洲精选视频在线| 欧美日韩免费不卡视频一区二区三区| 亚洲最大成人网4388xx| 欧美久久久一区| 韩国女主播成人在线观看| 国产亚洲欧美激情| 91日韩在线专区| 日韩中文字幕亚洲一区二区va在线| 欧美福利视频一区| 国产电影一区在线| 亚洲色图制服丝袜| 欧美日韩一本到| 国产精品自产自拍| 亚洲欧美另类综合偷拍| 91精品国产综合久久婷婷香蕉| 老司机免费视频一区二区| 久久天天做天天爱综合色| 91麻豆.com| 激情偷乱视频一区二区三区| 亚洲欧洲日本在线| 日韩午夜精品电影| 色94色欧美sute亚洲13| 日本免费新一区视频| 国产精品久久免费看| 欧美一区二区视频在线观看 | 欧美成人精品福利| 97久久超碰国产精品| 日韩成人精品在线| 亚洲视频精选在线| 精品福利二区三区| 91精品1区2区| 国产河南妇女毛片精品久久久 | 黄网站免费久久| 亚洲精品免费视频| 国产日韩欧美麻豆| 欧美xxxx老人做受| 欧美色老头old∨ideo| 东方欧美亚洲色图在线| 热久久国产精品| 一区二区三区在线观看欧美| 久久久久久综合| 91精品婷婷国产综合久久| 91在线一区二区| 国产精品一区二区三区乱码| 日韩不卡一二三区| 一区二区三区色| √…a在线天堂一区| 久久精品亚洲乱码伦伦中文 | 国产精品第四页| 久久亚洲捆绑美女| 日韩欧美中文一区二区| 欧美日韩精品高清| 欧美性一区二区| 欧美亚洲国产一卡| 一本久久综合亚洲鲁鲁五月天| 国产.欧美.日韩| 国产a久久麻豆|