PHP 多线程采集
- function curl_multi($urls) {
- if (!is_array($urls) or count($urls) == 0) {
- return false;
- }
- $num=count($urls);
- $curl = $curl2 = $text = array();
- $handle = curl_multi_init();
- function createCh($url) {
- $ch = curl_init();
- curl_setopt ($ch, CURLOPT_URL, $url);
- curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko');//设置头部
- curl_setopt ($ch, CURLOPT_REFERER, $url); //设置来源
- curl_setopt ($ch, CURLOPT_ENCODING, "gzip"); // 编码压缩
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);//是否采集301、302之后的页面
- curl_setopt ($ch, CURLOPT_MAXREDIRS, 5);//查找次数,防止查找太深
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
- curl_setopt ($ch, CURLOPT_TIMEOUT, 20);
- curl_setopt ($ch, CURLOPT_HEADER, 0);//输出头部
- return $ch;
- }
- foreach($urls as $k=>$v){
- $url=$urls[$k];
- $curl[$k] = createCh($url);
- curl_multi_add_handle ($handle,$curl[$k]);
- }
- $active = null;
- do {
- $mrc = curl_multi_exec($handle, $active);
- } while ($mrc == CURLM_CALL_MULTI_PERFORM);
- while ($active && $mrc == CURLM_OK) {
- if (curl_multi_select($handle) != -1) {
- usleep(100);
- }
- do {
- $mrc = curl_multi_exec($handle, $active);
- } while ($mrc == CURLM_CALL_MULTI_PERFORM);
- }
- foreach ($curl as $k => $v) {
- if (curl_error($curl[$k]) == "") {
- $text[$k] = (string) curl_multi_getcontent($curl[$k]);
- }
- curl_multi_remove_handle($handle, $curl[$k]);
- curl_close($curl[$k]);
- }
- curl_multi_close($handle);
- return $text;
- }
- $urls=array('http://www.baidu.com',
- 'http://www.baidu.com',
- 'http://www.baidu.com',
- 'http://www.baidu.com',
- 'http://www.baidu.com',
- 'http://www.baidu.com',
- 'http://www.baidu.com',
- 'http://www.baidu.com'
- );
- $res=curl_multi($urls);
- print_r($res);
PHP 多线程采集的更多相关文章
- Python多线程采集百度相关搜索关键词
百度相关搜索关键词抓取,读取txt关键词,导出txt关键词 #百度相关搜索关键词抓取,读取txt关键词,导出txt关键词 # -*- coding=utf-8 -*- import request ...
- python3 多线程 采集 xpath
#!/usr/bin/python # -*- coding: UTF-8 -*- '''Thread3 多线程测试采集''' import threading,time,queue,Mongo_ut ...
- python多线程采集
import requests import json import threading Default_Header = { #具体请求头自己去弄 } _session=requests.sessi ...
- PHP使用CURL_MULTI实现多线程采集
$connomains = array( "http://www.baidu.com/", "http://www.hao123.com/", "ht ...
- python多线程采集图片
cmd中运行 >python untitled2.py 图片的网站 import requests import threading from bs4 import BeautifulSo ...
- PHP cURL应用实现模拟登录与采集使用方法详解
对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...
- 多线程实际运用<第七篇>
1.单线程采集100个页面 class Program { static int i = 6991275; static void Main(string[] args) { Stopwatch sw ...
- PHP cURL实现模拟登录与采集使用方法详解教程
来源:http://www.zjmainstay.cn/php-curl 本文将通过案例,整合浏览器工具与PHP程序,教你如何让数据 唾手可得 . 对于做过数据采集的人来说,cURL一定不会陌生.虽然 ...
- 转载 多线程实际运用<第七篇>
多线程实际运用<第七篇> 1.单线程采集100个页面 class Program { static int i = 6991275; static void Main(string[] a ...
随机推荐
- 第七章移动互联网与移动IP
第七章移动互联网与移动IP 本章延续前几章节,对该章节内容进行归纳总结. 文章中的Why表示产生的背景,也就是说为什么会产生该技术,What表示该技术是什么,How表示该技术是如何使用的.以下将用字母 ...
- CMDBuild2.4.3安装配置
参考文档: 官网:http://www.cmdbuild.org/en 参考:http://blog.csdn.net/shawn210/article/details/70230248 本文涉及CM ...
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
1. 摘要 训练深层的神经网络非常困难,因为在训练的过程中,随着前面层数参数的改变,每层输入的分布也会随之改变.这需要我们设置较小的学习率并且谨慎地对参数进行初始化,因此训练过程比较缓慢. 作者将这种 ...
- 【RL系列】On-Policy与Off-Policy
强化学习大致上可分为两类,一类是Markov Decision Learning,另一类是与之相对的Model Free Learning 分为这两类是站在问题描述的角度上考虑的.同样在解决方案上存在 ...
- [朴孝敏][Gold]
歌词来源:http://music.163.com/#/song?id=406924220 作曲 : Ryan S. Jhun/David Quinones/Edwin Menjivar/Mateo ...
- 一个小时搭建一个全栈 Web 应用框架
把想法变为现实的能力是空想家与实干家的区别.不管你是在一家跨国公司工作,还是正在为自己的创业公司而努力,那些有能力将创意转化为真正产品的人,都具有宝贵的技能并拥有明显的实力.如果你能在不到一个小时的时 ...
- 子元素设置margin-top后,父元素跟随下移的问题
子元素设置margin-top后,父元素跟随下移的问题 <!DOCTYPE html> <html lang="en"> <head> < ...
- Manacher算法——求最长回文子串
首先,得先了解什么是回文串.回文串就是正反读起来就是一样的,如“abcdcba”.我们要是直接采用暴力方法来查找最长回文子串,时间复杂度为O(n^3),好一点的方法是枚举每一个字符,比较较它左右距离相 ...
- WIN 7 发布项目
本人工作都快两年了不知道web 怎么发布 今天我自己非常恼火!我就暗暗研究.希望能给新手指导 准备工作:WIN7 系统 .IIS 6.0.MVC (vs 新建mvc项目自带的项目) OK begin ...
- 软件工程-东北师大站-第六次作业PSP
1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图