说到采集,无非就是远程获取信息->提取所需内容->分类存储->读取->展示
也算是简单"小偷程序"的加强版吧
下面是对应核心代码(别拿去做坏事哦^_^)
所要采集的内容是某游戏网站上的公告,如下图:
可先利用file_get_contents和简单正则获取基本页面信息
整理下基本信息,采集入库:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
include_once
(
"conn.php"
);
if
(
$_GET
[
'id'
]<=8&&
$_GET
[
'id'
]){
$id
=
$_GET
[
'id'
];
$pattern
=
"/<li><a title=\"(.*)\" target=\"_blank\" href=\"(.*)\">/iUs"
;
//正则
preg_match_all(
$pattern
,
$conn
,
$arr
);
//匹配内容到arr数组
//print_r($arr);die;
foreach
(
$arr
[1]
as
$key
=>
$value
) {
//二维数组[2]对应id和[1]刚好一样,利用起key
$sql
=
"insert into list(title,url) value ('$value', '$url')"
;
mysql_query(
$sql
);
//echo "<a href='content.php?url=http://www.93moli.com/$url'>$value</a>"."<br/>";
}
$id
++;
echo
"正在采集URL数据列表$id...请稍后..."
;
echo
"<script>window.location='list.php?id=$id'</script>"
;
}
else
{
echo
"采集数据结束。"
;
}
?>
|
conn.php是数据库连接文件
list.php是本页面
由于要采集的数据是分页显示的,且页面地址是规律递增,所以我用了js跳转代码,利用id传值控制采集的页数,也避免了for循环数目过大。