全能版接口专用的国内省市随机IP库

此前开发的全能版采集接口,均使用随机IP生成手段,这个方法生成的IP,可能遍布全球,看起来真实性不高。

针对这个问题,在PHPwind全能版接口中,我增加了一个国内IP随机的功能。这个功能,可以从指定的IP列表中,随机抽取一些国内IP作为用户的活动IP,这样看起来貌似会增加论坛的真实性。

后程序交付客户使用,客户反映效果非常良好。于是,我又将这个功能复制到Discuz!X接口中,并在今天对接口做了升级。

这个IP库是从纯真IP库中,反向剥离出来的,IP数据非常全面。考虑到发布时的实际需求,我将IP库条数限制为了10万条,经过简单压缩,文件大约在2M左右。

下面提供的IP库是我从一些省市中随机生成的,并不针对某一个城市,如果有需要需要特定国家或者地区的IP地址,可以联系我生成。

简单演示:

使用方法:

  1. 下载IP文件列表文件
  2. 解压后上传到论坛的data目录(Dz!X和PW都是data目录,discuz 7.x 在 forumdata)即可
  3. 本文件基于纯真IP库2010-5-31生成
  4. 为了避免资源占用过高,本程序生成的IP地址条数为10万条

点击下载:locoy.ip.rar

Discuz!X采集接口,增加一个随机回复的功能

此功能为用户可选功能,需要的童鞋可以将以下面的代码加到locoy.config.php中。
功能是从配置的随机回复内容是随机读取3条以上内容,并发布到帖子里。

//以下是随机回复设置,多条回复用|||分开
$replymessage           =       "回复1|||回复2|||回复3|||回复4|||回复5|||回复6|||回复7|||回复8|||回复9|||回复10|||回复11|||回复12|||回复13|||回复14|||回复15|||回复16|||回复17|||回复18|||回复19|||回复20|||回复21|||回复22|||回复23|||回复24|||回复25|||回复26|||回复27|||回复28|||回复29|||回复30";
$replymessage = explode('|||', $replymessage);shuffle($replymessage);
$replycount =   rand(3, count($replymessage));                     //随机回复条数
for($i=0;$i<$replycount;$i++) $_G['gp_message'] .= '|||'.$replymessage[$i];

discuz X采集程序开发日志

一,功能预览

  1. 主题发布功能
  2. 回复发布功能
  3. 原贴发布用户与时间
  4. 任意类型附件上传识别
  5. 用户自动注册、自动激活,增加邮箱地址生成功能
  6. 支持游客匿名,支持单用户发贴模式
  7. 支持主题分类和分类信息模型
  8. 支持HTML、支持隐藏、支持主题积分功能
  9. 其它特性

二,界面预览

Discuz!X采集发布模块[X1][X1.5][帖子][文章][群组][日志][09-03更新]

感谢您使用 尘缘(ID:vus520; QQ:130775) 开发的 Discuz! X1.5/X1 web发布模块

模块更新日志:

  1. 2010-09-03,基于X1.5RC发布X1.5模块
  2. 2010-05-25,增加日志、记录模块
  3. 2010-05-21, 增加群组发布模块
  4. 2010-05-20,修正文章发布模块,确认支持Discuz!X 1 正式版
  5. 2010-05-16,发布测试模块

适用版本及程序参数设置:

  1. Discuz! X1.5,Discuz! X1,Discuz! X1 Beta
  2. 基于默认模板开发,未启用登陆验证码,未启用发贴验证码
  3. 网站根地址填写:http://www.4wei.cn/bbs/,末尾加/

模块密码:

  1. “www.4wei.cn”,不含引号

常见问题及解决办法:

  1. 有登陆验证码或者使用经典登陆不成功,请使用内置浏览器获取Cookie!
  2. 登陆错误及提示“您还未登录”的解决办法及视频教程:http://www.4wei.cn/archives/1000446
  3. 发布内容出现数据丢失,请使用Urlencode发布

Discuz! X1.5全套模块打包下载,ALLInOne:Discuz!_X1.5_Allinone

Discuz! X1全套模块下载:

  1. 帖子发布模块下载:Discuz X BBS
  2. 文章发布模块下载:Discuz X News
  3. 群组发布模块下载:Discuz X Group,本模块无法完全获取分类,请手工指定分类ID
  4. 日志发布模块下载:Discuz X Blog
  5. 记录发布模块下载:Discuz X Doing,本模块不需要刷新分类

其它说明:

  1. Cwr文件,为火车采集器模块文件,在火车采集器中 打开->导入web发布模块即可
  2. 部分用户使用本模块,无法正常,建议大家使用模拟登陆,同时关闭后台的登陆验证。
  3. 如果使用模拟登陆、使用Cookie登陆都不能成功的话,一般估计是由于火车采集器的user-agent设置不正确,修改将火车的选项修改一下。具体的修改办法及视频教程请见:http://www.4wei.cn/archives/1000446

WordPress采集发布模块,2.8/2.9通用

此模块通用于以下版本:

  1. WordPress 2.8.x中英文版
  2. WordPress 2.9.x中英文版
  3. 其它版本未测试

此模块需要含有以下标签:

  1. [标签:标题]
    [标签:内容]
    [标签:摘要]
    [标签:关键字]
    [标签:tag]
  2. 建立规则时,请先使用智能导入,将模块听中的模块导入规则
  3. tag和关键字,使用半角逗号分隔

此模块适用于以下版本的火车采集器软件:

  1. 火车采集器2010测试版
  2. 火车采集器2008、2009版

继续阅读WordPress采集发布模块,2.8/2.9通用

火车采集器多页面采集功能的使用,视频教程

本集视频教程通过三个网站的多页采集方法,讲解火车采集器的多页采集功能。

多页面采集适合的情景:

  • 内容页中含有通向多页的链接,或者有某些第三个需要的参数
  • 多页可以通过内容页的地址生成
  • 内容页中,只有一个多页链接

多页面采集的常见网站类型:

火车采集器获取Cookie不准确、登陆不正常、不能下载附件的解决办法

使用火车采集器内置的浏览器,能很方便的获取到需要登陆的网站Cookie值,基本上能满足大多数网站的采集需求。

然而,受系统权限和目标网站的验证限制,有一些情况,使用火车采集器内置浏览器获取的Cookie并不准确,或者虽然Cookie值是准确的,却无法正常的模拟登陆,出现一些不能登陆发布内容、不能正常发布附件的情况。造成反复登陆却总是提示没有登陆的错误提示,或者下载附件时,出现下载的附件是一些.php文件的情况。

针对这种情况,尘缘今天做了2010年的第一个视频教程。今天讲的内容,着重分析了问题产生的原因和解决办法,并仔细讲了如何解决不能下载附件的一些解决办法。

希望对大家有用。今天的视频,我依然使用最高清晰度的压制比例,视频文件可能个头比较大,目的是为了让大家看清楚画面上的文字,避免产生误导。

继续阅读火车采集器获取Cookie不准确、登陆不正常、不能下载附件的解决办法

taobao tmall评论采集

淘宝和天猫的采集规则不一亲,评论的采集规则也不一样。

http://rate.taobao.com/feedRateList.htm?callback=jsonp_reviews_list&userNumId=50683818&auctionNumId=16455443108&siteID=7¤tPageNum=1
http://rate.taobao.com/feedRateList.htm?callback=jsonp_reviews_list&userNumId=50683818&auctionNumId=16455443108¤tPageNum=3
http://rate.tmall.com/list_detail_rate.htm?itemId=13743415875¤tPage=2
http://rate.tmall.com/list_detail_rate.htm?itemId=19288235675&spuId=216155431&sellerId=835354597&order=1¤tPage=1&append=0&content=0&tagId=&posi=&_ksTS=1369030495085_1340&callback=jsonp1341

开发了酷讯-Kuxun的火车时刻表采集程序PHP接口

Kuxun的车次使用Json编码,火车采集时,直接采集车次就行,这个接口可以把车站、里程、价格等信息处理成表格形式,方便处理。

火车采集器标准版用户可以直接使用,其它程序的用户可以改改PHP代码运行。


<?php
/*
* 火车采集器内置接口 For Kuxun 车次采集,输出数据为表格
* 本文件请以UTF-8编码存放于火车采集器 interface 目录下。
*
* By 尘缘 QQ:133775 2009年11月8日
*
* */
error_reporting(7);

/* 车次 */
$id = $LabelArray['简介'];

/* 查询结果地址 */
$url = "http://daohang.skb.kuxun.cn/traindetailinfo.php?id={$id}";

/* 获取数据 */
$content = @file_get_contents($url);
!trim($content) && exit;

/* 火车采集器2009 SP4 以上即支持 Json */
$content = @json_decode($content);
//print_r($content);

$seattypes = explode(',',$content->seattypes);

foreach ($content->stations as $key=>$station){
$stationid = $key + 1;
$pricelist = "";
$distance = $station->distance;
$runtime = $station->runtime;

foreach ($seattypes as $type){
switch ($type){
case 'yz':
$price = $station->price->yz;
break;
case 'rz':
$price = $station->price->rz;
break;
case 'yw':
$price = $station->price->ywx;
break;
case 'rw':
$price = $station->price->rwx;
break;
case 'ydz':
$price = $station->price->ydz;
break;
case 'edz':
$price = $station->price->edz;
break;
default:
$price = 0;
}
$pricelist .= "      <td>{$price}元</td>\n";
}

$me .= "<tr>
<td>{$stationid}</td>
<td>{$id}</td>
<td>{$station->name}</td>
<td>{$station->arrivaltime}</td>
<td>{$station->departtime}</td>
<td>{$station->staytime}</td>
<td>{$station->runtime}</td>
<td>{$station->distance}公里</td>
{$pricelist}
</tr>\n";
}

/* 生成座位类型 */
function getSeattype($type){
$seattypes = array(    "yz"=>"硬座",
"rz"=>"软座",
"yw"=>"硬卧",
"yws"=>"硬卧上",
"ywz"=>"硬卧中",
"ywx"=>"硬卧下",
"rw"=>"软卧",
"rws"=>"软卧上",
"rwx"=>"软卧下",
"ydz"=>"一等座",
"edz"=>"二等座"
);
return $seattypes[$type];
}

/* 根据座位类型生成表格 */
function getInfo($id, $seattypes, $body, $distance, $runtime){
foreach ($seattypes as $value){
$value = getSeattype($value);
$seattype .= "<th align='left'>$value</th>\r\n";
}
return $body = "<table cellspacing='0' cellpadding='0' width='100%'>
<tbody>
<tr>
<td bgcolor='#eff8ff' colspan='11'><div>
<table border='0' cellspacing='0' cellpadding='0' width='100%'>
<tbody>
<tr>
<td colspan='6'>车次:<strong>{$id}</strong>(全程:{$distance}公里)</td>
<td colspan='2'></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<th align='left'>站次</th>
<th align='left'>车次</th>
<th align='left'>站名</th>
<th align='left'>到达时间</th>
<th align='left'>开车时间</th>
<th align='left'>停留</th>
<th align='left'>运行时间</th>
<th align='left'>里程</th>
{$seattype}
</tr>
{$body}
<tr>
<th colspan='6'>区间:{$distance}公里</th>
<th colspan='4'>全程:{$runtime}</th>
</tr>
</tbody>
</table>";
}

$LabelArray['简介'] = getInfo($id, $seattypes, $me, $distance, $runtime);

//#############以上为用户操作区域#############
//#############以下语句必须保留,建议不更改######
//ob_clean();
echo serialize($LabelArray);
?>

接口下载:酷讯采集程序

Discuz7论坛规则的制作,附件的下载与上传视频教程。

这部视频是【Discuz!7.0.0接口的使用教程】姊妹篇的下集。

上一集我们主要针对Discuz接口讲了常见外部接口的安装与使用方法,这一集,我们也以Discuz为例子,讲一下Discuz论坛规则的制作方法,包括主楼和回复的采集,附件的下载,以及搭配接口实现附件发布的效果。

在这集里,我们并没有对教程进行事先准备,这个教程中的规则制作和附件下载上传,均是一般用户操作过程的真实记录,以还原在采集过程中,用户会遇到的问题,以及解决办法。虽然教程中有很多地方显示得过于散乱和啰嗦,但也最真实的反映出了采集的整个过程。

在这一集里,我们着重讲了以下几个要点。

一,帖子和回复的采集;

二,帖子内容的过滤替换方法;

三,论坛需要登陆采集的设置与采集办法;

四,附件下载限制的突破与下载设置;

五,接口的使用,附件的上传和识别。

本期教程,使用AVI格式语音视频录制,解压后500M,体积稍显庞大。在本文发布以后,对会视频进行多次压制以减轻用户下载的压力。当然,如果会员帮助压制,我们会给予一定的奖励。

视频下载地址1:http://www.rayfile.com/zh-cn/files/f267b2b0-8c26-11de-a381-0014221b798a/
视频下载地址2:http://www.4wei.cn/files/Discuz!7.X.%E8%AE%BA%E5%9D%9B%E9%87%87%E9%9B%86%E4%B8%8E%E5%8F%91%E5%B8%83%E6%95%99%E7%A8%8B.rar

配套规则与更多视频下载地址请登陆:http://bbs.locoy.com/spider-42906-1-1.html

解决DEDE中UrlEncode乱码的问题

我们知道,用火车采集器发布数据时,可能会需要使用UrlEncode发布。如:空格丢失,内容中含有&等可能隔断参数的符号等,由于DEDE默认没有加入对变量的转码处理,所以,使用UrlEncode发布到DEDE时,会出现乱码现像。

此文为解决办法。

修改DEDE管理员目录,默认为dede。

在dede/config.php末尾中加一段代码即可

以下为图片示例,看得清楚一些:

代码如下:

//给POST变量做转码处理,适用于火车采集器中Urlencode发布的内容
foreach($_POST as $key=>$value){ !is_array($value) && ${$key} = $_POST[$key] = urldecode($value); }

如果要遍历数组,对所有值进行处理的话,我写了一个递归函数,适于用所有变量,包括变量中的数组,非技术人员可以飞过。

function ArrayUrldecode($_POST){
 foreach($_POST as $key=>$value){
 if(is_array($value)){
 ArrayUrldecode($value);
 }else{
 $_POST[$key] = urldecode($value);
 }
 }
 return $_POST;
}

A5采访笔录

1. 简单介绍下自己的目前的情况

大家好,我是火车采集器的尘缘。我加入火车团队已经两年了,目前担任火车采集器论坛的管理员,负责论坛用户服务、火车采集器软件的销售和售后。目前在研究火车采集器+PHP程序的自动化网站内容解决方案,欢迎朋友们到火车采集器论坛做客。 继续阅读A5采访笔录

说一下近期开发的自动预发布接口和自动审核程序

一,先给个定义。

  1. 什么是发布接口:
  2. 发布接口,一般来说,是放在服务器端的一个页面。
    对火车而言,其实是一个入库程序。对于一般的CMS而言,接口就是内容发布页面了。
    简单来理解,就是一般的网站后台发布数据的那个程序页面。
    一般情况下,我们可以用默认的发布程序来处理相关数据,这种情况呢,不需要我们修改任何文件 ,可以直接使用在每个相同程序的网站上。这种以默认发布程序做的发布模块,有一个好处就是,模块制作方便且通用性强。我们一般都采用这样的方式来发布采集的数据。

    随着采集技术的提高和SEO理念的成熟,很多站长已经不满足于单一的数据采集,而是想尽量丰富和完善网站内容,甚至有把采集的数据变成原创甚至超原创的内容。使用默认的网站发布程序,肯定不能满足我们的要求了。主要表现在几个方面。

    第一,默认的网站程序都需要登陆 ,需要登陆就涉及到一个保存Cookie的问题,每次发布数据都需要用火车登陆一下网站,否则就无法发布数据,这样极大增加了发布的难度和操作的复杂性,很多新手始终找不到错误原因。

    第二,发布的内容单一。一般来说,默认的发布页面只能发布标题,内容,作者和时间等字段内容等字段,有的网站作者还是限定为发布者。像一些招聘网站,发布求职信息的用户名都是不一样的,使用默认程序发布出来的数据,都是同一个用户,这个显然不合实际。

    第三,功能单一,无个性化。

    针对这些问题,我们提出了发布接口的这么一个概念。这个接口,可以理解为,个性化的内容发布程序,这个程序可以是手工写的,也可以是直接修改原发布程序而来。可能这个发布接口,其实仅仅就是取消了一段原程序的登陆验证代码,实现不需要登陆的功能。这样的程序呢,我们就叫接口程序。

    不同的接口,可以实现不同的功能。 继续阅读说一下近期开发的自动预发布接口和自动审核程序