php 小偷程序,偷取页面部分内容的问题
哎,问题很简单,首先,提醒你,用preg_match.效率高得多
其次,你先要知道你需要的是那一部分,比如
两个,你现在需要在哪一个地方停下?
如果在前面那个地方停下
那就用
preg_match("/(.*?)/",$contents,$arr);
如果是匹配后面那个
preg_match("/(.*)/",$contents,$arr);
你会发现,这些都是单行匹配.如果不在一行里,就会出现没有匹配到的情况
因为 . 这个字符不匹配换行符
preg_match("/([\w\W]*?)/",$contents,$arr);
或
preg_match("/([\w\W]*)/",$contents,$arr);
来分别匹配第一个或最后一个,并且支持多行
小偷程序的特点
1、可以采集80%以上的站点,只需简单的在后台配置采集替换规则即可。2、突破图片防盗链系统,可以将目标站的图片下载到服务器上面,提高访问效率,增加百度图片的收录。3、支持静态生成,即使目标站服务器出现错误,本站依然不受影响(前提是开启静态生成和图片下载到本地服务器)。4、授权版可以启用全国分站功能,自动产生长尾关键字,适合全国服务行业和信息查询服务。语言代码 1.Perl#!/usr/bin/perl# 通过IE浏览器中的[查看]->[源文件]可看HTML文件内容。# perl中可以不通过浏览器直接取得HTML文件内容,用的# 就是perl模块libWWWuse strict;use LWP::UserAgent;use threads::shared;my $URL = http://*******;my $ua = new LWP::UserAgent;$ua->agent('Mozilla/3.0');my ($address,$params) = split(/\?/,$URL);my $req = new HTTP::Request ('GET',$address);$req->content_type('applicationn/x-www-form-urlencoded');$req->content();my $res = $ua->request($req);my $content = $res->as_string();# 此时$content里面是网页内容print $content;$URL里就是要偷数据的地址。例子中的是本人的小站。偷自己的东西,没犯法吧?当然,这个会把网页内容打印到控制台。所以很多数据或者需要保存的时候,应该用重定向符号输出到文件。如:perl yourf ile. pl >a.html这样,输出的结果就保存在文件a.html中了。至于分析的语句,PERL可以使用方便而简洁的正则,限制于不同程序的不同分析,这里就不写分析语句了。2.Active Server Pages - VBScriptASP版本的小偷程序,也不见得有什么太大的难度。不过应用了XMLHTTP组件的功能而已,事实上,我也很惊讶ASP写这个程序的简短之处:简单不?呵呵....3.Active Server Pages - JScript从原理来说,这个和VBScript差不多。从语句来说,这个跟VBScript也差不多-毕竟,它们都用同一个组件:var xmlhttp = new ActiveXObject(Msxml2.XMLHTTP.4.0);xmlhttp.Open(POST, http://*******, false);xmlhttp.Send();alert(xmlhttp.responseText);4.JavaJava用来干这个,实在有点大材小用的感觉:import jav a .io.*;import jav a. net.*;public class getURLContent{public static void main(String args[]) throws MalformedURLException,IOException{URL url = new URL(url address);BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));while(reader.ready()){System.out.println(reader.readLine());}}}5.phpphp:$url='http://网址';echo file_get_contents($url);?>6.Asp. Netc#:System .Net.WebClient webclient = new System .Net.WebClient();webclient.DownloadString(http://*******);vb.n et:Dim webclient As New System .Net.WebClient()webclient.DownloadString(http://*******)实例QQ网站上的天气程序代码如下:)这里设置需要处理的数据的头部,这个变量应视不同情况而设置,具体内容可以通过查看需要抓取的页面的源代码来确定。因为在这个程序里我们需要抓取整个页面,所以设置为页面全部抓取。注意,设置的内容必须是页面内容唯一的,不可以重复。over=Newstring(wstr, )和start相对应的就是需要处理的数据的尾部,同样的,设置的内容必须是页面中唯一的。body=mid(wstr,start,over-start)’设置显示页面的范围下面就是动用乾坤挪移+++的时候了,通过replace可以用一些字符替换掉数据中指定的字符。body = replace(body,skin1,新浪天气预报 - 麦小偷网络)body = replace(body,http://appnews-qq-com/cgi-bin/news_qq_search?city,tianqi.asp?id)本程序中已经完成了替换的工作,如果有其他需要的话可以继续进行类似的替换操作。response.write body%>替换完需要修改的内容后,就可以把修改的内容显示在页面上了。至此程序结束