导航:首页 > 编程语言 > php抓取网页内容软件

php抓取网页内容软件

发布时间:2024-01-02 17:02:11

‘壹’ 使用php的cURL库进行网页抓取

使用模明仿PHP的cURL库可以简单和有效地去抓网页 你只需要运行一个脚本 然后分析一下你所抓取的网页 然后就可以以程序的方式得到你想要的数据了 无论是你想从从一个链接上取部分数据 或是取一个XML文件并把其导入数据库 那怕就是简单的获取网页内容 cURL 是一个功能强大的PHP库 本文主要讲述如果使用这个PHP库

启用 cURL 设置

首先 我们得先要确定我们的PHP是否开启了这个库 你可以通过使用php_info()函数来得到这一信息

﹤?phpphpinfo();?﹥

如果你可以在网页上看到下面的输出 那么表示cURL库已被开启

如果你看到的话 那么你需要设置你的PHP并开启这个库 如果你是在Windows平台下 那么非常简单 你需要改一改你的php ini文件的设置 找到php_curl dll 并取消前面的分号注释就行了 如下所示

//取消下在的注释extension=php_curl dll

如果你旦纤是在Linux下面 那么 你需要重新编译你的PHP了 编辑时 你需要打开编译参数——在configure命令上加上 –with curl 参数

一个小示例

如果一切就绪 下面是一个小例程

﹤?php// 初始化一个 cURL 对象$curl = curl_init();

// 设置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );

// 设置headercurl_setopt($curl CURLOPT_HEADER );

// 设置cURL 参数 要求结果保存到字符串中还是输出到屏幕上槐链 curl_setopt($curl CURLOPT_RETURNTRANSFER );

// 运行cURL 请求网页$data = curl_exec($curl);

// 关闭URL请求curl_close($curl);

// 显示获得的数据var_mp($data);

如何POST数据

上面是抓取网页的代码 下面则是向某个网页POST数据 假设我们有一个处理表单的网址// example /sendSMS php 其可以接受两个表单域 一个是电话号码 一个是短信内容

﹤?php$phoneNumber = ;$message = This message was generated by curl and php ;$curlPost = pNUMBER= urlencode($phoneNumber) &MESSAGE= urlencode($message) &SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendSMS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);?﹥

从上面的程序我们可以看到 使用CURLOPT_POST设置HTTP协议的POST方法 而不是GET方法 然后以CURLOPT_POSTFIELDS设置POST的数据

关于代理服务器

下面是一个如何使用代理服务器的示例 请注意其中高亮的代码 代码很简单 我就不用多说了

﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPPROXYTUNNEL );curl_setopt($ch CURLOPT_PROXY fakeproxy : );curl_setopt($ch CURLOPT_PROXYUSERPWD user:password );$data = curl_exec();curl_close($ch);?﹥ 关于SSL和Cookie

关于SSL也就是HTTPS协议 你只需要把CURLOPT_URL连接中的//变成//就可以了 当然 还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点

关于Cookie 你需要了解下面三个参数

CURLOPT_COOKIE 在当面的会话中设置一个cookie

CURLOPT_COOKIEJAR 当会话结束的时候保存一个Cookie

CURLOPT_COOKIEFILE Cookie的文件

HTTP服务器认证

最后 我们来看一看HTTP服务器认证的情况

﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPAUTH CURLAUTH_BASIC);curl_setopt(CURLOPT_USERPWD [username]:[password] )

$data = curl_exec();curl_close($ch);?﹥

关于其它更多的内容 请参看相关的cURL手册 lishixin/Article/program/PHP/201311/21491

‘贰’ 网页需要登录,怎样抓取其内容

网站登录/认证有多种方式,要抽取/提取需要登录的网页内容,需要实现有针对性的网页抓取软件模块:
1,HTTPS
2,HTTP Digest
3,HTTP Basic
4,使用网页Form
其中,前三种是通信协议层面的,如果使用PHP,Python,javascript, Java等语言编程,一般需要控制HTTP通信做相应的动作;而第四种是应用层面的,只需要模拟用户填写Form然后提交即可,相对容易一些。另外,还要考虑服务器是否推送cookie以及会话控制等等,所以,要自己编程把所有的都实现了是一个很大的挑战,但是,如果利用浏览器平台能力,这个就好解决了,例如,利用Firefox的安全管理器,网站认证都委托给Firefox,只需要编写应用逻辑代码即可。网页抓取/数据抽取/信息提取软件工具包MetaSeeker就是采用了这种方案,用统一的方法实现所有方式的认证,一种最简单的操作方法:先访问一次目标页面,认证通过后安全信息都记录在安全服务器上,后续的抓取工作就像针对不需要认证的页面一样,当然,这个第一次认证操作可以用程序自动完成。

MetaSeeker工具包是免费使用的,下载地址: http://www.gooseeker.com

‘叁’ 软件推荐丨GoldDataSpider —— 网页数据抽取工具

GoldDataSpider 是用于抓取网页和抽取数据的工具。其核心代码是从金色数据抓取融合平台分离而来。

该项目提供抓取和抽取来自网页数据,不仅可以抽取网页内的内容,还能抽取URL、HTTP报头、Cookie里的数据。

该项目定义了一种简洁、灵活、敏捷的结构或者说是规则语法。极尽其所能将网页内容、HTTP报头、Cookie、甚至关联其它网页、其它网站数据,抽取出有意义有价值数据字段,组成一条数据记录。除此之外,还能内嵌http请求,以补充数据字段,比如某些字段需要向词典提供翻译这样的字段等等。

该项目还可支持从各种类型文档抽取数据,比如html/xml/json/javascript/text等。

我们还提供了规则可视化配制,请下载采集数量不受限、爬虫数量不受限、导出数据数量不受限的完全免费金色数据平台社区版 。以及详尽的文档

使用入门

首先,我们需要将依赖加入项目当中,如下:

1、对于maven项目

2、对于gradle项目

然后你将可以使用该依赖所提供的简洁清晰的API,如下:

运行上面的测试,你将可以看类似下野郑面的输出:

当作Service或者API使用

你可以在项目中,可以当作调用服务和API使用。例如如下:

对于可视化配制,可以参考免费社区版文档。以下就免费社区版做简单介绍 ,详情见官网!

免费社区版:

开源/免费

让用户更好理解和使用产品

我们针对数据采集免费,还开放和维护核心的开源代码项目。让用户可以更好的使用、理解采集,用好采集。 让用户在各种场景应用金色数据采集带来的便利,我们有信心让客户见到一个开放的数据平台,让用户放心/省心/省力。

自由/灵活

透出一股强大的采集核心

我们的采集器,将向用户暴露一切目标数据,除了常规网页内容,还有如URL、HTTP报头、Cookie等。还提供了各种解析工具和函数,让用户不仅能得到网页内容里的数据,还能得到URL、HTTP报头、Cookie里隐藏的核心数据,还能稿租灵活做到智能防封。

分布式采集

私有云,更灵活,更安全,更放心

可以根据自身需求,随意部署采集器数量,7*24小时不间断运行,采集后端集中灵活控制。可自由指挥数据在哪个采集器采集。可定义定时采集,无需人员值守。

数据可关联可追踪

恢复/重建数据内在与外在价值

可以让每条数据随着目标网站目键脊兆标内容更新(如商品价格)、而更新用户应用表该条数据相关字段内容。

非侵入式融合

融合从未如此现实和简单

完全可以在不改变用户应用表结构(增删改表列),而将采集数据融入到应用表中。

自动化/一体化

无需人力操作,即抓即用

不只是采集可以自动化抓取,融合也提供了手动化和强大自动化功能。还将采集与融合操作无缝对接,可将目标数据抓一条融合一条,实时流向应用表,做到即抓即用!

点击下方链接,获取软件下载地址↓↓↓

GoldDataSpider首页、文档和下载 - 网页数据抽取工具 - 开源中国

‘肆’ php获取指定网页内容

此类方法一共有三种

  1. 第一种方法

<?php

$c = curl_init();

$url = 'www.badcatxt.com';

curl_setopt($c, CURLOPT_URL, $url);

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($c);
curl_close($c);

$pos = strpos($data,'utf-8');

if($pos===false){$data = iconv("gbk","utf-8",$data);}

preg_match("/<title>(.*)</title>/i",$data, $title);

echo $title[1];

?>

第二种方法:使用file()函数

<?php

$lines_array = file('http://www.badcatxt.com/');

$lines_string = implode('', $lines_array);

$pos = strpos($lines_string,'utf-8');

if($pos===false){$lines_string = iconv("gbk","utf-8",$lines_string);}

eregi("<title>(.*)</title>", $lines_string, $title);

echo $title[1];

?>

第三种方法:使用file_get_contents

<?php

$content=file_get_contents("http://www.badcatxt.com/");

$pos = strpos($content,'utf-8');

if($pos===false){$content = iconv("gbk","utf-8",$content);}

$postb=strpos($content,'<title>')+7;

$poste=strpos($content,'</title>');

$length=$poste-$postb;

echo substr($content,$postb,$length);

?>

‘伍’ PHP怎样抓取网页代码中动态显示的数据

你是想抓别人网页上ajax动态载入的数据吧?

1、要找到它的ajax载入的URL地址

2、利用PHP的file_get_contents($url)函数读取那个url地址。

3、对抓取到的内容进行分析或正则过滤。

‘陆’ 怎么用phpquery抓取网页实时数据使用CI框架

phpquery和框架并无关系,我现在也是用CI的
先将pq引入进来
$content = file_get_content('https://personalbank.cib.com.cn/pers/main/pubinfo/ifxQuotationQuery.do');
phpQuery::newDocumentHTML($content);
$containers = pq("xxxx");就可以了,但你要抓取这个网站数据,他数据是js加载的,所以你只需要
$content = file_get_content('https://personalbank.cib.com.cn/pers/main/pubinfo/ifxQuotationQuery!list.do?_search=false&dataSet.nd=1440145968553&dataSet.rows=100&dataSet.page=1&dataSet.sidx=&dataSet.sord=asc');这个地址返回是json数据,你直接json_decode()就OK

阅读全文

与php抓取网页内容软件相关的资料

热点内容
remove命令linux 浏览:599
php发送邮件链接 浏览:32
创维冰箱压缩机 浏览:869
nginxopenssl交叉编译 浏览:750
相机卡无法创建新文件夹 浏览:225
单片机照明控制系统程序代码 浏览:10
服务编程一体化 浏览:471
tx小霸王服务器是什么意思 浏览:545
计算机编程工龄工资怎么算 浏览:491
macandroid配置环境变量 浏览:854
做项目文件夹的图标 浏览:327
数控车床车轴编程教程 浏览:728
怎么解压截图软件 浏览:885
算法符号椭圆 浏览:174
网络蚂蚁app是什么 浏览:273
php面向对象编程开发 浏览:798
唱吧如何解绑其他app 浏览:318
程序员去工厂好吗 浏览:497
阿里云租服务器企业要实名认证吗 浏览:928
mfc图形怎么输入命令 浏览:653