博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
curl获取数据慢的处理方法
阅读量:2385 次
发布时间:2019-05-10

本文共 1591 字,大约阅读时间需要 5 分钟。

在工作中需要用到curl 远程获取数据,但是访问速度太慢了,有时候需要10几秒到20秒,查了下原因,原来是DNS域名解析速度太慢了,所以,这里我们需要先获取抓取网站的域名的IP,然后再进行处理,经过将域名替换为对应的IP后速度大大的提高了,只用不到3秒就可抓取到数据。

请看示例:

// 例如,抓取该网站的信息www.digtime.cn,正常域名速度非常慢,需要十几秒// $url = 'http://digtime.cn/article/20';// 根据域名获取IP 120.25.60.5 $ip = gethostbyname("www.digtime.cn");    $url = 'http://'.$ip.'/article/20';  $curl = curl_init ();    curl_setopt ( $curl, CURLOPT_URL, $url );    curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );    curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE );    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );    $output = curl_exec ( $curl );    curl_close ( $curl );   print_r($output);// 此案例可用于解决微信第三方获取Token信息慢的问题:function get_token($options){  // 域名解析 api.weixin.qq.com => 183.57.48.62    $appid = $options['appid'];  $secret = $options['secret'];  $code = $options['code'];  $url = 'https://183.57.48.62/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';  $curl = curl_init ();    curl_setopt ( $curl, CURLOPT_URL, $url );    curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );    curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE );    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );    $output = curl_exec ( $curl );    curl_close ( $curl );   return json_decode($output, true);}

 

所用到的方法参考:

gethostbyname

返回 IP 网址。

语法: string gethostbyname(string hostname);

返回值: 字符串

函数种类: 网络系统

本函数可返回某个机器名称 (Domain Name) 的 IP 网址 (IP Address)。若执行失败,则返回原来的机器名称。

下例的返回值为 140.137.33.246

<?
echo gethostbyaddr("www.hkcc.pccu.edu.tw");
?>

此博客来源:

转载于:https://my.oschina.net/corwien/blog/674496

你可能感兴趣的文章
web前端开发学习推荐这5本书
查看>>
Windows资源管理器相关信息获取
查看>>
windows资源管理器及ie监听
查看>>
No module named 'Crypto'
查看>>
常用openstack的镜像下载及密码
查看>>
详解python中的浅拷贝和深拷贝
查看>>
详解python中闭包和装饰器
查看>>
修改openstack云主机的IP地址
查看>>
ubuntu系统的定制裁剪(适用于嵌入式瘦客户端)
查看>>
嵌入式之系统移植详解(linux)
查看>>
openstack之 glance_image和instances存储目录解析
查看>>
centos7(三节点)搭建ceph环境
查看>>
将linux(ubuntu)安装到U盘下面--便携式ubuntu和使用dd制作U盘安装工具
查看>>
linux之强大的find命令
查看>>
python使用变量操作mysql语句
查看>>
linux bridge 网桥详解
查看>>
ceph&openstack发展前景
查看>>
Mysql之主键、外键和各种索引
查看>>
ceph&云计算
查看>>
python main()函数 name == ‘main’:
查看>>