閱讀232 返回首頁    go 火車采集器


網頁抓取工具火車采集器發布模塊製作示例

網頁抓取工具火車采集器發布模塊製作示例

作者:dong 發布於:2016-5-3 16:03 Tuesday 分類:官方公告

    何為WEB發布模塊?即在使用火車采集器V9​時將用戶手動在網站後台發布內容的整個過程包含登錄網站後台,選擇欄目,以及發布文章等步驟寫入火車采集器V9,由火車采集器來模擬,實現自動發布的功能,這就是WEB發布模塊。然後規則采集到的值就通過標簽名傳遞給在線發布模塊,把數據提交到網站裏去。這裏以dedecms的文章發布為例做講解,下麵為操作示例:

一、點擊web發布配置——新建模塊

1.png

上圖中的菜單分別為:

網站自動登錄:設置網站登錄信息的數據

獲取欄目列表:設置發布的欄目列表
網頁隨機獲取:設置post數據內的隨機值
內容發布參數:設置發布頁麵POST數據包
高級功能:文件上傳設置以及數據構造

二、“WEB發布設置界麵”和 “內容發布參數” 設置

我們在發布頁麵填寫好需要發布的字段值(先不要點擊發布),然後打開fiddler(注意,如果有較亂的數據流,請先Ctrl+X 清空數據流)

如圖,填寫標題、來源、選擇欄目、內容 :

2.pngCtrl+X 清空數據流後的fiddler:

3.png

此時點擊發布,分析fiddler裏的數據包,將fiddler點擊 ①➯ ② ,依次點擊數據流列表⑤ 找到POST類型的數據流⑥, 

然後點擊⑦ 以文本的形式查看

4.png

數據包貼出如下:

POST https://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: https://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: https://127.0.0.1:801/dede/dede/article_add.php?channelid=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字段值,具體看編碼)
網站地址是: 
https://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

5.png

四、設置 “內容發布參數”

 

如下圖

6.png

然後我們把發布POST數據裏的值替換成標簽。雙擊選中表單值,然後鼠標懸停在標簽按鈕上,對應選擇要替換成的標簽名即可,

可選係統標簽,常用標簽,時間標簽。如下圖替換的效果:

7.png

標題,來源,內容,時間 很方便確認識別。

在這裏給大家講解下“[分類ID]” 係統標簽。

此標簽是用於接下來我們的獲取欄目列表設置做鋪墊的。

那麼如何確定 哪個表單名 就是 [分類ID]呢?

可以按如下圖的方法,就很簡單的知道,typeid 就是我們要找的 [分類ID],給對應替換即可。

8.png 五、確定“獲取欄目列表” 設置

首先要確定我們的選擇欄目列表是在哪個頁麵?一般有兩種情況:

A.最常見的一種,欄目選擇就是在發布內容頁麵裏,類似我們演示的DEDE文章發布。B.特殊的情況,在其它頁麵下,不在發布內容頁麵。

在這裏我們講解A種情況,把“內容發布參數” 下的來源頁麵後綴的設置,拿過來直接使用即可。放入到“獲取欄目列表”

下的發表地址後綴,和來源頁麵後綴中。然後再查看發布頁麵的源代碼,找到刷新列表部分的源碼,

確定欄目列表的開始和結束代碼,以及格式。

9.png

ID 用[分類ID]替換 
欄目名稱用 [分類名稱]替換
不規則出現的代碼 用 (*)通配符匹配


設置如圖:

 

11.png


可以發布,說明我們的 “內容發布參數” 設置沒問題。

現在我們保存發布模塊,大概測試下發布效果,可以刷新列表,說明“獲取欄目列表”的設置沒有問題。 

12.png

六、完善模塊

成功,失敗標識碼:

可以看到在網站發布正常的內容,和發布失敗的內容(比如不填寫標題,不選擇欄目)看看分別的提示,

然後寫入模塊設置,多個提示一行一個。 

高級功能:

13.png 可以看到我們此模塊有個 LITPIC 表單名字段,這是我們在“內容發布參數” 的黏貼POST數據時,自動提取的設置。

在這裏,我們可以自定義修改標簽名,如設置為縮略圖。

文件上傳設置裏的標簽,文件上傳不需要設置FTP,隻要下載到本地就可以實現自動上傳操作。

14.png

網站自動登錄:

之前我們做的發布是在登錄方式為內置瀏覽器的原理基礎上獲取cookie和User-agent 來做發布的。

我們也可以用數據包登錄的方式來設置。其設置原理和“內容發布參數”是一樣的,

用fiddler工具抓取登錄後台那一瞬間的POST數據包。

POST https://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: https://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: https://127.0.0.1:801/dede/dede/login.php?gotopage=%2Fdede%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=

設置如下:

15.png

測試效果:

16.png

到這裏就基本ok了,這樣模塊用內置瀏覽器登錄或數據包登錄都可以支持,一個完整的發布模塊就完成了,如有疑問可以訪問網頁抓取工具火車采集器V9的官方網站(www.locoy.com)了解或谘詢官方客服。


標簽: 網頁抓取工具 火車采集器V9

相關日誌:

福利來啦:6.8折優惠碼太給力!

網頁抓取工具帶你走進大數據營銷

玩轉網頁抓取工具,2016年讓大數據更接地氣!

網頁抓取工具透析大數據生態圈技術層

網頁抓取工具助力大數據基礎建設

« 網頁圖片采集器FTP/SFTP文件上傳 | 網頁抓取工具帶你走進大數據營銷»

發表評論:

最後更新:2017-05-09 01:06:04

  上一篇:go V8新浪博客發布擴展(最後更新2014.6.25)
  下一篇:go 文章采集器抓取列表分頁示例