引言
最近把火车头版本从v7.6更必为v9.8版本,发现从第一步采集url到内容的采集都有不少的变化,而且变化还是挺大的。好不容易适应了新版本的采集方法,来到内容发布这,又在火车头web发布模块这卡壳了。
GOOGLE,百度查了一圈,发现网上竟然都没有Typecho的火车头发布模块,有的都是非常陈旧的版本(V1.0?)。问题是现在Typecho已经更新到1.2有那么一段时间了,网上还是没流传相应的发布模块,只能自己去啃这块骨头了。
幸亏难度不高,想搞明白火车头是如何定制web发布模块的,其实真不难。弄好fiddler,你就成功一半了,再就是学习学习其他火车头的基本用法,就大差不差的能把发布模块搞出来。
步骤
1.打开抓包工具,这里选fiddler
没有的可以百度找一个可用的的中文版本。
2.打火车头采集器web发布模块
如果没有这些模块,可上火车头官网下载最新免费版。
安装后,找到安装目录下的 Module目录
,复制抽所有模块到现在用的火车头安装目录下的Module目录,重新打开火车头即可。
3.在Web发布模块填入相应的数据
双击打开Typecho 10.8.15文章
发布模块,也可以选择建立一个全新的web发布模块,只是这样的话,要全部变量按下图填一遍。
3.1 网站自动登录
选项卡
这个选项卡要注意的是:
- 1.登录地址后缀,来源页面后缀:图1,2位置
- 2.登录数据:图片3位置
- 3.登录成功,失败标志:图4位置
网站自动登录选项卡的关键数据获取方式:
登录地址后缀,登录成功,失败标志:要查看源代码找出。来源页面后缀,登录post数据:要用fiddler截取。
3.1.1 登录地址后缀
跳转网站后台登录页,https://www.zctou.com/admin/login.php
,查看源代码,找到对应 "登录地址后缀",
可以看到,<form action="https://www.zctou.com/index.php/action/login?_=bc08c2f11cd00b42"
这段代码。
"登录地址后缀"就是action=
后的网址:/index.php/action/login?_=bc08c2f11cd00b42
。
提取网页随机数
注意看login?_=
后面的bc08c2f11cd00b42
为网页随机数,在火车头发布模块中要单独提取:
这里的获取写法,采用的是“前后截取”,获得后,前面调用时直接用标签'网页随机值1'即可。
所以最终的 "登录地址后缀"是:/index.php/action/login?_=[网页随机值1]
;
特别注意:以后网址中带有涉及随机数字的,皆可用网页随机数来填。
从上就可以看出,火车头自带的发布模块,肯定是不能用的,因为登录页,数据发布页的网址都是不带随机数的。当然,这里是针对Typecho 1.2最新版来说的。
3.1.2 登录post数据
跳转Typecho 网站后台,成功登录一次,让fiddler抓取所有数据包。当然抓取前可先清除Fiddler先前所有抓取的数据,快键是ctr+x
。
找到数据包后,找到符合以下特征的数据:
- 1.结果为302的目录网站,这里例子是本站:zctou.com -- 上图1的位置
- 2.右边分析框中,数据请求方式必须为post。 -- 点击上图3的位置
打开数据包,点击 记事本中查看
,拉到最后,软件自动提取一段数据,复制后在火车头发布模块里自动导入。
复制上图数据
火车头会自动填入数据。
最后,只需要把表单值改为对应的标签即可。
3.1.3 来源页面后缀
还是fiddler那条数据,拉下去,找到referer即可:Referer: https://www.zctou.com/admin/login.php
来源页面后缀:/admin/login.php
3.1.4 登录成功,失败标志
成功就是登录成功后的关键字,同理,失败标志就是登录失败的标志。都是查看源代码后找出来的字段
成功,肯定会跳转到控制台,那找些关键字即可,如“控制台”,“管理“,“概要“等。
失败,就是还在登录页,找关键字就是“下次自动登录”。
最终,网站自动登录选项卡应填写如下:
3.2 获取栏目列表
找一个加载快,又能获取目录分类的页面,采集相应的分类即可,这里用的是write-post.php页面
3.3内容发布参数
同理,一样要用fiddler抓取发布文章的网页数据包,方法同3.1网站自动登录选项卡的操作一样,仔细找出相应的字段即可。
这里要注意的是,发布文章时,所有想抓取的数据都应埋上,包括标签,网址slug等,还有就是,时间那要把时间格式修改成 Typecho1.2 支持的格式:yyyy-MM-dd HH:ss
4.测试模块
Web发布配置 - 选择发布模块,填入网址与管理员帐号,测试获取列表
,及进行发布测试
。
这里注意:
- 1、网址的样式要与上面3.1填的网址后缀组成正确的网址。
如上面填的是
/admin/login.php
,这里的网站地址就不能再带/
,不然组成的网址会带两个/
,如:https://www.zctou.com//admin/login.php
。 - 2、获取列表测试前,要先登录,登录成功后方能取得列表数据。
- 3、最后就是发布测试,测试位置找到:上图位置5.
测试成功与否,都可以直接在窗口中查到结果。
总结
火车头制作 Typecho1.2 最新版本的 Web发布模块相对来说比较简单,没登录验证码。
但要注意一下链接带“网页随机数”,如果不带“网页随机数”,经测试,均发布失败,即便模块测试显示成功发布,但网站的结果却是没正确发布的。
最后,如果懒得自己写,可以下载博主做好的 Typecho1.2 火车头Web发布模块
。
Typecho1.2 火车头Web发布模块:
本文主要解决的是模块制作的问题,如果是新版本采集内容方面的问题,可参考:
- 与https有关问题解决办法,跳转:【火车头采集 出现“第0级获取XX出错”解决办法】