Home  >  Article  >  php教程  >  基于PHP采集数据入库程序(二),php采集数据入库

基于PHP采集数据入库程序(二),php采集数据入库

WBOY
WBOYOriginal
2016-06-13 09:28:21798browse

基于PHP采集数据入库程序(二),php采集数据入库

在上篇 基于PHP采集数据入库程序(二) 中提到采集新闻信息页的列表数据,接下来讲讲关于采集新闻具体内容

这是上篇博客的最终数据表截图:

接下来要做的操作就是从数据库中读取所需要采集的URL,进行页面抓取就行

新建一个content表

不过需要注意的一点是,不能再采用采集URL这种id递增的方法去采集,因为数据表中可能出现id断续,比如id=9,id=11,当采集到id=10的时候,URL是空白的,这样可能会导致采集到了空字段。

这里用到的一个技巧是数据库的查询语句,在我们采集完第一条数据的时候,判断数据库里是否还有大于此id的id编号,若有,读取一条,查询信息重复上面的工作。

具体代码如下:

<?<span>php
    
    </span><span>include_once</span>("conn.php"<span>);
    </span><span>$id</span>=(int)<span>$_GET</span>['id'<span>];
    </span><span>$sql</span>="select * from list where id=<span>$id</span>"<span>;
    </span><span>$result</span>=<span>mysql_query</span>(<span>$sql</span><span>);
    </span><span>$row</span>=<span>mysql_fetch_array</span>(<span>$result</span>);<span>//</span><span>取得对应的url地址</span>
    <span>$content</span>=<span>file_get_contents</span>(<span>$row</span>['url'<span>]);
    </span><span>$pattern</span>="/<dd class=\"dataWrap\">(.*)<\/dd>/iUs"<span>;
    </span><span>preg_match</span>(<span>$pattern</span>, <span>$content</span>,<span>$info</span>);<span>//</span><span>获取内容存放info</span>
    <span>echo</span> <span>$title</span>=<span>$row</span>[1]."<br/>"<span>;
    </span><span>echo</span> <span>$content</span>=<span>$info</span>[0]."<hr/>"<span>;

    </span><span>//</span><span>插入数据库</span>
    <span>$add</span>="insert into content(title,content) value('<span>$title</span>','<span>$content</span>')"<span>;
    </span><span>mysql_query</span>(<span>$add</span><span>);

    </span><span>$sql2</span>="select * from list where id><span>$id</span> order by id asc limit 1"<span>;
    </span><span>$result2</span>=<span>mysql_query</span>(<span>$sql2</span><span>);
    </span><span>$row2</span>=<span>mysql_fetch_array</span>(<span>$result2</span>);<span>//</span><span>取得对应的url地址</span>
    <span>if</span>(<span>$row2</span>['id'<span>]){
        </span><span>echo</span> "<script>window.location='content.php?id=<span>$row2</span>[0]'</script>"<span>;
    }

</span>?>

这样子我们所要的新闻内容就采集入库了,接下来只需要对数据的一些样式进行整理就行了。

php程序员对数据采集的要掌握程度怎?

php数据采集常见技术要领:

1、熟练正则表达式提取数据技术:提取内容关键步骤
2、熟练字符编码转换分析技术:兼容性管理以及数据有效性控制
3、熟练数据出库入库整理技术:对已采集内容的存储管理,包括数据库以及文件和进度
4、发掘数据以及网站爬行技术:分析网站结构,简化爬行手法,提高效率
5、反反采集处理技术:对于存在反采集的目标对象而设计的反反采集技术
6、多服务器并发采集管理技术:提高效率的工作方法
7、数据整理分析技术:查漏验证数据正确性有效性
8、自我身份保护技术:自身信息的保护
 

PHP采集入库问题

php 里有$nr = implode(‘#’,$arr) 方法 ,就可以 了
不过上面的组成的是“内容1#内容2”,没有最后面的一个#,要是必须的话
就是$nr = implode('#',$arr).'#'

在笨的方法,就是用
foreach( $arr as $vl){
$nr.=$vl."#";
}
参考资料:$
 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn