php抓取新闻方法实例(包含新闻图片),配好数据库和表结构可直接使用

秦兽兽 2020-10-03 182 0
当前位置 : 首页 经验总结 PHP笔记 php抓取新闻方法实例(包含新闻图片),配好数据库和表结构可直接使用

本文以抓取环球网新闻为例,如要抓取其他网站新闻课可自行更改,方法相同。

<?php
	$link=mysql_connect("localhost","root","");
	mysql_select_db("blog");
	$str = file_get_contents("http://world.huanqiu.com/regions/");
	$content = explode('<ul class="listPicBox">',$str);
	$content = explode('</ul>',$content[1]);
	$pat = '/<li class="item">\s*<a href="(.*?)" rel="external nofollow"  rel="external nofollow" (.*?)><img src="(.*?)"(.*?)(.*?)<\/a>\s*<h3><a href="(.*?)" rel="external nofollow"  rel="external nofollow" (.*?)>(.*?)<\/a><\/h3>\s*<h5>(.*?)\s*<em>(.*?)<\/em>(.*)<\/h5>\s*<h6><span><\/span>(.*?)<\/h6>\s*<\/li>/i';
	preg_match_all($pat, $content[0], $m);
	$picurl = $m[3];
	$sourceurl = $m[1];
	$title = $m[8];
	$subtitle = $m[9];
	$i=0;
	$count = count($m[1]);
	while ($i<$count)
	{
		$main=array();
		$con = file_get_contents($sourceurl[$i]);
		$text = explode('<div class="text" id="text">',$con);
		$text = explode('<div class="reTopics">',$text[1]);
		$main=$text[0];
		$picpath=getImage($picurl[$i]);
		$time=date('Y-m-d H-i-s',time());
		$sql = "INSERT INTO sin_articles SET cateid=6,author='月光如注',status=1,title='$title[$i]',subtitle='$subtitle[$i]',source='环球网',content='$main',lang='cn',spider=3,sourceurl='$sourceurl[$i]',picpath='$picpath',createtime='$time'";
		mysql_query($sql);
		echo $sql."<br>";
		$i++;
	}
	
	function getImage($url,$thumb=false) 
	{
	    if(!$url) return false;
	    $path = dirname(dirname(__FILE__))."/public/uploads";  //图片存储的路径
	    $img = explode("himg2.huanqiu.com/",$url);
		$imgpath =  dirname($img[1]);
		$filename = basename($img[1]);
	    mkpath($path."/".$imgpath);
	    if($thumb)
	    {
			ob_start();
			readfile($url);
			$img = ob_get_contents();
			ob_end_clean();
			$fp=@fopen($path."/".$imgpath."/".$filename.".100x100.jpg", "a") ;
			@fwrite($fp,$img); 
			fclose($fp) ;
	    }
	    ob_start();
	    readfile($url);
	    $img = ob_get_contents();
	    ob_end_clean();
	    $fp=@fopen($path."/".$imgpath."/".$filename, "a") ;
	    @fwrite($fp,$img); 
	    fclose($fp) ;
	    return "/".$imgpath."/".$filename;
    }
	
	function mkpath($path,$mode = 0777) 
	{
		$path = str_replace("\\","_|",$path);
		$path = str_replace("/","_|",$path);
		$path = str_replace("__","_|",$path);
		$dirs = explode("_|",$path);
		$path = $dirs[0];
		for($i = 1;$i < count($dirs);$i++) 
		{
			$path .= "/".$dirs[$i];
			if(!is_dir($path))
			mkdir($path,$mode);
		}
	}
?>

phpMyAdmin导出的sin_articles表的sql语句如下:

-- phpMyAdmin SQL Dump
-- version 4.0.3
-- http://www.phpmyadmin.net
--
-- 主机: 127.0.0.1
-- 生成日期: 2016 年 12 月 03 日 13:18
-- 服务器版本: 5.7.16
-- PHP 版本: 5.4.8
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- 数据库: `blog`
--
 
-- --------------------------------------------------------
 
--
-- 表的结构 `sin_articles`
--
 
CREATE TABLE IF NOT EXISTS `sin_articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `tcolor` varchar(10) NOT NULL COMMENT '标题颜色',
  `tsize` int(11) NOT NULL COMMENT '标题字体大小',
  `title` varchar(200) NOT NULL,
  `is_bold` int(11) NOT NULL COMMENT '标题加粗',
  `subtitle` varchar(100) NOT NULL,
  `lang` varchar(2) NOT NULL,
  `uid` int(11) NOT NULL,
  `cateid` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `author` varchar(50) NOT NULL,
  `content` text NOT NULL,
  `meta_keywords` varchar(200) NOT NULL,
  `meta_description` varchar(200) NOT NULL,
  `picpath` varchar(100) NOT NULL,
  `filepath` varchar(100) NOT NULL,
  `description` varchar(200) NOT NULL,
  `addtime` int(11) NOT NULL,
  `createtime` datetime NOT NULL,
  `hits` int(11) NOT NULL,
  `likes` int(11) NOT NULL,
  `status` int(2) NOT NULL,
  `is_recommend` int(11) NOT NULL,
  `sort` float NOT NULL,
  `sourceurl` varchar(200) NOT NULL,
  `lastdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `spider` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `sourceurl` (`sourceurl`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='内容表' AUTO_INCREMENT=115 ;
 
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

原文地址

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有。若您需要使用非免费的软件或服务,请购买正版授权并合法使用。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理。
留言
相关推荐
公众号
秦兽兽

个人博客-得之,我幸。失之,我命,如此而已

https://www.qinshoushou.com