Web发布中内容发布之前的版本一直是粘贴发布中抓包的数据,然后软件自动分析表单名与表单值,但是对于一些特殊要求的发布网站,这个功能就不大好用,因此,新版本添加了新的自定义发布数据的功能,可以更方便的处理一些复杂的网站。

下面介绍下自定义数据的功能:

(1)对于使用json或者其他特殊格式作为post的网站,那么就可以直接使用自定义数据。

(2)对于一些表单项个数不确定的网站。

①比如发布商品时,有添加发布图片,发布图片有几个那么就需要添加几个表单项,那么就必须要使用自定义数据,发布的图片在采集数据的标签中就定义好,然后发布模块直接调用该标签中的值

②比如发布分类时,有各种不同的颜色,每增加一种颜色就会增加一个表单项,但是每种产品颜色数量不固定的时候,这时就可以使用自定义发布数据来做。

  还有各种不同的应用场景,具体结合需求来做。不过简单的发布还是建议使用发布web本身的发布即可,这种方式要更明确一些。

 

下面以opencart发布商品图片为例来讲解该功能用法,教程中主要讲自定义发布数据用法,发布模块制作方法就简单截图示意:

(1) 首先,我们手动发布一条商品信息,使用fiddler抓包分析下发布格式:

这种出现的form-data格式的参数,我们现在用自定义发布的话,最好是使用

application/x-www-form-urlencoded,因此我们可以在发布模块中写一个简单的发布模块,看下application/x-www-form-urlencoded这种是什么格式:

直接将post参数粘贴在程序中,然后点击提取,因为opencart较特殊,还会在高级功能中产生文件上传,但是这个实际是没有作用的,因此我们手动将他删除掉

接下来,就是测试发布试下得到接下来就可以点击保存,然后在配置文件中配置好地址参数,接下来就是测试发布使用fiddler抓包得到application/x-www-form-urlencoded格式的post参数,参数格式如下图:

(3)已经得到post参数格式如下图:


接下来就是分析图片上传的参数格式:

如上图分析,可以看出,①处是主图上传的参数,②处是上传的两个附图,因此我们只需要将上传的两个附图处理成如②中的参数格式就能正确上传多个附图。现在我们先将post参数填入自定义发布数据中,并定义好标签名称,地址中的随机值也定义为全局变量,接下来的操作就是在采集规则中定义的:

(3) 下面以

http://www.jammerall.com/products/Desktop-Adjustable-4W-All-5.2G-5.8G-2.4G-WIFI-Jammer-.html,这个产品的采集为例,介绍下怎么处理采集规则,这个产品的采集需要cookie,因此使用fiddler抓取cookie并放入火车采集器中,然后将需要采集的标签通过发布模块导入采集器中:


下面将所需设置的标签采集规则设置好,设置并下载图片后如下图:



其中商品标题之类,加了字符编码的处理,因为在使用自定义发布数据的时候,是不会对发布的内容进行加密的,因此我们要在采集规则的时候就加密:

我们采集的规则应该可以看出,主图的结果已经是符合格式要求的了,我们现在要处理的就是附图的格式,我们来对比下,我们现在抓取到的格式以及要处理成的格式



我们抓取到的格式是以逗号间隔,但是我们处理的格式是需要每一张图片都有一个递增的序号,并加上一些前缀后缀来处理,这种的话,我们就必须使用C#代码来处理,这边我们提供下这个样板的代码:

using System;
using System.Collections.Generic;
using SpiderInterface;
class LocoyCode{
public string Run(string content,ResponseEntry response){
string[] strArray = content.Split(‘,’);
int len=strArray.Length;
string t;
content="";
for(int i=0;i<len;i++)
{
t=strArray[i];
content=content+"&product_image["+i+"][image]="+t+"&product_image["+i+"][sort_order]=0";
}
return content;
}
}


填在C# 中运行下就可以。

然后你按照你图片上传的ftp连接,设置下ftp连接方式以及相应的目录就可以正确发布。


教程中使用示例

注意内容:

(1)使用自定义数据发布时,需要用到较多的知识,具体参考下面教程

①发布模块制作方法:http://www.locoy.com/index/video_detail/cat_id/3

②fiddler使用方法:http://faq.locoy.com/q-1129.html,这次的发布需要熟练使用fiddler

(2)在处理附图时,这次的示例因为附图有递增的数字,所以需要使用C#,如果所有附图的表单项都是相同的,那么可以使用循环匹配的方式,不用C#.若是用到C#,可以参考示例C#使用,若是示例模板不能满足你的需求,请自行百度C#用法,这方面不提供技术解答。

(3)标签中设置大段文字的,请加上字符编码加密下

(4)若是发布失败,首先看下你的发布模块是否发布成功,然后就是检查你构造的代码是否跟手动发布的相同

(5)这次功能是商业版本功能