可否帮忙写一个单页页的PHP采集程序,并附上实例
比方说,我要采集这个页面:http://news.163.com/12/0613/20/83TJ7PA700014JB6.html
要求:
采集标题
采集正文
谢谢!
------解决方案--------------------首先去http://simplehtmldom.sourceforge.net/index.htm(点击Download latest version form Sourceforge.)下载一个simple_html_dom.php,傻瓜式的正则,另官网上有详细教程,很容易看懂。
header("Content-type: text/html; charset=gb2312");
require dirname(__FILE__) . '/simple_html_dom.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://news.163.com/12/0613/20/83TJ7PA700014JB6.html');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
$htmls = curl_exec($ch);
curl_close($ch);
$html = str_get_html($htmls);
foreach($html->find('#h1title') as $title){
echo strip_tags($title).'
';//标题
}
foreach($html->find('#endText') as $content){
echo strip_tags($content);//正文
}
注:curl模拟Mozilla浏览器抓取,比file_get_contents()解析速度更快。strip_tags() 用以去除那个邪恶的iframe广告,反正你需要的是“采集标题”和“采集正文”冗余的html标签对你无用。
------解决方案--------------------PHP获取QQ邮箱好友列表的方法:
本文为大家介绍有关如何运用PHP获取QQ邮箱好友的方法。PHP有一个扩展是curl扩展,该扩展一般用于采集数据。但是也可以实现模拟登陆,通过模拟登陆来登陆QQ邮箱,再利用curl的采集来获取邮箱的好友列表。以上是实现原理,理解袁莉以后我们来看实现过程。具体的PHP获取QQ邮箱好友的代码如下:
1.
2.class QQHttp {
3. var $cookie = '';
4. function __cunstrut() {
5. }
6. function makeForm() {
7. $form = array(
8. 'url' => "http://mail.qq.com/cgi-bin/loginpage",
9. );
10. $data = $this->curlFunc($form);
11. preg_match('/name="ts"svalue="(d+)"/',$data['html'], $tspre);
12. $ts = $tspre[1];
13. preg_match('/action="http://(md+).mail.qq.com/',$data['html'], $server);
14. $server_no = $server[1];
15. /* login.html 载入 */
16. $html = file_get_contents(dirname(__FILE__).'/login.htm');
17. $html = str_replace('{_ts_}',$ts, $html);
18. $html = str_replace('{_server_no_}',$server_no, $html);
19. return $html;
20. }
21. function curlFunc($array)
22. {
23. $ch = curl_init();
24. curl_setopt($ch, CURLOPT_URL, $array['url']);