火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 3664|回复: 0

网页抓取工具火车采集器发布模块制作示例

[复制链接]
发表于 2016-5-3 16:02:08 | 显示全部楼层 |阅读模式
    何为WEB发布模块?即在使用火车采集器V9时将用户手动在网站后台发布内容的整个过程包含登录网站后台,选择栏目,以及发布文章等步骤写入火车采集器V9,由火车采集器来模拟,实现自动发布的功能,这就是WEB发布模块。然后规则采集到的值就通过标签名传递给在线发布模块,把数据提交到网站里去。这里以dedecms的文章发布为例做讲解,下面为操作示例:
一、点击web发布配置——新建模块
上图中的菜单分别为:
网站自动登录:设置网站登录信息的数据
获取栏目列表:设置发布的栏目列表
网页随机获取:设置post数据内的随机值
内容发布参数:设置发布页面POST数据包
高级功能:文件上传设置以及数据构造
二、“WEB发布设置界面”和 “内容发布参数” 设置
我们在发布页面填写好需要发布的字段值(先不要点击发布),然后打开fiddler(注意,如果有较乱的数据流,请先Ctrl+X 清空数据流)
如图,填写标题、来源、选择栏目、内容 :
Ctrl+X 清空数据流后的fiddler:
此时点击发布,分析fiddler里的数据包,将fiddler点击 ①➯ ② ,依次点击数据流列表⑤ 找到POST类型的数据流⑥,
然后点击⑦ 以文本的形式查看
数据包贴出如下:
POST http://127.0.0.1:801/dede/dede/article_add.php HTTP/1.1
Host: 127.0.0.1:801
Connection: keep-alive
Content-Length: 3571
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://127.0.0.1:801
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary6EWX666GAXOVqWCE
Referer: http://127.0.0.1:801/dede/dede/a ... annelid=1&cid=0
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: menuitems=1_1%2C2_1%2C3_1; PHPSESSID=f21a42f70199c81955f3219623343735;
DedeUserID=1; DedeUserID__ckMd5=91a12e3e1eae3a4d; DedeLoginTime=1444806848;
DedeLoginTime__ckMd5=65d5fa4845a7ec00;
ENV_GOBACK_URL=%2Fdede%2Fdede%2Fcontent_list.php%3Fchannelid%3D1

------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="channelid"

1
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="dopost"

save
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="title"

11111
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="shorttitle"

------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="redirecturl"

------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="tags"

------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="weight"

99
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="picname"

------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="litpic"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="source"

22222
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="writer"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="typeid"

2
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="typeid2"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="keywords"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="autokey"

1
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="description"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="dede_addonfields"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="remote"

1
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="autolitpic"

1
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="needwatermark"

1
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="sptype"

hand
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="spsize"

5
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="body"

222222222222222
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="voteid"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="notpost"

0
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="click"

137
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="sortup"

0
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="color"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="arcrank"

0
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="money"

0
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="pubdate"

2015-10-14 15:16:06
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="ishtml"

1
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="filename"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="templet"


------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="imageField.x"

37
------WebKitFormBoundary6EWX666GAXOVqWCE
Content-Disposition: form-data; name="imageField.y"

18
------WebKitFormBoundary6EWX666GAXOVqWCE--

三、设置WEB发布配置界面
根据上面的数据包得出: 网站编码是:utf-8 (可以在您的网站右击查看源代码,查找charset字段值,具体看编码)
网站地址是: http://127.0.0.1:801/dede (网站地址可以根据POST 和Referer字段自定义,一般我们用网站域名做网站地址,
也可以找其他的2个设置的共同部分做网站地址。 )
cookie是:menuitems=1_1%2C2_1%2C3_1; PHPSESSID=f21a42f70199c81955f3219623343735; DedeUserID=1; DedeUserID__ckMd5=91a12e3e1eae3a4d; DedeLoginTime=1444806848; DedeLoginTime__ckMd5=65d5fa4845a7ec00; ENV_GOBACK_URL=%2Fdede%2Fdede%2Fcontent_list.php%3Fchannelid%3D1
user-agent是: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
四、设置 “内容发布参数”
如下图
然后我们把发布POST数据里的值替换成标签。双击选中表单值,然后鼠标悬停在标签按钮上,对应选择要替换成的标签名即可,
可选系统标签,常用标签,时间标签。如下图替换的效果:
标题,来源,内容,时间 很方便确认识别。
在这里给大家讲解下“[分类ID]” 系统标签。
此标签是用于接下来我们的获取栏目列表设置做铺垫的。
那么如何确定 哪个表单名 就是 [分类ID]呢?
可以按如下图的方法,就很简单的知道,typeid 就是我们要找的 [分类ID],给对应替换即可。
五、确定“获取栏目列表” 设置
首先要确定我们的选择栏目列表是在哪个页面?一般有两种情况:
A.最常见的一种,栏目选择就是在发布内容页面里,类似我们演示的DEDE文章发布。B.特殊的情况,在其它页面下,不在发布内容页面。
在这里我们讲解A种情况,把“内容发布参数” 下的来源页面后缀的设置,拿过来直接使用即可。放入到“获取栏目列表”
下的发表地址后缀,和来源页面后缀中。然后再查看发布页面的源代码,找到刷新列表部分的源码,
确定栏目列表的开始和结束代码,以及格式。
ID 用[分类ID]替换
栏目名称用 [分类名称]替换
不规则出现的代码 用 (*)通配符匹配

设置如图:

可以发布,说明我们的 “内容发布参数” 设置没问题。
现在我们保存发布模块,大概测试下发布效果,可以刷新列表,说明“获取栏目列表”的设置没有问题。

六、完善模块
成功,失败标识码:
可以看到在网站发布正常的内容,和发布失败的内容(比如不填写标题,不选择栏目)看看分别的提示,
然后写入模块设置,多个提示一行一个。
高级功能:
可以看到我们此模块有个 LITPIC 表单名字段,这是我们在“内容发布参数” 的黏贴POST数据时,自动提取的设置。
在这里,我们可以自定义修改标签名,如设置为缩略图。
文件上传设置里的标签,文件上传不需要设置FTP,只要下载到本地就可以实现自动上传操作。
网站自动登录:
之前我们做的发布是在登录方式为内置浏览器的原理基础上获取cookie和User-agent 来做发布的。
我们也可以用数据包登录的方式来设置。其设置原理和“内容发布参数”是一样的,
用fiddler工具抓取登录后台那一瞬间的POST数据包。
POST http://127.0.0.1:801/dede/dede/login.php HTTP/1.1
Host: 127.0.0.1:801
Connection: keep-alive
Content-Length: 112
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://127.0.0.1:801
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://127.0.0.1:801/dede/dede/l ... %2Fdede%2Findex.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: menuitems=1_1%2C2_1%2C3_1; PHPSESSID=f21a42f70199c81955f3219623343735;
ENV_GOBACK_URL=%2Fdede%2Fdede%2Fcontent_list.php%3Fchannelid%3D1

gotopage=%2Fdede%2Fdede%2Findex.php&dopost=login&adminstyle=newdedecms&userid=admin&pwd=admin&validate=lcmt&sm1=

设置如下:
测试效果:
到这里就基本ok了,这样模块用内置浏览器登录或数据包登录都可以支持,一个完整的发布模块就完成了,如有疑问可以访问网页抓取工具火车采集器V9的官方网站(www.locoy.com)了解或咨询官方客服。



您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2024-11-23 04:51

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表