bd540 发表于 2008-12-25 11:46:24

火车头采集数据到discuz论坛详细图文教程

本帖同时发布在嬴政天下论坛。
http://bbs.winzheng.com/viewthread.php?tid=1847740&extra=page%3D1&page=1
1 需要下载一个火车头模块,在这里下载:http://bbs.locoy.com/spider-33408-1-1.html
2 使用方法
解压缩后,将bd540.php用UltraEdit-32等文本编辑器软件打开(不要使用记事本)。找到:$replyusers="bd540|0000|0001|0002|0003|0004|0005|0006|0007|0008|0009|0010";替换里面的bd540|0000|0001|0002|0003|0004|0005|0006|0007|0008|0009|0010为你论坛现有的用户名(必须存在),用户名之间用|隔开。
保存后将bd540.php上传到论坛根目录,我这里是D:\APMServ5.2.0\www\htdocs\DZ\bbs,如图:

bd540 发表于 2008-12-25 11:46:59

3 将dz7随机用户名.cwr文件复制到火车头的Module目录,我这里是D:\program files\LocoySpider\Module

bd540 发表于 2008-12-25 11:48:14

好,我们现在运行火车头(LocoySpider.exe)


选择新建站点,站点名随便填写一个之后保存。

bd540 发表于 2008-12-25 11:50:28

本帖最后由 bd540 于 2008-12-25 12:01 编辑

添加一个WEB发布:
点击火车头主界面的发布图标,在弹出来的窗口选择“添加”。


在接下来弹出的窗口中选中“dz7随机用户名”。

bd540 发表于 2008-12-25 12:02:36

点击“查看/修改”按钮。在“文章发表参数”菜单里,填入bd540.php填写的用户名,一行一个。


最后保存覆盖后关闭即可。

bd540 发表于 2008-12-25 12:03:58

返回到“添加WEB发布配置”,在网站地址处按要求填写你网站地址,例如:http://127.0.0.1/DZ/bbs
选中“目标系统需要登陆”之后,点击在“火车头内置浏览器中登陆”来获取网站cookies,内置浏览器登陆成功就可以关闭了。


选择网站编码格式(看你下载的编码版本,或从源文件查看),选中“UBB形式”。


编码查看:

bd540 发表于 2008-12-25 12:06:45

点击“刷新列表”
这是论坛的板块:

刷新:



选择需要发帖的板块之后,输入配置名称保存即可。


bd540 发表于 2008-12-25 12:09:18

数据的采集

获取列表:
我们把“嬴政茶坊”(http://bbs.winzheng.com/forumdisplay.php?fid=2)作为我们的采集目标。

在刚才新建的站点上右键,选择新建“从该站点新建采集任务”。输入任务名称,点击“向导添加”(采集地址)。





我们来看看茶坊地址的规律:

http://bbs.winzheng.com/forumdisplay.php?fid=2&page=3
http://bbs.winzheng.com/forumdisplay.php?fid=2&page=2
http://bbs.winzheng.com/forumdisplay.php?fid=2&page=1
上述3个地址分别可以打开茶坊的3、2、1页,也就是只要更改“page=”后面的数字,就可以打开不同的页面。
所以我们在“添加开始采集地址”对话框中选择“批量/多页”,随便复制一个地址进去,将“page=”后面的数字用火车头的通配符: (*)

替换。
下面的数字变化范围就是叫你选择采集的页面范围。

bd540 发表于 2008-12-25 12:12:18

获取帖子列表:
页面内选定区域采集网址从“”到“”的填写。
这里甜的是html代码。
以http://bbs.winzheng.com/forumdisplay.php?fid=2&page=3为例,我们查看源文件(不会。不是吧!)
该页面第一个帖子是“肾蛋节,祝大家肾也快乐,蛋也快乐”,我们在源文件中找到它。






我们主要寻找的是源文件中,位于该贴之前的、唯一的html代码。并且此代码在其他页面的源文件中照样使用。
好,我找到了一个:
<thead class="category">
我就用这个了,你们也可以使用这个。填写到如图的位置。
下面我们再找一个在列表最后一个帖子之后出现的代码,且在刚才我们找到的代码“<thead class="category">”和最后一个帖子没有出现过的HTML代码。
好,我找到了:
<h4>快速发新话题</h4>
填进去(如图)。

随便打开一个帖子,复制地址填写入“文章内容页面的地址必须包含”选项中,并把“tid=”后面字符用火车头的通配符替换。
由于有的帖子回复较多,该贴已经有分页了,我们要排除分页(不然会出现重复采集的现象,分页内容的采集下来会告诉大家。),在不得包含选项里填写:
page=
即可。(排除的是帖子的分页,而不是帖子列表的分页。)


我们测试一下采集地址(点“开始测试网址采集”)。

bd540 发表于 2008-12-25 12:17:23

采集内容的确定

在测试出来的采集网址中任意双击一个会打开“采集内容规则”对话框。由于我们发布的目标是论坛,所以我们可以删除作者、时间、出处三个标签。


我们查看该贴的源文件。来查找标题和内容采集规则。
标题:修改标题标签:

可以看到显示标题html代码如下。<title>肾蛋节,祝大家肾也快乐,蛋也快乐 - 『 赢政茶坊 』 -赢政天下论坛 </title>则我们保持开始字符串不变,结束字符串修改为: - 『 赢政茶坊 』 -赢政天下论坛 </title>目的是去掉“ - 『 赢政茶坊 』 -赢政天下论坛 ”这几个字符。


测试一下:
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 火车头采集数据到discuz论坛详细图文教程