抓取就是采集了,今天因为我们要做一个实时采集新浪新闻的功能,下面整理了一个非常了得的php 抓取新浪新闻的程序,我们来看看。

首先,需要下载一个simple_html_dom第三方扩展库,具体下载方式和使用详情可以查看:simple_html_dom的使用.

需要环境支持file_get_contents()函数和curl的支持,具体代码如下:<?php

function timingimg($url, $dirname, $interval) {

ignore_user_abort(); //浏览器关闭,程序继续执行

set_time_limit(0); //忽略到默认30秒超时

$interval = empty($interval) ? 3600 : $interval;

$dirname = empty($dirname) ? 'news/' : $dirname;

if (empty($url)) {

die('请输入目标网址!!!');

}

do {

$arr = loadimg($url, $dirname);

return $arr; //返回抓取内容所保存的路径

sleep($interval);

die;

} while (true);

}

/**

*获取所有新闻链接

*参数 $url  新闻列表地址

*参数 $dirname 新闻图片保存路径

* 返回 二维数组  所有新闻记录

*/

function loadimg($url, $dirname) {

set_time_limit(0);

include_once ('simple_html_dom.php');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

curl_close($ch);

$html = new simple_html_dom();

$html->load($output);

$images = array();

$arr = array();

foreach ($html->find('li  a') as $element) {

if (preg_match('#^http://tech.sina.com.cn/it/[d]{4}-[d]{1,2}-[d]{1,2}/[d]+.shtml$#i', $element->href)) {

array_push($images, $element->href);

}

}

$images = array_unique($images);

sort($images);

for ($i = 0; $i

$arr[] = getcontent($images[$i], $dirname);

}

return $arr;

}

/**

*

*

* 抓取单个新闻内容

*参数  $url 新闻页面地址

*参数  $dirname 图片保存路径

*返回 一个新闻记录 一维数组

*/

function getcontent($url, $dirname) {

include_once ('simple_html_dom.php');

$html = new simple_html_dom();

$data = file_get_contents($url);

$html->load($data);

$arr = array();

foreach ($html->find('h1#artibodyTitle') as $element) {

$arr['title'] = @iconv('gbk', 'utf-8', $element->innertext);;

}

$str = '';

foreach ($html->find('div#artibody p') as $element) {

$str.= $element;

}

$arr['content'] = $str;

foreach ($html->find('div.img_wrapper img') as $element) {

$arr['alt'] = $element->alt;

$data = file_get_contents($element->src);

$info = getimagesize($element->src); //get image information

switch ($info[2]) {

case 1:

$str = 'gif';

break;

case 2:

$str = 'jpg';

break;

case 3:

$str = 'png';

break;

default:

continue;

break;

}

$filename = time() . rand(1, 999999) . '.' . $str;

if (!is_dir($dirname)) {

mkdir($dirname, 0777, true);

}

$fp = fopen($dirname . $filename, 'w');

fwrite($fp, $data);

fclose($fp);

$arr['img'] = $dirname . $filename;

}

return $arr;

}

如果大家有更好的建议,欢迎提出来

随意转载^^但请附上教程地址。

php抓取新浪数据,php 抓取新浪新闻的程序代码相关推荐

  1. php每天扒取当天新闻_php 抓取新浪新闻的程序代码

    Jquery中文网 > 脚本编程  > php  > 正文 php 抓取新浪新闻的程序代码 php 抓取新浪新闻的程序代码 发布时间:2016-10-09   编辑:www.jque ...

  2. Java操作百万数据量Excel导入导出工具类(程序代码教程)

    Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...

  3. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  4. pandas取第一行数据_Pandas DataFrame 取一行数据会得到Series的方法

    Pandas DataFrame 取一行数据会得到Series的方法 Pandas DataFrame 取一行数据会得到Series的方法 如题,想要取如下dataframe的一行数据,以为得到的还是 ...

  5. php爬取口碑商家数据,Python 爬取汽车之家口碑数据

    环境: win10 ,Contos7.4 python3.6.1 pycharm2017 retrying=1.3.3 requests=2.22.0 fake_useragent 抓包获取口碑数据接 ...

  6. 中新赛克数据可视化_中新赛克——能否构建更安全的世界

    换句话说就是行业竞争格局好,具备较高的护城河.为什么会关注到这家公司呢?主要缘自一盏有一次在看5G应用相关的研报的时候发现会出现具备白马 股属性的细分行业:竞争者少,较高技术壁垒. 换句话说就是行业竞 ...

  7. python抓取股票竞价数据_Python 抓取新浪财经股票数据

    新浪并未提供 API,但我们可以通过抓包来获取实时或历史行情数据. 实时行情 比如我们可以通过浏览器访问: http://hq.sinajs.cn/?format=text&list=sh60 ...

  8. vba抓取html文件数据,VBA抓取PDF数据

    Excel VBA如何批量获取PDF文件中的内容 VBA能不能在pdf文件的内容中提取所需要的内容建议把人工操作步骤,写成按键精灵程序去半自动化完成.vba对pdf处理极弱,python也好不了太多. ...

  9. 中新赛克数据可视化_中新赛克,加仓!

    中新赛克,国内网络可视化龙头,小董的重仓股,而且小董今天又加仓了.可能很多朋友不明白,明明这只股跌得这么严重,为什么小董还一次又一次地加仓.小董加仓主要有以下几个方面的原因.1.行业需求复苏,公司业绩 ...

最新文章

  1. 死锁产生的条件+排除死锁的方法
  2. 我是如何学习写一个操作系统(四):操作系统之系统调用
  3. SVN学习(二)——SVN 提交、更新、解决冲突等操作步骤
  4. 现在学java的都是傻子?
  5. [置顶]       Python编程-混合编程(C++,python,opencv)实现
  6. 2021-09-07Hadoop运行模式:
  7. 华为交换机防MAC地址漂移原理和实验
  8. linux配置jdk环境变量
  9. 基于Java毕业设计新纪元大酒店管理系统源码+系统+mysql+lw文档+部署软件
  10. pandas5 数据分组与聚合
  11. jieba.lcut()
  12. Parity(奇偶校验)和ECC(错误检查和纠正)
  13. php and mysql登录注册页面
  14. 成绩不高?校园招聘了解一下!春招公司大全!
  15. 网易我的世界服务器光影文件夹在哪,我的世界光影设置在哪
  16. LNK 2001错误
  17. 深入理解数据库当中的聚合函数
  18. 什么是中台系统以及挑战和解决方案?
  19. Matlab中Gurobi安装和调试
  20. 计算机网络——Packet Trace路由器配置——课程设计

热门文章

  1. Cloudera CDP 7 版本以及软件依赖
  2. 获取该字符串表示的日期是星期几,以及这一年的第几天?
  3. ios保存gif到相册_怎么将GIF动态图保存到iPhone手机上【详细方法】
  4. 【Python】scipy之艾里函数
  5. 项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)
  6. Teamcenter字符集编码与数据库安装不同,修改步骤
  7. Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(四)安装Delivery Controller和许可证服务器
  8. (原創) ThinkPad X61安裝過程全紀錄 (NB) (ThinkPad) (X61)
  9. html5 dramweaver 版本,Dreamweaver CS5 HTML 5 扩展包
  10. dwcs5这么写php,如何备份Dreamweaver CS5的人个设置信息