新闻采集php源码,基于php的新闻发布系统

本文目录一览:

求带登录的网站采集php源码或思路

获取链接的数据以后,加个判断:如果需要登陆 ,则使用php的curl函数来模拟post;不需要登陆则直接采集。

求抓取网页内容的程序或代码(两层或更多,delphi)

抓取网页内容,通常大家以为到网上偷数据,然后把到收集到的数据挂到自己网上去。其实也可以将采集到的数据做为公司的参考,或把收集的数据跟自己公司的业务做对比等。

目前网页采集多为3P代码为多(3P即ASP、PHP 、JSP)。用得最有代表的就动易科技公司BBS中新闻采集系统,和网上流传的新浪新闻采集系统等都是用ASP程序来使用,但速度从理论上来说不是很好。如果尝试用其它软件的多线程采集是不是更快?答案是肯定的。用DELPHI、VC、VB、JB都可以,PB似乎比较不好做。以下用DELPHI来解释采集网页数据。

一、 简单的新闻采集

新闻采集是最简单的,只要识别标题、副题、作者、出处、日期、新闻主体、分页就可以了。在采集之前肯定要取得网页的内容,所以在DELPHI里加入idHTTP控件(在indy Clients面板),然后用idHTTP1.GET 方法取得网页的内容,声明如下:

function Get(AURL: string): string; overload;

AURL参数,是string类型,指定一个URL地址字符串。函数返回也是string类型,返回网页的HTML源文件。比如我们可以这样调用:

tmpStr:= idHTTP1.Get(‘’);

调用成功后,tmpstr变量里存储的就是网易主页的代码了。

接下来,讲一下数据的截取,这里,我定义了这么一个函数:

function TForm1.GetStr(StrSource,StrBegin,StrEnd:string):string;

var

in_star,in_end:integer;

begin

in_star:=AnsiPos(strbegin,strsource)+length(strbegin);

in_end:=AnsiPos(strend,strsource);

result:=copy(strsource,in_sta,in_end-in_star);

end;

StrSource:string类型,表示HTML源文件。

StrBegin:string类型,表示截取开始的标记。

StrEnd:string,表示截取结束的标记。

函数返回字符串StrSource中从StrSource到StrBegin之间的一段文本。

比如:

strtmp:=TForm1.GetStr(‘A123BCD’,‘A’,‘BC’);

运行后,strtmp的值为:’123’。

关于函数里用到的AnsiPos和copy,都是系统定义的,可以从delphi的帮助文件里找到相关说明,我在这里也简单罗嗦一下:

function AnsiPos(const Substr, S: string): Integer

返回Substr在S中第一次出现的位置。

function copy(strsource,in_sta,in_end-in_star): string;

返回字符串strsource中,从in_sta(整型数据)开始到in_end-in_star(整型数据)结束的字符串。

有了以上函数,我们就可以通过设置各种标记,来截取想要的文章内容了。在程序中,比较麻烦的是我们需要设置许多标记,要定位某一项内容,必须设置它的开始和结束标志。比如要取得网页上的文章标题,必须事先查看网页代码,查看出文章标题前边和后边的一些特征代码,通过这些特征代码,来截取文章的标题。

下面我们来实际演示一下,假设要采集的文章地址为

代码为:

html

head

meta http-equiv=”Content-Language” content=”zh-cn”

meta name=”GENERATOR” content=”Microsoft FrontPage 5.0″

meta name=”ProgId” content=”FrontPage.Editor.Document”

meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″

title新建网页 1/title

/head

body

p align=”center”b文章标题/b/p

table border=”1″ cellpadding=”0″ cellspacing=”0″ style=”border-collapse: collapse” bordercolor=”#111111″ width=”100%” id=”AutoNumber1″

trtd width=”60%”作者/td

td width=”40%”出处/td/tr

/table

pfont size=”2″这里是文章内容正文。/font/p

a href=’..new_pr.asp’上一页/a a href=’new_ne.asp’下一页/a

/body

/html

第一步,我们用StrSource:= idHTTP1.Get(‘ ’);将网页代码保存在strsource变量中。

然后定义strTitle、strAuthor、strCopyFrom、strContent:

strTitle:= GetStr(StrSource,’ p align=”center”b’,’ /b/p’):

strAuthor:= GetStr(StrSource,’ trtd width=”60%”’,’ /td’):

strCopyFrom:= GetStr(StrSource,’ td width=”40%”’,’ /td/tr’):

strContent:= GetStr(StrSource,’ pfont size=”2″,’ /font/p’):

这样,就能把文章的标题、副题、作者、出处、日期、内容和分页分别存储在以上变量中。

第二步,用循环的办法,打开下一页,并取得内容,加到strContent变量中。

StrSource:= idHTTP1.Get(‘new_ne.asp’);

strContent:= strContent +GetStr(StrSource,’ pfont size=”2″,’ /font/p’):

然后再判断有没有下一页,如果还有就接着取得下一页的内容。

这样就完成了一个简单的截取过程。从以上的程序代码可以看到,我们使用的截取办法都是找截取内容的头部和尾部的,如果遇到这个头部和尾部有多个怎么办?似乎没办法,只会找到第一个,所以在找之前应该验证一下是不是只有一处有这个截取的内容的前后部。

————-

希望可以给你些帮助:)

php获取网页源码内容有哪些办法

可以参考以下几种方法:

方法一: file_get_contents获取

span style=”white-space:pre” /span$url=””;

span style=”white-space:pre” /span$fh= file_get_contents

(”);span style=”white-space:pre” /spanecho $fh;

方法二:使用fopen获取网页源代码

span style=”white-space:pre” /span$url=””;

span style=”white-space:pre” /span$handle = fopen ($url, “rb”);

span style=”white-space:pre” /span$contents = “”;

span style=”white-space:pre” /spanwhile (!feof($handle)) {

span style=”white-space:pre”  /span$contents .= fread($handle, 8192);

span style=”white-space:pre” /span}

span style=”white-space:pre” /spanfclose($handle);

span style=”white-space:pre” /spanecho $contents; //输出获取到得内容。

方法三:使用CURL获取网页源代码

$url=””;

$UserAgent = ‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)’;

$curl = curl_init(); //创建一个新的CURL资源

curl_setopt($curl, CURLOPT_URL, $url); //设置URL和相应的选项

curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不输出Header,1表示输出

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息,1显示,0不显示。//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_ENCODING, ”); //设置编码格式,为空表示支持所有格式的编码

//header中“Accept-Encoding: ”部分的内容,支持的编码格式为:”identity”,”deflate”,”gzip”。

curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。

$data = curl_exec($curl);

echo $data;

//echo curl_errno($curl); //返回0时表示程序执行成功

curl_close($curl); //关闭cURL资源,并释放系统资源

拓展资料

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。

用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

参考资料:PHP(超文本预处理器)-百度百科

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/236753.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:01
下一篇 2024-12-12 12:01

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • 云智直聘 源码分析

    本文将会对云智直聘的源码进行分析,包括前端页面和后端代码,帮助读者了解其架构、技术实现以及对一些常见的问题进行解决。通过本文的阅读,读者将会了解到云智直聘的特点、优势以及不足之处,…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • 新闻学学Python吗?

    是的,新闻学需要学习Python。Python作为一种通用编程语言,广泛应用于数据科学,特别是大数据领域。随着人工智能和自动化对新闻产业的影响越来越大,学习Python对于现代新闻…

    编程 2025-04-28
  • Python网站源码解析

    本文将从多个方面对Python网站源码进行详细解析,包括搭建网站、数据处理、安全性等内容。 一、搭建网站 Python是一种高级编程语言,适用于多种领域。它也可以用于搭建网站。最常…

    编程 2025-04-28
  • 源码是什么

    源码是一段计算机程序的原始代码,它是程序员所编写的可读性高、理解性强的文本。在计算机中,源码是指编写的程序代码,这些代码按照一定规则排列,被计算机识别并执行。 一、源码的组成 源码…

    编程 2025-04-27
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • Go源码阅读

    Go语言是Google推出的一门静态类型、编译型、并发型、语法简单的编程语言。它因具有简洁高效,内置GC等优秀特性,被越来越多的开发者所钟爱。在这篇文章中,我们将介绍如何从多个方面…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27

发表回复

登录后才能评论