php采集
Ⅰ php使用3种方法实现数据采集 什么叫采集
下面的php代码可以将HTML表格的每行每列转为数组,采集表格数据
<?php function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 HTML 标记 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } ?>
Ⅱ php循环采集出文章列表
在你的代码基础上稍微修改了一下 如下
<?php
header("Content-type: text/html; charset=gb2312");
$url = "http://top.qidian.com/Book/TopDetail.aspx?TopType=6"; //目标站
$fp = @fopen($url, "r") or die("超时");
$fcontents = file_get_contents($url);
preg_match_all("/ <a target=\"_blank\" href=\"http:\/\/www.qidian.com\/Book\/(.*?)\.aspx\"/is", $fcontents, $regs);
print_r($regs[0]);
?>
Ⅲ 怎么用PHP采集别的网上的数据
简单的有个file_get_content函数,然后写正则规则匹配内容,存数据库。
如果需要登陆的,用curl,还有可以用PHP的DOM库替换正则表达式
Python和Java等都有beautifulsoup这个第三方库,用来采集非常棒
Ⅳ PHP中怎样实现文章采集
只举例说明,生产环境你自己根据情景去搞
$url = 'www.domain.com';
$content = file_get_content($url);//抓取网页全部内容
preg_match( string pattern, string subject [, array matches ] );//正则获取自己需要的内容
入库~
完事了。。。
当然,情形复杂,例如需要登录,采集目标限制等问题,这再说...
实际使用的时候,可以直接使用Snoopy类,提供好多方法供使用,比自己去造轮子要安全,当然,你可以在她的基础上再去造轮子~~~
Ⅳ php 采集个网站内容
$data=get_meta_tags('url');
echo $data['description'];
Ⅵ php自动采集如何实现
PHP自动采集能一定程度的实现,部分网站的页面结构存在一定的共通点,比如文章内容页的标题,不少网站是标记在<h1>里的,实在不行,就采集<title>,绝对能采到,然后、过滤掉title里面的网站名称。
采集文章内容就相对麻烦,但是通过层层分析,层层剥离,一定要进行大量的网站分析,写出多套通用性比较强的采集规则,程序在采集的时候也要进行大量分析。
有几点是可以肯定的,那就是绝对不能要求采集效果达到为某个网站单独写采集规则来的效果好,也绝对不是能匹配任意网站,顶多能匹配部分网站。
Ⅶ PHP采集网页中指定的内容
你如果是单个页面的话不需要正规表达式,只要找到自己需要的部分看看前面和后面有什么唯一性的标识,截取出来就可以了。
Ⅷ 用PHP进行数据采集
$strPreg = "|<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>|U";
搞定了才发现你都没悬赏分。。。
Ⅸ php怎么实现采集网易新闻,并且带有分页效果
对于第一项表单而言
比如:
内容的第一页http://php168.com/1/index-22.html
内容的第二页http://php168.com/1/index-22_2.htm
那么表单填.html
分析规则就是对比第一页与第二页的网址从左到右哪个字符出现不同,就把第一页网址之后的字符复制出来
如果是这种情况
http://php168.com/1/index.php?id=2&page=1
http://php168.com/1/index.php?id=2&page=2
对于这种情况,他后面不同的是一个数字,即是页码数字的话,就不需要填写.留空即可
对于第二项表单而言
第一页http://php168.com/1/index-22.html
第二页http://php168.com/1/index-22_2.htm
那么右边的表单填_[page].htm
分析规则就是对比第一页与第二页的网址从左到右哪个字符出现不同,就把第二页的网址之后的字符复制出来,并把变动的页码数字用[page]替换
如果是这种情况
http://php168.com/1/index.php?id=2&page=1
http://php168.com/1/index.php?id=2&page=2
对于这种情况,他后面不同的是一个数字,即是页码数字的话,更简单,只需要填写[page]即可
对于第三项表单而言
第一页http://php168.com/1/index.html
第二页http://php168.com/1/index_1.html
此时属于怪癖的,理论上应该是
第三页http://php168.com/1/index_2.html
所以表单请选择是,但一般情况都是选否的,也就是说页码数字为1却是第二页.页码数为2却是第三页.就属于特殊现象.需要选则是.
Ⅹ php采集规则怎么写
这些都是正则表达式,自己网络先学会正则表达式再说吧。。
只要是能正常访问都可以采集的。
我解释一个吧
/^http:\/\/www\.cpp1\.cn\/News\/[0-9]{4}-[0-9]{1,2}\/[0-9]{1,2}\/[0-9]+\.htm/i
就是匹配www.cpp1.cn/News/'这里是任意四个0-9的数'-‘一个或者二个0-9的数’/'一个或者二个0-9的数'/'任意数量的0-9的数'.htm
例如http://www.cpp1.cn/News/2011-7/20/120216.htm