本教程用php实现像asp里xmlhttp的功能一样,抓取远程网页内容.

php有好多函数可以打开远程url读取内容.但采集推荐大家用fsockopen函数,

我们先来看一下fsockopen函数的语法:

以下为引用的内容:

resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]]

fsockopen 连接远程主机socket端口成功后会返回一个文件句柄,就像fopen打开文件一样.然后用fgets和fputs来实现收发.

target : 为远程主机的ip地址或域名.比如.192.168.1.2或www.phperz.com

port : 为远程主机的端口,

提供可选参数errstr时,当连接远程主机时间超过timeout时,报错errstr

下面这个例子就是用fsockopen函数来抓取远程网页内容的一个简单例子:

以下为引用的内容:

fsockopen抓取远程网页示例--www.phperz.com

$url="www.phperz.com";     www.phperz.com";     //目标主机$getstr="/";

//$getstr 为域名后的参数.比如你要抓取的地址为www.phperz.com/test.php?id=123,那么此处就是 /test.php?id=123

//如果没参数,那么就为 " / "

$fp=@fsockopen($url,80,$errno,$errstr,10);

if (!$fp){

echo "$errstr ($errno)
"; //如果打开失败,则把错误信息输出.

}

else {

fputs($fp,"GET ".$getstr." HTTP/1.1\r\nHost:www.phperz.com\r\nConnection: Close\r\n\r\n"); //正确打开,发送请求头信息

//关于http头信息你可以参考本站的另一篇文件 HTTP协议头信息详解  while (!feof($fp)){

$data.= fgets($fp,1024);  //fgets为 逐行读取,后面的1024为一行最多返回多少字节的数据,可以不指定默认为1K,也就是1024字节.  }

fclose($fp);

}

echo $data;

?>

这个例子是用fsockopen实现socket连接, 来读取远程网页内容.

你也可以用类似file或file_get_contents 的函数来把整个文件载入到数组中或变量中.

当然一次载入,要比逐行读取挂起的可能性要大.

抓取回来的数据,你也可以加以分析,从里面提取你想得到的数据,在此就不写了.

php 抓取远程内容,php抓取远程网页内容简单示例相关推荐

  1. php取指定长度,php截取指定长度的简单示例

    这篇文章主要为大家详细介绍了php截取指定长度的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!PHP语言: 根据中文裁减字符串 代码如下: f ...

  2. python爬取pdf内容_Python爬取读者并制作成PDF

    学了下beautifulsoup后,做个个网络爬虫,爬取读者杂志并用reportlab制作成pdf.. crawler.py #!/usr/bin/env python #coding=utf-8 & ...

  3. Java远程调用BPS流程实现流程运行简单示例

    1.简介:略 2.背景:略 3.目的:自我学习笔记 4.实现过程 (1).画出流程图 如下: 路由活动分支下的条件语句为复杂表达式: ((account<200&&divisio ...

  4. php抓取标签内的内容,php抓取网页中的内容

    以下就是几种常用的用php抓取网页中的内容的方法. 1.file_get_contents PHP代码 代码如下:>>>>>>>>>>> ...

  5. apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容

    Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求 1.简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提 ...

  6. 如何让搜索引擎抓取AJAX内容

    2019独角兽企业重金招聘Python工程师标准>>> 越来越多的网站,开始采用"单页面结构"(Single-page application). 整个网站只有一 ...

  7. queryList爬虫获取内容的几种方法总结 queryList给抓取的内容增加html追加元素html 代码实例...

    //简略内容: 1. $data1 = $ql->find('.two img')->map(function($item){return $item->alt; }); // 等价 ...

  8. java response 获得code_Java教程分享使用HttpClient抓取页面内容

    Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求 1.简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提 ...

  9. php 抓取 wordpress 文字内容,如何抓取WordPress文章

    抓取WordPress文章可以使用抓取插件来完成,如使用WP-AutoPost插件. 启用WP-AutoPost插件然后创建新的任务,然后对插件进行设置即可. 文章抓取设置 在该选项卡下, 我们需要设 ...

最新文章

  1. 图像分区域合成,这个新方法实现了人脸的「精准整容」
  2. python入门到精通需要学多久-廖雪峰python教程要学多久-零基础学Python需要多久...
  3. python怎么导入包-Python模块导入与包构建最佳实践
  4. pandas 读csv 报错 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 0: invalid cont
  5. ubuntu安装VMware Tools
  6. JQuery------各种版本下载
  7. poj2464扫描线好题,树状数组解法
  8. 为Activity设置特定权限才能启动
  9. 为什么链接oracle报错,PG连接Oracle报错解决
  10. 堆、队列、栈、链表对比
  11. windows下javadoc生成文档注释的命令
  12. mysql s索引 树_mysql 学习 - B+树索引
  13. CentOS7中的firewall 和 iptables
  14. Layer数据表格监听排序切换
  15. 如何从零起步开发一款App
  16. 金山毒霸 2011 SP2 论坛内测开始
  17. Mac系统快捷键大全
  18. 三极管NPN和PNP的区别
  19. OFFICE激活报错0X80080005
  20. SwiftUI 动态岛开发教程之 07 Live Activities实时活动的要求和限制

热门文章

  1. Redis的发布与订阅
  2. 电商数据分析方案和BI强强联合,一站式做分析
  3. 2019Linux系统教程189讲-08_基于LAMP架构部署商城系统
  4. opencv3.4.6 vs2017 win10 配置contrib库 教程
  5. php 数组不重复合并,php合并数组并去除重复
  6. 跻身多链时代,一文读懂区块链「桥」及其设计权衡
  7. Android compileSdkVersion、minSdkVersion、targetSdkVersion的区别
  8. FIX三天日记-quick fix简介
  9. 循环神经网络进阶-------自动写歌词
  10. 查看Vue版本 node.js版本vue-cli版本