php抓取新浪数据,php 抓取新浪新闻的程序代码
抓取就是采集了,今天因为我们要做一个实时采集新浪新闻的功能,下面整理了一个非常了得的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 抓取新浪新闻的程序代码相关推荐
- php每天扒取当天新闻_php 抓取新浪新闻的程序代码
Jquery中文网 > 脚本编程 > php > 正文 php 抓取新浪新闻的程序代码 php 抓取新浪新闻的程序代码 发布时间:2016-10-09 编辑:www.jque ...
- Java操作百万数据量Excel导入导出工具类(程序代码教程)
Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...
- python爬取网页json数据_python爬取json数据库
手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...
- pandas取第一行数据_Pandas DataFrame 取一行数据会得到Series的方法
Pandas DataFrame 取一行数据会得到Series的方法 Pandas DataFrame 取一行数据会得到Series的方法 如题,想要取如下dataframe的一行数据,以为得到的还是 ...
- php爬取口碑商家数据,Python 爬取汽车之家口碑数据
环境: win10 ,Contos7.4 python3.6.1 pycharm2017 retrying=1.3.3 requests=2.22.0 fake_useragent 抓包获取口碑数据接 ...
- 中新赛克数据可视化_中新赛克——能否构建更安全的世界
换句话说就是行业竞争格局好,具备较高的护城河.为什么会关注到这家公司呢?主要缘自一盏有一次在看5G应用相关的研报的时候发现会出现具备白马 股属性的细分行业:竞争者少,较高技术壁垒. 换句话说就是行业竞 ...
- python抓取股票竞价数据_Python 抓取新浪财经股票数据
新浪并未提供 API,但我们可以通过抓包来获取实时或历史行情数据. 实时行情 比如我们可以通过浏览器访问: http://hq.sinajs.cn/?format=text&list=sh60 ...
- vba抓取html文件数据,VBA抓取PDF数据
Excel VBA如何批量获取PDF文件中的内容 VBA能不能在pdf文件的内容中提取所需要的内容建议把人工操作步骤,写成按键精灵程序去半自动化完成.vba对pdf处理极弱,python也好不了太多. ...
- 中新赛克数据可视化_中新赛克,加仓!
中新赛克,国内网络可视化龙头,小董的重仓股,而且小董今天又加仓了.可能很多朋友不明白,明明这只股跌得这么严重,为什么小董还一次又一次地加仓.小董加仓主要有以下几个方面的原因.1.行业需求复苏,公司业绩 ...
最新文章
- 死锁产生的条件+排除死锁的方法
- 我是如何学习写一个操作系统(四):操作系统之系统调用
- SVN学习(二)——SVN 提交、更新、解决冲突等操作步骤
- 现在学java的都是傻子?
- [置顶] Python编程-混合编程(C++,python,opencv)实现
- 2021-09-07Hadoop运行模式:
- 华为交换机防MAC地址漂移原理和实验
- linux配置jdk环境变量
- 基于Java毕业设计新纪元大酒店管理系统源码+系统+mysql+lw文档+部署软件
- pandas5 数据分组与聚合
- jieba.lcut()
- Parity(奇偶校验)和ECC(错误检查和纠正)
- php and mysql登录注册页面
- 成绩不高?校园招聘了解一下!春招公司大全!
- 网易我的世界服务器光影文件夹在哪,我的世界光影设置在哪
- LNK 2001错误
- 深入理解数据库当中的聚合函数
- 什么是中台系统以及挑战和解决方案?
- Matlab中Gurobi安装和调试
- 计算机网络——Packet Trace路由器配置——课程设计
热门文章
- Cloudera CDP 7 版本以及软件依赖
- 获取该字符串表示的日期是星期几,以及这一年的第几天?
- ios保存gif到相册_怎么将GIF动态图保存到iPhone手机上【详细方法】
- 【Python】scipy之艾里函数
- 项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)
- Teamcenter字符集编码与数据库安装不同,修改步骤
- Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(四)安装Delivery Controller和许可证服务器
- (原創) ThinkPad X61安裝過程全紀錄 (NB) (ThinkPad) (X61)
- html5 dramweaver 版本,Dreamweaver CS5 HTML 5 扩展包
- dwcs5这么写php,如何备份Dreamweaver CS5的人个设置信息