爱程序网

PHP抓取网络数据

来源: 阅读:

涉及到的知识点不多

file_get_contents:读取数据;

preg_match_all:正则匹配;

和匹配之后的数据分析。

不同网页所需要抓取的数据是不同的,所以正则表达式自然也不一样,针对抓取之后的数据的分析处理方式也不同。

用新浪的nba新闻为例,地址:http://roll.sports.sina.com.cn/s_2002-2003NBA_all/index.shtml

列表页面

详细页面

页面整合

  • 列表页面

第一步,分析这个页面的源码,找到需要匹配的标题的正则

列表页面的代码如下:

<?php$con = file_get_contents ( "http://roll.sports.sina.com.cn/s_2002-2003NBA_all/index.shtml" );// echo $con;$preg = '#<a  href="(.*)" target="_blank">(.*)</a></span><span class="c_time">(.*)</span></li>#iUs';preg_match_all ( $preg, $con, $arr );// var_dump($arr);echo '<pre>';$index=0;foreach ( $arr[1] as $key => $value ) {    //var_dump($value);//★这里是一些分析$arr的过程,分析之后可以知道$arr[1]、$arr[2]、$arr[3]分别是链接地址、标题文字内容、新闻日期时间    //echo $value."<br>";//★            echo (++$index).'.<a href="'.$value.'">'.$arr[2][$key].'</a><br>';//★注意这里的$arr[2][$key]就是标题内容,而href中的则是链接地址}echo '</pre>';

相关文章列表: