亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

文章采集系統

文章采集系統

文章采集系統(瀏覽器覽器采集公眾號文章的方案有哪些嗎?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 154 次瀏覽 ? 2021-12-12 22:22 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(瀏覽器覽器采集公眾號文章的方案有哪些嗎?)
  瀏覽器采集公眾號文章有哪些解決方法?采集系統組件有哪些?關(guān)鍵詞:瀏覽器采集公眾號文章 說(shuō)明:公眾號平臺上發(fā)布的很多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就用拖圖數據編輯器來(lái)看看吧。公眾號平臺上發(fā)布的許多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就和拓圖數據編輯器一起來(lái)看看吧。. 瀏覽器采集公眾賬號文章 方案一:根據搜狗門(mén)戶(hù)在網(wǎng)上可以搜索到的公眾號文章采集的相關(guān)信息,這是最、最直接、最簡(jiǎn)單的解決方案。瀏覽器采集公眾號文章 一般流程是:在搜狗微信搜索門(mén)戶(hù)搜索公眾號,選擇公眾號進(jìn)入公眾號歷史文章列表,分析內容文章 并存入數據庫采集如果過(guò)于頻繁,驗證碼會(huì )出現在搜狗搜索和公眾賬號歷史文章列表訪(fǎng)問(wèn)中。直接使用通用腳本采集是無(wú)法獲取驗證碼的。這里可以使用無(wú)頭瀏覽器訪(fǎng)問(wèn),通過(guò)對接編碼平臺識別驗證碼。Selenium 可以用作無(wú)頭瀏覽器。即使使用無(wú)頭瀏覽器,也存在以下問(wèn)題: 效率低下(實(shí)際運行一個(gè)完整的瀏覽器來(lái)模擬人工操作) 瀏覽器中網(wǎng)頁(yè)資源的加載難以控制,腳本難以控制加載無(wú)法進(jìn)行瀏覽器和驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。
  順便說(shuō)一句,甚至不要考慮公開(kāi)一個(gè)免費的 IP 地址。很不穩定,基本被微信屏蔽了。除了搜狗/微信反爬蟲(chóng)機制外,采用該方案還有其他不足: 無(wú)法獲取閱讀數、點(diǎn)贊數等用于評價(jià)文章質(zhì)量的關(guān)鍵信息是無(wú)法及時(shí)獲取已發(fā)布的公眾號文章,只能定期重復爬取,只能獲取最近十個(gè)群發(fā)帖文章 解決方案二:網(wǎng)頁(yè)微信抓包分析后被微信反爬蟲(chóng)濫用找了半天,和同事集思廣益,找到了新的微信公眾號文章爬取程序。只需分析哪些門(mén)戶(hù)可以獲取數據。Fuzzy記得網(wǎng)絡(luò )微信有個(gè)公眾號文章 閱讀功能。碰巧玩了一段時(shí)間的個(gè)人微信,主要是使用Python包ItChat。其實(shí)現原理是對網(wǎng)頁(yè)微信進(jìn)行抓取分析,匯總成個(gè)人微信界面。目標是實(shí)現網(wǎng)頁(yè)微信能實(shí)現的所有功能。. 所以有一個(gè)初步的計劃——通過(guò)ItChat讓微信公眾號文章推送過(guò)來(lái)。我快下班的時(shí)候跟同事提過(guò)。他也很感興趣。第二天就實(shí)現了驗證碼(ItChat對應功能碼的實(shí)現很簡(jiǎn)略,內容分析部分是在內容分析部分可以直接使用之前做的)。這個(gè)解決方案的主要過(guò)程是:服務(wù)器通過(guò)ItChat登錄網(wǎng)頁(yè)微信。當公眾號發(fā)布新的文章推送時(shí),會(huì )被服務(wù)器攔截進(jìn)行后續分析和存儲。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。
  ios的微信客戶(hù)端在批處理采集過(guò)程中,實(shí)際測試后崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情. 3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。瀏覽器采集公眾號文章 4、文章 列表分析和存儲系統:我用php語(yǔ)言寫(xiě)的,下面的文章將詳細講解如何分析文章List,創(chuàng )建采集隊列,實(shí)現批量采集內容??戳松厦娴耐貓D數據編輯器的介紹,相信大家對瀏覽器采集公眾號文章以及采集系統的組成有了一定的了解。有些文章應該經(jīng)常在公眾號平臺上發(fā)表。采集使用采集系統可以更加方便快捷。繼續關(guān)注更多資訊和知識點(diǎn),關(guān)注微信公眾號原創(chuàng )文章統計,關(guān)于微信公眾號原創(chuàng )< @文章how 統計等知識點(diǎn),如何批量導出微信文件, 查看全部

  文章采集系統(瀏覽器覽器采集公眾號文章的方案有哪些嗎?)
  瀏覽器采集公眾號文章有哪些解決方法?采集系統組件有哪些?關(guān)鍵詞:瀏覽器采集公眾號文章 說(shuō)明:公眾號平臺上發(fā)布的很多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就用拖圖數據編輯器來(lái)看看吧。公眾號平臺上發(fā)布的許多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就和拓圖數據編輯器一起來(lái)看看吧。. 瀏覽器采集公眾賬號文章 方案一:根據搜狗門(mén)戶(hù)在網(wǎng)上可以搜索到的公眾號文章采集的相關(guān)信息,這是最、最直接、最簡(jiǎn)單的解決方案。瀏覽器采集公眾號文章 一般流程是:在搜狗微信搜索門(mén)戶(hù)搜索公眾號,選擇公眾號進(jìn)入公眾號歷史文章列表,分析內容文章 并存入數據庫采集如果過(guò)于頻繁,驗證碼會(huì )出現在搜狗搜索和公眾賬號歷史文章列表訪(fǎng)問(wèn)中。直接使用通用腳本采集是無(wú)法獲取驗證碼的。這里可以使用無(wú)頭瀏覽器訪(fǎng)問(wèn),通過(guò)對接編碼平臺識別驗證碼。Selenium 可以用作無(wú)頭瀏覽器。即使使用無(wú)頭瀏覽器,也存在以下問(wèn)題: 效率低下(實(shí)際運行一個(gè)完整的瀏覽器來(lái)模擬人工操作) 瀏覽器中網(wǎng)頁(yè)資源的加載難以控制,腳本難以控制加載無(wú)法進(jìn)行瀏覽器和驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。
  順便說(shuō)一句,甚至不要考慮公開(kāi)一個(gè)免費的 IP 地址。很不穩定,基本被微信屏蔽了。除了搜狗/微信反爬蟲(chóng)機制外,采用該方案還有其他不足: 無(wú)法獲取閱讀數、點(diǎn)贊數等用于評價(jià)文章質(zhì)量的關(guān)鍵信息是無(wú)法及時(shí)獲取已發(fā)布的公眾號文章,只能定期重復爬取,只能獲取最近十個(gè)群發(fā)帖文章 解決方案二:網(wǎng)頁(yè)微信抓包分析后被微信反爬蟲(chóng)濫用找了半天,和同事集思廣益,找到了新的微信公眾號文章爬取程序。只需分析哪些門(mén)戶(hù)可以獲取數據。Fuzzy記得網(wǎng)絡(luò )微信有個(gè)公眾號文章 閱讀功能。碰巧玩了一段時(shí)間的個(gè)人微信,主要是使用Python包ItChat。其實(shí)現原理是對網(wǎng)頁(yè)微信進(jìn)行抓取分析,匯總成個(gè)人微信界面。目標是實(shí)現網(wǎng)頁(yè)微信能實(shí)現的所有功能。. 所以有一個(gè)初步的計劃——通過(guò)ItChat讓微信公眾號文章推送過(guò)來(lái)。我快下班的時(shí)候跟同事提過(guò)。他也很感興趣。第二天就實(shí)現了驗證碼(ItChat對應功能碼的實(shí)現很簡(jiǎn)略,內容分析部分是在內容分析部分可以直接使用之前做的)。這個(gè)解決方案的主要過(guò)程是:服務(wù)器通過(guò)ItChat登錄網(wǎng)頁(yè)微信。當公眾號發(fā)布新的文章推送時(shí),會(huì )被服務(wù)器攔截進(jìn)行后續分析和存儲。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。
  ios的微信客戶(hù)端在批處理采集過(guò)程中,實(shí)際測試后崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情. 3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。瀏覽器采集公眾號文章 4、文章 列表分析和存儲系統:我用php語(yǔ)言寫(xiě)的,下面的文章將詳細講解如何分析文章List,創(chuàng )建采集隊列,實(shí)現批量采集內容??戳松厦娴耐貓D數據編輯器的介紹,相信大家對瀏覽器采集公眾號文章以及采集系統的組成有了一定的了解。有些文章應該經(jīng)常在公眾號平臺上發(fā)表。采集使用采集系統可以更加方便快捷。繼續關(guān)注更多資訊和知識點(diǎn),關(guān)注微信公眾號原創(chuàng )文章統計,關(guān)于微信公眾號原創(chuàng )< @文章how 統計等知識點(diǎn),如何批量導出微信文件,

文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 170 次瀏覽 ? 2021-12-08 21:13 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)< @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('http://xxx.com/getWxHis.php', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \'(.*?)\';\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('http://xxx.com/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require('http');
http.get('http://xxx.com/getWxPost.php', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require('http');
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require('querystring').stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function (e) {
console.log('problem with request: ' + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 136 次瀏覽 ? 2021-12-08 21:06 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

文章采集系統(大數據商品采集系統全網(wǎng)文章特征(ctrpredictor)采集)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 183 次瀏覽 ? 2021-12-07 01:04 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(大數據商品采集系統全網(wǎng)文章特征(ctrpredictor)采集)
  文章采集系統全網(wǎng)文章特征(ctrpredictor)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據商品采集系統全網(wǎng)商品特征信息(getusefulfromothermakers)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據關(guān)鍵詞文章的一句話(huà)描述信息全網(wǎng)聚合語(yǔ)言信息全網(wǎng)語(yǔ)言采集數據來(lái)自互聯(lián)網(wǎng)任意目標網(wǎng)站采集關(guān)鍵詞只采集-對應或相關(guān)的文章和其他所有用戶(hù)發(fā)布的帶詞采集文章內容為單篇文章,也包括所有書(shū)刊或其他類(lèi)型的內容文章全部符合采集條件和抓取標準(要采集的字段)文章收藏量、全文收藏量、贊超100的文章、全文收藏量大于10的書(shū)籍(支持單文章采集)不加載試讀,不包含圖片的文章。
  1、基礎功能文章、書(shū)籍采集;
  2、新聞、小說(shuō)采集
  3、內容采集目前支持爬蟲(chóng)直接爬取所有的基礎數據包括新聞、小說(shuō)、古籍這三類(lèi);所有的采集都會(huì )進(jìn)行重定向頁(yè)面url,爬蟲(chóng)服務(wù)器將重定向到目標頁(yè)面url后進(jìn)行處理,提取有效信息的方式進(jìn)行操作;然后再和網(wǎng)站驗證實(shí)驗性數據的采集范圍。采集同類(lèi)文章的兩個(gè)策略:數據量小,較快:直接找到原文上傳,獲取最新的內容;數據量大,較慢:對文章進(jìn)行分割,采集分割的文章利用模擬瀏覽器獲取json中的字段數據進(jìn)行處理,生成匹配的結果發(fā)送給服務(wù)器進(jìn)行處理。
  4、數據采集規則:采集文章標題:分詞采集首尾,特殊格式選擇有用詞等;爬蟲(chóng)原理:通過(guò)瀏覽器提供的谷歌翻譯庫進(jìn)行點(diǎn)擊器抓取網(wǎng)站各種文章內容;為什么不進(jìn)行網(wǎng)頁(yè)抓???開(kāi)發(fā)難度高,不穩定;真實(shí)采集復雜信息需要改變請求發(fā)送路徑,且傳輸速度慢;網(wǎng)站提供的可爬取內容有限,整體內容包含數千萬(wàn)條,所以未能應用所有的抓取策略文章采集規則真實(shí)爬取上傳方法(網(wǎng)易云信-提供chrome端采集https協(xié)議的api)網(wǎng)易云信所以翻譯工具采集規則真實(shí)采集上傳方法——采集鏈接特征(重定向postheaders)把采集的鏈接發(fā)送到服務(wù)器,服務(wù)器驗證url有效后,返回即為有效數據,返回結果為json格式傳入request.url,即request.request(url,params=none)真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;多種采集策略:?jiǎn)螚l、多條、模擬請求等。文章采集策略真實(shí)爬取策略點(diǎn)擊采集(clicksnapshot)點(diǎn)擊采。 查看全部

  文章采集系統(大數據商品采集系統全網(wǎng)文章特征(ctrpredictor)采集)
  文章采集系統全網(wǎng)文章特征(ctrpredictor)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據商品采集系統全網(wǎng)商品特征信息(getusefulfromothermakers)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據關(guān)鍵詞文章的一句話(huà)描述信息全網(wǎng)聚合語(yǔ)言信息全網(wǎng)語(yǔ)言采集數據來(lái)自互聯(lián)網(wǎng)任意目標網(wǎng)站采集關(guān)鍵詞只采集-對應或相關(guān)的文章和其他所有用戶(hù)發(fā)布的帶詞采集文章內容為單篇文章,也包括所有書(shū)刊或其他類(lèi)型的內容文章全部符合采集條件和抓取標準(要采集的字段)文章收藏量、全文收藏量、贊超100的文章、全文收藏量大于10的書(shū)籍(支持單文章采集)不加載試讀,不包含圖片的文章。
  1、基礎功能文章、書(shū)籍采集;
  2、新聞、小說(shuō)采集
  3、內容采集目前支持爬蟲(chóng)直接爬取所有的基礎數據包括新聞、小說(shuō)、古籍這三類(lèi);所有的采集都會(huì )進(jìn)行重定向頁(yè)面url,爬蟲(chóng)服務(wù)器將重定向到目標頁(yè)面url后進(jìn)行處理,提取有效信息的方式進(jìn)行操作;然后再和網(wǎng)站驗證實(shí)驗性數據的采集范圍。采集同類(lèi)文章的兩個(gè)策略:數據量小,較快:直接找到原文上傳,獲取最新的內容;數據量大,較慢:對文章進(jìn)行分割,采集分割的文章利用模擬瀏覽器獲取json中的字段數據進(jìn)行處理,生成匹配的結果發(fā)送給服務(wù)器進(jìn)行處理。
  4、數據采集規則:采集文章標題:分詞采集首尾,特殊格式選擇有用詞等;爬蟲(chóng)原理:通過(guò)瀏覽器提供的谷歌翻譯庫進(jìn)行點(diǎn)擊器抓取網(wǎng)站各種文章內容;為什么不進(jìn)行網(wǎng)頁(yè)抓???開(kāi)發(fā)難度高,不穩定;真實(shí)采集復雜信息需要改變請求發(fā)送路徑,且傳輸速度慢;網(wǎng)站提供的可爬取內容有限,整體內容包含數千萬(wàn)條,所以未能應用所有的抓取策略文章采集規則真實(shí)爬取上傳方法(網(wǎng)易云信-提供chrome端采集https協(xié)議的api)網(wǎng)易云信所以翻譯工具采集規則真實(shí)采集上傳方法——采集鏈接特征(重定向postheaders)把采集的鏈接發(fā)送到服務(wù)器,服務(wù)器驗證url有效后,返回即為有效數據,返回結果為json格式傳入request.url,即request.request(url,params=none)真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;多種采集策略:?jiǎn)螚l、多條、模擬請求等。文章采集策略真實(shí)爬取策略點(diǎn)擊采集(clicksnapshot)點(diǎn)擊采。

文章采集系統(nmon系統開(kāi)發(fā)系統的優(yōu)點(diǎn)及解決辦法 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 159 次瀏覽 ? 2021-12-05 03:11 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(nmon系統開(kāi)發(fā)系統的優(yōu)點(diǎn)及解決辦法
)
  一、nmon 介紹
  Nmon 首次集成在 IMB AIX 中,并于 2009 年開(kāi)源。nmon 系統支持常見(jiàn)的發(fā)行版 Linux、IBM POWER、大型機和 ARM;
  運維人員可以通過(guò)nmon動(dòng)態(tài)查看當前CPU負載、內存使用情況、網(wǎng)絡(luò )負載等,也可以進(jìn)行時(shí)間段數據采集,通過(guò)圖表展示;
  
  1.1 nmon 優(yōu)勢
  官方網(wǎng)站:
  1.2 下載,解壓
  nmon 最新版本是 16m
  wget https://nchc.dl.sourceforge.ne ... ar.gz
#解壓
mkdir nmon
tar xvf nmon16m_helpsystems.tar.gz -C /opt/nmon
  如需支持ARM,請下載以下版本
  wget http://sourceforge.net/project ... ar.gz
  解壓后有很多二進(jìn)制文件,可以根據自己的平臺選擇。比如我的操作系統是CentOS7,我選擇nmon_x86_64_centos7
  nmon_power_64_centos6 nmon_power_64le_rhel8 nmon_power_64_rhel7 nmon_x86_64_debian09 nmon_x86_64_oel8 nmon_x86_64_rhel7 nmon_x86_64_ubuntu16
nmon_power_64_centos7 nmon_power_64le_sles12 nmon_power_64_sles11 nmon_x86_64_debian10 nmon_x86_64_opensuse10 nmon_x86_64_rhel8 nmon_x86_64_ubuntu18
nmon_power_64le_centos7 nmon_power_64le_ubuntu14 nmon_x86_64_centos5 nmon_x86_64_mint18 nmon_x86_64_opensuse11 nmon_x86_64_sles10 nmon_x86_64_ubuntu19
nmon_power_64le_centos8 nmon_power_64le_ubuntu16 nmon_x86_64_centos6 nmon_x86_64_mint19 nmon_x86_64_opensuse12 nmon_x86_64_sles11
nmon_power_64le_linux nmon_power_64le_ubuntu18 nmon_x86_64_centos7 nmon_x86_64_oel5 nmon_x86_64_opensuse15 nmon_x86_64_sles12
nmon_power_64le_rhel7 nmon_power_64_linux nmon_x86_64_centos8 nmon_x86_64_oel6 nmon_x86_64_rhel5 nmon_x86_64_sles15
nmon_power_64le_rhel7_gpu nmon_power_64_rhel6 nmon_x86_64_debian08 nmon_x86_64_oel7 nmon_x86_64_rhel6 nmon_x86_64_ubuntu14
  建立軟連接
  如果 nmon 安裝在 /opt/nmon/ 下
   ln -s /opt/nmon/nmon_x86_64_centos7 /usr/bin/nmon
  二、使用
  如果直接查看當前運行數據,可以直接從命令行執行nmon,根據界面提示的選項選擇查看數據
  
  如果需要采集每個(gè)時(shí)間段的運行數據,可以使用nmon的采集功能;
  nmon采集主要參數如下:
  For Data-Collect-Mode
-f # 必選項,保存數據到本地目錄中,格式為.nmon。
# 不指定采集間隔(默認為秒)或者快照數默認為-s300 -c288,即每5分鐘采集一次,采集288次停止;
-s # 采集間隔時(shí)間
-c # 采集次快照數,采集多少次后停止采集
-t # 采集系統進(jìn)程和數據,(-T能收集命令參數)
-x # 采集規劃 Capacity Planning=15 min snapshots for 1 day. (nmon -ft -s 900 -c 96)
  2.1 開(kāi)始采集
  創(chuàng )建采集目錄
  mkdir -p /data/nmon/
  從采集開(kāi)始,采集快照不要太多,每次最好保持在500~800次
  示例1:簡(jiǎn)單抓圖,每2分鐘一次采集,快照采集到720次停止采集
  nmon-f-s120-c720 -m/data/nmon/
  示例 2:使用系統進(jìn)程捕獲快照
  nmon-fT-s120-c720 -m/data/nmon/
  示例 3:在系統過(guò)載時(shí)捕獲快照,采集5 秒一次
  nmon-fT-s5-c720 -m/data/nmon/
  采集啟動(dòng)后會(huì )在對應的存儲目錄下形成一個(gè)文件,格式為:hostname_date_采集time
  比如我創(chuàng )建了一個(gè)簡(jiǎn)單的采集,每2分鐘一次采集,10次后采集自動(dòng)退出;這樣你就可以每2分鐘查看一次
  pev_211201_1138.nmon 更新一次時(shí)間戳
  nmon -f -s120 -c10 -m /data/nmon/
  
  2.2站采集
  采集指定次數后,nmon會(huì )自動(dòng)停止進(jìn)程。如果要手動(dòng)停止采集,可以使用ps -ef |grep nmon查看nmon的PID,然后使用kill -USR2 PID號殺進(jìn)程號。切記不要使用kill -9,會(huì )造成nmon采集文件損壞無(wú)法解析
  # 查看進(jìn)程
ps -ef |grep nmon
root 3116 1 0 11:38 pts/0 00:00:00 nmon -f -s120 -c10 -m /data/nmon/
root 4119 28852 0 11:54 pts/0 00:00:00 grep --color=auto nmon
# 殺掉進(jìn)程
kill -USR2 3116
  2.2 分析 2.2.1 nmonchart 分析
  Nmonchart可以將nmon采集的數據解析成網(wǎng)頁(yè)格式(html),通過(guò)Javascript使用谷歌圖表庫解析成圖表文件,方便運維人員分析數據;
  注意:此方法需要翻墻支撐
  下載并解壓 nmonchart
  wget http://sourceforge.net/project ... 0.tar
tar zvf nmonchart40.tar -C /opt/nmonchart/
  建立軟連接
  ln -s /opt/nmonchart/nmonchart /usr/bin/nmonchart
  開(kāi)始轉換
  nmonchart是用Korn shell寫(xiě)的,centos上用bash不常見(jiàn),需要單獨安裝ksh
  yum install ksh
  轉換語(yǔ)法為
  nmonchart file_name.nmon out_file_name.html
  例如將 pev_211201_1138.nmon 轉換為 test.html
  nmonchart pev_211201_1138.nmon test.html
  打開(kāi)VPN,下載到本地在瀏覽器中打開(kāi),等待幾秒。點(diǎn)擊上方標簽查看對應負載
  
  2.2.2 nmon Analyzer分析
  Nmon Analyzer 使用 EXCEL 將 nmon采集 的數據轉換成圖表模式。推薦使用Micsoft office2016。
  注意:對于大型 nmon 數據文件(10+ MB),強烈建議安裝 64 位 Microsoft Excel 2016 或更高版本,并且本地內存至少 8 GB,最好 16 GB 或更大;
  下載 nmon 分析器
  可以通過(guò)瀏覽器下載,地址是
  注意:可能下載不成功,可以多試幾次
  下載完成后會(huì )有一個(gè)PDF文件和一個(gè)EXCEL文件,其中EXCEL起到解析作用。
  
  將nmon生成的文件(format.nmon)下載到本地,打開(kāi)EXCEL或WPS格式的宏,打開(kāi)nmon分析器v69_2.xlsm格式文件,點(diǎn)擊Analyze nmon data添加nmon文件。
  
  等待一段時(shí)間解析后,即可查看文件,
  
  普通采集和進(jìn)程的三個(gè)區別采集
<p>普通 采集 nmon -f -s120 -c10 和 process 采集nmon -fT -s120 -c10,process 采集 還有 2 個(gè)選項,Top Summary 和 Top Commands; 查看全部

  文章采集系統(nmon系統開(kāi)發(fā)系統的優(yōu)點(diǎn)及解決辦法
)
  一、nmon 介紹
  Nmon 首次集成在 IMB AIX 中,并于 2009 年開(kāi)源。nmon 系統支持常見(jiàn)的發(fā)行版 Linux、IBM POWER、大型機和 ARM;
  運維人員可以通過(guò)nmon動(dòng)態(tài)查看當前CPU負載、內存使用情況、網(wǎng)絡(luò )負載等,也可以進(jìn)行時(shí)間段數據采集,通過(guò)圖表展示;
  
  1.1 nmon 優(yōu)勢
  官方網(wǎng)站:
  1.2 下載,解壓
  nmon 最新版本是 16m
  wget https://nchc.dl.sourceforge.ne ... ar.gz
#解壓
mkdir nmon
tar xvf nmon16m_helpsystems.tar.gz -C /opt/nmon
  如需支持ARM,請下載以下版本
  wget http://sourceforge.net/project ... ar.gz
  解壓后有很多二進(jìn)制文件,可以根據自己的平臺選擇。比如我的操作系統是CentOS7,我選擇nmon_x86_64_centos7
  nmon_power_64_centos6 nmon_power_64le_rhel8 nmon_power_64_rhel7 nmon_x86_64_debian09 nmon_x86_64_oel8 nmon_x86_64_rhel7 nmon_x86_64_ubuntu16
nmon_power_64_centos7 nmon_power_64le_sles12 nmon_power_64_sles11 nmon_x86_64_debian10 nmon_x86_64_opensuse10 nmon_x86_64_rhel8 nmon_x86_64_ubuntu18
nmon_power_64le_centos7 nmon_power_64le_ubuntu14 nmon_x86_64_centos5 nmon_x86_64_mint18 nmon_x86_64_opensuse11 nmon_x86_64_sles10 nmon_x86_64_ubuntu19
nmon_power_64le_centos8 nmon_power_64le_ubuntu16 nmon_x86_64_centos6 nmon_x86_64_mint19 nmon_x86_64_opensuse12 nmon_x86_64_sles11
nmon_power_64le_linux nmon_power_64le_ubuntu18 nmon_x86_64_centos7 nmon_x86_64_oel5 nmon_x86_64_opensuse15 nmon_x86_64_sles12
nmon_power_64le_rhel7 nmon_power_64_linux nmon_x86_64_centos8 nmon_x86_64_oel6 nmon_x86_64_rhel5 nmon_x86_64_sles15
nmon_power_64le_rhel7_gpu nmon_power_64_rhel6 nmon_x86_64_debian08 nmon_x86_64_oel7 nmon_x86_64_rhel6 nmon_x86_64_ubuntu14
  建立軟連接
  如果 nmon 安裝在 /opt/nmon/ 下
   ln -s /opt/nmon/nmon_x86_64_centos7 /usr/bin/nmon
  二、使用
  如果直接查看當前運行數據,可以直接從命令行執行nmon,根據界面提示的選項選擇查看數據
  
  如果需要采集每個(gè)時(shí)間段的運行數據,可以使用nmon的采集功能;
  nmon采集主要參數如下:
  For Data-Collect-Mode
-f # 必選項,保存數據到本地目錄中,格式為.nmon。
# 不指定采集間隔(默認為秒)或者快照數默認為-s300 -c288,即每5分鐘采集一次,采集288次停止;
-s # 采集間隔時(shí)間
-c # 采集次快照數,采集多少次后停止采集
-t # 采集系統進(jìn)程和數據,(-T能收集命令參數)
-x # 采集規劃 Capacity Planning=15 min snapshots for 1 day. (nmon -ft -s 900 -c 96)
  2.1 開(kāi)始采集
  創(chuàng )建采集目錄
  mkdir -p /data/nmon/
  從采集開(kāi)始,采集快照不要太多,每次最好保持在500~800次
  示例1:簡(jiǎn)單抓圖,每2分鐘一次采集,快照采集到720次停止采集
  nmon-f-s120-c720 -m/data/nmon/
  示例 2:使用系統進(jìn)程捕獲快照
  nmon-fT-s120-c720 -m/data/nmon/
  示例 3:在系統過(guò)載時(shí)捕獲快照,采集5 秒一次
  nmon-fT-s5-c720 -m/data/nmon/
  采集啟動(dòng)后會(huì )在對應的存儲目錄下形成一個(gè)文件,格式為:hostname_date_采集time
  比如我創(chuàng )建了一個(gè)簡(jiǎn)單的采集,每2分鐘一次采集,10次后采集自動(dòng)退出;這樣你就可以每2分鐘查看一次
  pev_211201_1138.nmon 更新一次時(shí)間戳
  nmon -f -s120 -c10 -m /data/nmon/
  
  2.2站采集
  采集指定次數后,nmon會(huì )自動(dòng)停止進(jìn)程。如果要手動(dòng)停止采集,可以使用ps -ef |grep nmon查看nmon的PID,然后使用kill -USR2 PID號殺進(jìn)程號。切記不要使用kill -9,會(huì )造成nmon采集文件損壞無(wú)法解析
  # 查看進(jìn)程
ps -ef |grep nmon
root 3116 1 0 11:38 pts/0 00:00:00 nmon -f -s120 -c10 -m /data/nmon/
root 4119 28852 0 11:54 pts/0 00:00:00 grep --color=auto nmon
# 殺掉進(jìn)程
kill -USR2 3116
  2.2 分析 2.2.1 nmonchart 分析
  Nmonchart可以將nmon采集的數據解析成網(wǎng)頁(yè)格式(html),通過(guò)Javascript使用谷歌圖表庫解析成圖表文件,方便運維人員分析數據;
  注意:此方法需要翻墻支撐
  下載并解壓 nmonchart
  wget http://sourceforge.net/project ... 0.tar
tar zvf nmonchart40.tar -C /opt/nmonchart/
  建立軟連接
  ln -s /opt/nmonchart/nmonchart /usr/bin/nmonchart
  開(kāi)始轉換
  nmonchart是用Korn shell寫(xiě)的,centos上用bash不常見(jiàn),需要單獨安裝ksh
  yum install ksh
  轉換語(yǔ)法為
  nmonchart file_name.nmon out_file_name.html
  例如將 pev_211201_1138.nmon 轉換為 test.html
  nmonchart pev_211201_1138.nmon test.html
  打開(kāi)VPN,下載到本地在瀏覽器中打開(kāi),等待幾秒。點(diǎn)擊上方標簽查看對應負載
  
  2.2.2 nmon Analyzer分析
  Nmon Analyzer 使用 EXCEL 將 nmon采集 的數據轉換成圖表模式。推薦使用Micsoft office2016。
  注意:對于大型 nmon 數據文件(10+ MB),強烈建議安裝 64 位 Microsoft Excel 2016 或更高版本,并且本地內存至少 8 GB,最好 16 GB 或更大;
  下載 nmon 分析器
  可以通過(guò)瀏覽器下載,地址是
  注意:可能下載不成功,可以多試幾次
  下載完成后會(huì )有一個(gè)PDF文件和一個(gè)EXCEL文件,其中EXCEL起到解析作用。
  
  將nmon生成的文件(format.nmon)下載到本地,打開(kāi)EXCEL或WPS格式的宏,打開(kāi)nmon分析器v69_2.xlsm格式文件,點(diǎn)擊Analyze nmon data添加nmon文件。
  
  等待一段時(shí)間解析后,即可查看文件,
  
  普通采集和進(jìn)程的三個(gè)區別采集
<p>普通 采集 nmon -f -s120 -c10 和 process 采集nmon -fT -s120 -c10,process 采集 還有 2 個(gè)選項,Top Summary 和 Top Commands;

文章采集系統(天鴿軟件的設計簡(jiǎn)單,易上手,h5更小)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 142 次瀏覽 ? 2021-12-02 21:08 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(天鴿軟件的設計簡(jiǎn)單,易上手,h5更小)
  文章采集系統又被人罵了。最近打卡記錄,各種計劃安排和工作任務(wù)全部都被打到時(shí)間段后臺,好一陣兒沒(méi)有動(dòng)靜。于是我就起疑了,畢竟每天都差不多,百萬(wàn)人同時(shí)打卡,怎么可能一個(gè)半小時(shí)每個(gè)人加起來(lái)記錄不到十分鐘?這就引出了今天的主角-天鴿軟件天鴿軟件的設計簡(jiǎn)單,易上手,與墨跡天氣天鴿小程序采用一樣的設計,可以說(shuō)是雙贏(yíng)。
  誰(shuí)都沒(méi)法想象到群活動(dòng)眾籌的人數是多少,效果又是怎樣。(我參與了三次社區打卡活動(dòng),每次都有很多成員參與?。┛墒俏以陧椖刻峤淮a時(shí),有些我一直在想的細節沒(méi)有在里面。我想問(wèn)問(wèn)大家,我們如何在打卡前對天鴿有一個(gè)全局的了解。我得到以下建議。1.可以用客戶(hù)端軟件或者h5(vps架構最好,h5更?。?.如果條件允許,可以使用github提供的服務(wù)(如果有特殊要求,例如禁止修改打卡,就別用)沒(méi)有特殊要求的話(huà),可以用系統記錄。
  總結一下:大家目前遇到的大多數問(wèn)題:不能很方便的在打卡前對每個(gè)事件一一了解我想不失為一個(gè)好辦法。不過(guò)我想聊聊通知大家的一些設計技巧。大家好啊~因為天鴿比較小,一個(gè)賬號可以同時(shí)使用多個(gè)天鴿帳號打卡,但是在一個(gè)天鴿打卡頁(yè)面只能顯示最多四個(gè)天鴿帳號的名字。也就是說(shuō),如果你一個(gè)賬號只有五次打卡,你就只能點(diǎn)到這四個(gè)天鴿。
  除非你每個(gè)天鴿賬號點(diǎn)到天鴿所需要的時(shí)間差是有很大規律的,那么可以通過(guò)兩組不同的重復記錄來(lái)共享當前天鴿帳號,這是我一直想要解決的問(wèn)題。我設計的比較抽象一點(diǎn),都是我腦海中的想法。但是目前的我遇到問(wèn)題的話(huà),我會(huì )盡可能在每個(gè)事件上添加條件,不過(guò)條件要盡可能的簡(jiǎn)潔,不用打太多標簽。一次打卡記錄,要記錄天鴿名字,所以我把天鴿名字改成了“admin”因為我是記錄手機碼的,所以要記錄這個(gè)天鴿賬號的短號。
  但是手機碼好像沒(méi)有打錯號的狀況。所以還有個(gè)方法,把天鴿名字填在背景圖上。背景圖好像沒(méi)有限制,并且我當時(shí)忘記是用哪個(gè)了,用ios記錄的話(huà)其實(shí)是wifi下的圖,考慮到不是很方便,就沒(méi)采用?,F在已經(jīng)是2018年了,距離天鴿產(chǎn)品才發(fā)布不過(guò)三年時(shí)間,設計的盡可能簡(jiǎn)潔是當下解決問(wèn)題的最優(yōu)選。也希望在其他方面優(yōu)化,比如說(shuō)每個(gè)頁(yè)面查看每個(gè)賬號的打卡和名字的長(cháng)短都要容易理解,一個(gè)用戶(hù)平時(shí)也不可能打了百十來(lái)次天鴿又有多少漏打的。
  websparksflow每個(gè)頁(yè)面相當于一個(gè)小操作系統,所以每個(gè)頁(yè)面就相當于一個(gè)實(shí)體。所以實(shí)體間的聯(lián)動(dòng)是設計上很重要的問(wèn)題。要考慮操作系統流量的話(huà),就要處理流量因素。天鴿打卡功能要實(shí)現先打個(gè)網(wǎng)頁(yè)接口再打個(gè)程序。如果是單個(gè)頁(yè)面要用戶(hù)下載實(shí)體。 查看全部

  文章采集系統(天鴿軟件的設計簡(jiǎn)單,易上手,h5更小)
  文章采集系統又被人罵了。最近打卡記錄,各種計劃安排和工作任務(wù)全部都被打到時(shí)間段后臺,好一陣兒沒(méi)有動(dòng)靜。于是我就起疑了,畢竟每天都差不多,百萬(wàn)人同時(shí)打卡,怎么可能一個(gè)半小時(shí)每個(gè)人加起來(lái)記錄不到十分鐘?這就引出了今天的主角-天鴿軟件天鴿軟件的設計簡(jiǎn)單,易上手,與墨跡天氣天鴿小程序采用一樣的設計,可以說(shuō)是雙贏(yíng)。
  誰(shuí)都沒(méi)法想象到群活動(dòng)眾籌的人數是多少,效果又是怎樣。(我參與了三次社區打卡活動(dòng),每次都有很多成員參與?。┛墒俏以陧椖刻峤淮a時(shí),有些我一直在想的細節沒(méi)有在里面。我想問(wèn)問(wèn)大家,我們如何在打卡前對天鴿有一個(gè)全局的了解。我得到以下建議。1.可以用客戶(hù)端軟件或者h5(vps架構最好,h5更?。?.如果條件允許,可以使用github提供的服務(wù)(如果有特殊要求,例如禁止修改打卡,就別用)沒(méi)有特殊要求的話(huà),可以用系統記錄。
  總結一下:大家目前遇到的大多數問(wèn)題:不能很方便的在打卡前對每個(gè)事件一一了解我想不失為一個(gè)好辦法。不過(guò)我想聊聊通知大家的一些設計技巧。大家好啊~因為天鴿比較小,一個(gè)賬號可以同時(shí)使用多個(gè)天鴿帳號打卡,但是在一個(gè)天鴿打卡頁(yè)面只能顯示最多四個(gè)天鴿帳號的名字。也就是說(shuō),如果你一個(gè)賬號只有五次打卡,你就只能點(diǎn)到這四個(gè)天鴿。
  除非你每個(gè)天鴿賬號點(diǎn)到天鴿所需要的時(shí)間差是有很大規律的,那么可以通過(guò)兩組不同的重復記錄來(lái)共享當前天鴿帳號,這是我一直想要解決的問(wèn)題。我設計的比較抽象一點(diǎn),都是我腦海中的想法。但是目前的我遇到問(wèn)題的話(huà),我會(huì )盡可能在每個(gè)事件上添加條件,不過(guò)條件要盡可能的簡(jiǎn)潔,不用打太多標簽。一次打卡記錄,要記錄天鴿名字,所以我把天鴿名字改成了“admin”因為我是記錄手機碼的,所以要記錄這個(gè)天鴿賬號的短號。
  但是手機碼好像沒(méi)有打錯號的狀況。所以還有個(gè)方法,把天鴿名字填在背景圖上。背景圖好像沒(méi)有限制,并且我當時(shí)忘記是用哪個(gè)了,用ios記錄的話(huà)其實(shí)是wifi下的圖,考慮到不是很方便,就沒(méi)采用?,F在已經(jīng)是2018年了,距離天鴿產(chǎn)品才發(fā)布不過(guò)三年時(shí)間,設計的盡可能簡(jiǎn)潔是當下解決問(wèn)題的最優(yōu)選。也希望在其他方面優(yōu)化,比如說(shuō)每個(gè)頁(yè)面查看每個(gè)賬號的打卡和名字的長(cháng)短都要容易理解,一個(gè)用戶(hù)平時(shí)也不可能打了百十來(lái)次天鴿又有多少漏打的。
  websparksflow每個(gè)頁(yè)面相當于一個(gè)小操作系統,所以每個(gè)頁(yè)面就相當于一個(gè)實(shí)體。所以實(shí)體間的聯(lián)動(dòng)是設計上很重要的問(wèn)題。要考慮操作系統流量的話(huà),就要處理流量因素。天鴿打卡功能要實(shí)現先打個(gè)網(wǎng)頁(yè)接口再打個(gè)程序。如果是單個(gè)頁(yè)面要用戶(hù)下載實(shí)體。

文章采集系統(學(xué)習基本的java知識(看人)-文章采集系統)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 164 次瀏覽 ? 2021-12-02 03:02 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(學(xué)習基本的java知識(看人)-文章采集系統)
  文章采集系統,原理就是,根據服務(wù)器返回的地址抓包獲取數據抓包,基本上可以抓出http協(xié)議一切方式,當然也包括ajax。springmvc,本來(lái)就是java寫(xiě)的,按我的理解,一切php的東西它都可以抓取。不清楚你需要抓到什么數據。但是json,xml,prototype,jsp,string,這些一般都可以抓取,我不確定你是什么方向的開(kāi)發(fā)人員。
  希望你能自己按項目需求自己創(chuàng )建一個(gè)項目,自己做一個(gè)抓包抓取系統。一步步落實(shí)。不要只是“想想”,走一步看一步。補充一下,這東西抓取有難度,解析就簡(jiǎn)單了。
  學(xué)習基本的java知識(看人),抓包,
  試試
  可以看看我們做的小程序的抓包試試
  自己想象一下如果我需要抓取html全部細節/dom你能理解一切嗎?
  我知道有兩個(gè)小工具,抓取html全部細節,很好用。
  就是ajax請求唄,就是webserver并發(fā)等于nodejs的情況,抓包是很簡(jiǎn)單的技術(shù),但抓包不是項目必要的技術(shù),最實(shí)用的,
  懂一點(diǎn)點(diǎn)簡(jiǎn)單的http協(xié)議,能抓取一些xml文件之類(lèi)的,不過(guò)大量的話(huà)并不好找,我們公司的目標是百萬(wàn)級別,這樣可以解決一些難以找到的細節,比如那種數據不能有重復, 查看全部

  文章采集系統(學(xué)習基本的java知識(看人)-文章采集系統)
  文章采集系統,原理就是,根據服務(wù)器返回的地址抓包獲取數據抓包,基本上可以抓出http協(xié)議一切方式,當然也包括ajax。springmvc,本來(lái)就是java寫(xiě)的,按我的理解,一切php的東西它都可以抓取。不清楚你需要抓到什么數據。但是json,xml,prototype,jsp,string,這些一般都可以抓取,我不確定你是什么方向的開(kāi)發(fā)人員。
  希望你能自己按項目需求自己創(chuàng )建一個(gè)項目,自己做一個(gè)抓包抓取系統。一步步落實(shí)。不要只是“想想”,走一步看一步。補充一下,這東西抓取有難度,解析就簡(jiǎn)單了。
  學(xué)習基本的java知識(看人),抓包,
  試試
  可以看看我們做的小程序的抓包試試
  自己想象一下如果我需要抓取html全部細節/dom你能理解一切嗎?
  我知道有兩個(gè)小工具,抓取html全部細節,很好用。
  就是ajax請求唄,就是webserver并發(fā)等于nodejs的情況,抓包是很簡(jiǎn)單的技術(shù),但抓包不是項目必要的技術(shù),最實(shí)用的,
  懂一點(diǎn)點(diǎn)簡(jiǎn)單的http協(xié)議,能抓取一些xml文件之類(lèi)的,不過(guò)大量的話(huà)并不好找,我們公司的目標是百萬(wàn)級別,這樣可以解決一些難以找到的細節,比如那種數據不能有重復,

文章采集系統(快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 138 次瀏覽 ? 2021-11-29 01:05 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞)
  文章采集系統是社交網(wǎng)絡(luò )最重要的傳播載體之一,其價(jià)值不言而喻。很多時(shí)候,傳播效果受多種因素的影響,每種因素也都有較好的和較差的結果。即使只采集互聯(lián)網(wǎng)搜索結果中比較相關(guān)的內容,也會(huì )有非常大的不同。因此,在選擇e2se2se采集系統時(shí),除了考慮采集網(wǎng)站的大量頁(yè)面等因素外,還要看采集效果指標和對應網(wǎng)站的表現指標之間的差異。
  快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞還是相關(guān)內容?前者是指用python來(lái)采集網(wǎng)頁(yè),相關(guān)內容指的是通過(guò)關(guān)鍵詞采集任何網(wǎng)站的內容?每個(gè)人做網(wǎng)站所面對的需求不同,python數據采集的方式肯定有很多種,
  樓主可以從兩方面判斷:1是可視化、2是簡(jiǎn)單易用
  確定要的方向,是從搜索引擎抓取,還是從百度seo抓取,或者是搜索網(wǎng)站全文檢索。不一樣的方向,所需要的爬蟲(chóng)語(yǔ)言也會(huì )有所不同。
  工欲善其事必先利其器
  采集數據樣式很重要有自定義框架的語(yǔ)言。如selenium什么的這類(lèi)工具。最后需要個(gè)采集軟件,解決網(wǎng)頁(yè)各種目錄,各種定位方式的問(wèn)題。
  看你用什么爬蟲(chóng)了,后期對接的方式。
  網(wǎng)頁(yè)數據采集并不難,難的是你需要采集多少數據,一個(gè)數據為基礎,其他的數據都是輔助。比如你有個(gè)歌詞網(wǎng)站,而你有采集歌詞功能,網(wǎng)頁(yè)為單行單句采集的話(huà),你需要需要根據歌詞里面的具體的長(cháng)度數據進(jìn)行定位,有人會(huì )說(shuō)這個(gè)也算是數據采集了,需要進(jìn)行統計,所以我的看法是這樣的,網(wǎng)頁(yè)采集你需要打算采集多少數據,這樣你才會(huì )根據你需要采集多少來(lái)做規劃,一個(gè)網(wǎng)頁(yè)的數據量大概是多少。只有規劃好了才知道你想采集的具體目標。 查看全部

  文章采集系統(快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞)
  文章采集系統是社交網(wǎng)絡(luò )最重要的傳播載體之一,其價(jià)值不言而喻。很多時(shí)候,傳播效果受多種因素的影響,每種因素也都有較好的和較差的結果。即使只采集互聯(lián)網(wǎng)搜索結果中比較相關(guān)的內容,也會(huì )有非常大的不同。因此,在選擇e2se2se采集系統時(shí),除了考慮采集網(wǎng)站的大量頁(yè)面等因素外,還要看采集效果指標和對應網(wǎng)站的表現指標之間的差異。
  快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞還是相關(guān)內容?前者是指用python來(lái)采集網(wǎng)頁(yè),相關(guān)內容指的是通過(guò)關(guān)鍵詞采集任何網(wǎng)站的內容?每個(gè)人做網(wǎng)站所面對的需求不同,python數據采集的方式肯定有很多種,
  樓主可以從兩方面判斷:1是可視化、2是簡(jiǎn)單易用
  確定要的方向,是從搜索引擎抓取,還是從百度seo抓取,或者是搜索網(wǎng)站全文檢索。不一樣的方向,所需要的爬蟲(chóng)語(yǔ)言也會(huì )有所不同。
  工欲善其事必先利其器
  采集數據樣式很重要有自定義框架的語(yǔ)言。如selenium什么的這類(lèi)工具。最后需要個(gè)采集軟件,解決網(wǎng)頁(yè)各種目錄,各種定位方式的問(wèn)題。
  看你用什么爬蟲(chóng)了,后期對接的方式。
  網(wǎng)頁(yè)數據采集并不難,難的是你需要采集多少數據,一個(gè)數據為基礎,其他的數據都是輔助。比如你有個(gè)歌詞網(wǎng)站,而你有采集歌詞功能,網(wǎng)頁(yè)為單行單句采集的話(huà),你需要需要根據歌詞里面的具體的長(cháng)度數據進(jìn)行定位,有人會(huì )說(shuō)這個(gè)也算是數據采集了,需要進(jìn)行統計,所以我的看法是這樣的,網(wǎng)頁(yè)采集你需要打算采集多少數據,這樣你才會(huì )根據你需要采集多少來(lái)做規劃,一個(gè)網(wǎng)頁(yè)的數據量大概是多少。只有規劃好了才知道你想采集的具體目標。

文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 225 次瀏覽 ? 2021-11-25 20:41 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦上的安卓模擬器。ios的微信客戶(hù)端在批處理采集過(guò)程中,經(jīng)實(shí)際測試,崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意一個(gè)公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到以/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦上的安卓模擬器。ios的微信客戶(hù)端在批處理采集過(guò)程中,經(jīng)實(shí)際測試,崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意一個(gè)公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到以/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

文章采集系統(給出Elasticsearch+Logstash收集日志管理的第一件事,就是日志的收集)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2021-11-22 00:25 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(給出Elasticsearch+Logstash收集日志管理的第一件事,就是日志的收集)
  先給個(gè)人絕對最好的工具:ELK
  Elasticsearch+Logstash+Kibana
  采集日志
  日志管理的第一件事就是采集日志。日志采集是開(kāi)發(fā)者必備的技能。無(wú)論是哪種開(kāi)發(fā)語(yǔ)言或平臺,日志采集的插件都有很多選擇。例如:
  .net平臺上大家都喜歡的Log4net,支持多種存儲方式(文件、數據庫)、多種格式、多種日志拆分方式。
  java平臺主流的log4j、slf4j、logback有多種選擇。
  日志采集的組成部分這里不做說(shuō)明。用法非常簡(jiǎn)單。這里重點(diǎn)說(shuō)明一下,我們在采集日志時(shí)應該注意的幾點(diǎn):
  1. 日志級別必須標準化
  級別描述 debug 調試信息 info 用于采集感興趣的信息 warn 警告信息 error 錯誤信息
  許多開(kāi)發(fā)工程師總是喜歡使用 info 級別來(lái)記錄日志。通用組件的默認級別是info,默認會(huì )記錄所有信息。調試信息發(fā)布后,將不會(huì )被記錄。這是一種懶惰的做法,但也是一種非常普遍的做法。正確的做法是根據日志本身的特點(diǎn)設置日志級別。其實(shí)標準化的日志級別很重要:
  2. 錯誤日志的內容一定要詳細,信息日志要簡(jiǎn)潔易懂
  操作過(guò)大型系統的人都知道,除了數據庫存儲之外,日志、圖片、附件是存儲的三大債權人。它們占據了非常非常大的空間。所有記錄信息的日志都應該簡(jiǎn)潔易懂,以避免浪費空間。. 對于錯誤級別的錯誤,必須詳細記錄,因為所有錯誤的問(wèn)題都會(huì )在以后解決。
  為了對當時(shí)發(fā)生錯誤的場(chǎng)景有一個(gè)很好的反饋,上面的內容應該記錄下來(lái),越詳細越好。
  3. 錯誤日志必須全局采集
  前面說(shuō)過(guò),錯誤日志不僅是我們需要關(guān)注的,也是我需要解決的問(wèn)題。所有錯誤日志都非常重要。錯誤日志的采集必須全局采集。AOP 是您最好的合作伙伴。如果你發(fā)現你的errorr日志集合在每個(gè)類(lèi)別中,到處都有
  try
{
......
}
catch()
{
log.error("......")
}
  必須避免這種情況。無(wú)論使用哪種語(yǔ)言,錯誤處理都可以全局處理,錯誤日志也必須全局采集。
  管理日志
  每個(gè)開(kāi)發(fā)人員都非常熟悉日志的采集?;旧?,日志是根據日期存儲的。日常使用日志時(shí),還有一些要求:
  1. 需要控制單個(gè)文件的大小
  因為大家都是按日期保存的,但是因為有些人不注意日志,經(jīng)??吹接械南到y單個(gè)日志文件有幾百兆,有的甚至有幾千兆。其實(shí)大家都在關(guān)注最新的問(wèn)題。日志,所以控制單個(gè)日志文件的大小對于日志性能和后期運維非常方便。
  2. 日志應該易于瀏覽
  日志文件便于年輕人瀏覽。最好直接通過(guò)URL訪(fǎng)問(wèn)日志,而不是一波三折的登陸服務(wù)器。下載并再次分析需要10分鐘。
  3. 必須保證日志的安全
  日志內容有時(shí)收錄敏感信息,尤其是錯誤日志,直接拋出系統的具體錯誤。因此,除了方便查看日志之外,還要保證日志文件的安全性。如果日志文件是 html 或 txt,請記得修改您的日志文件權限,以便只有特定用戶(hù)可以訪(fǎng)問(wèn)它。不要隨便打開(kāi),每個(gè)人都可以訪(fǎng)問(wèn)。
  4. 應該定期清理日志
  日志占用大量的存儲空間,過(guò)大的日志也會(huì )對存儲性能產(chǎn)生一定的影響。應定期清理所有日志。
  當然,這個(gè)是不確定的,根據各個(gè)系統的情況制定一個(gè)清理計劃即可。
  如果你是一個(gè)小網(wǎng)站,一系統一服務(wù)器,日志管理就簡(jiǎn)單了。如果系統高可用,后端采用均衡負載,將日志存儲在當前服務(wù)器上是不明智的。日志必須統一存儲,因為均衡負載可能會(huì )隨時(shí)切換服務(wù)器。當發(fā)生故障時(shí),你需要找出日志存在于哪個(gè)服務(wù)器也是浪費時(shí)間。也可以傳遞日志文件:
  說(shuō)到日志同步,就不得不提到Logstash的日志組件。Logstash是目前使用最廣泛的日志采集組件,基于java平臺。其實(shí)java平臺的很多組件不需要懂java開(kāi)發(fā),只要簡(jiǎn)單配置一下就可以使用。
  Logstash 支持文件同步。也可以結合rsyslog進(jìn)行文件同步。當然,它也支持通過(guò)tcp協(xié)議與第三方連接。好的合作伙伴當然是 Elasticsearch。下面也會(huì )簡(jiǎn)單介紹一下Elasticsearch。
  Logstash中文手冊:點(diǎn)此
  分析日志
  日志分析也是一個(gè)大概念??赡苁窍到y的所有日志,包括訪(fǎng)問(wèn)日志、系統監控日志等,都是運維人員關(guān)心的,但是開(kāi)發(fā)者更關(guān)心的是日志:
  因此,開(kāi)發(fā)者對日志的要求比較簡(jiǎn)單,但處理不當也會(huì )面臨挑戰。如果你想根據某些關(guān)鍵字查找日志,又沒(méi)有可靠的系統進(jìn)行處理,那么你只能在ctrl+f或find命令中搜索你需要的信息。用過(guò)的人都知道,這絕對不是很好的體驗。那么有沒(méi)有好的工具來(lái)處理呢?是的,這里還有另外兩個(gè)工具:
  Kibana 界面預覽
  
  Elasticsearch+Logstash+Kibana是傳說(shuō)中的ELK,應該是現在最流行的日志處理平臺。
  Elasticsearch 中文文檔:點(diǎn)此 ELK 中文文檔:點(diǎn)此
  結尾
  下面簡(jiǎn)單介紹一下我心目中的日志管理系統。整體流程如圖:
  
  雖然推薦的工具是針對Java平臺的,但是無(wú)論平臺如何,日志處理的思路都是一樣的。如果ELK只作為日志管理工具,也可以應用到.net平臺,不用二次開(kāi)發(fā)也能很好用。ELK的使用有一定的學(xué)習成本。如果你有時(shí)間,你可以開(kāi)始單獨的文章來(lái)討論它。但是,這種學(xué)習成本可以忽略語(yǔ)言之間的差異。
  當然,如果你愿意使用腳本同步或者rsyn文件同步進(jìn)行日志處理,也是可以的。 查看全部

  文章采集系統(給出Elasticsearch+Logstash收集日志管理的第一件事,就是日志的收集)
  先給個(gè)人絕對最好的工具:ELK
  Elasticsearch+Logstash+Kibana
  采集日志
  日志管理的第一件事就是采集日志。日志采集是開(kāi)發(fā)者必備的技能。無(wú)論是哪種開(kāi)發(fā)語(yǔ)言或平臺,日志采集的插件都有很多選擇。例如:
  .net平臺上大家都喜歡的Log4net,支持多種存儲方式(文件、數據庫)、多種格式、多種日志拆分方式。
  java平臺主流的log4j、slf4j、logback有多種選擇。
  日志采集的組成部分這里不做說(shuō)明。用法非常簡(jiǎn)單。這里重點(diǎn)說(shuō)明一下,我們在采集日志時(shí)應該注意的幾點(diǎn):
  1. 日志級別必須標準化
  級別描述 debug 調試信息 info 用于采集感興趣的信息 warn 警告信息 error 錯誤信息
  許多開(kāi)發(fā)工程師總是喜歡使用 info 級別來(lái)記錄日志。通用組件的默認級別是info,默認會(huì )記錄所有信息。調試信息發(fā)布后,將不會(huì )被記錄。這是一種懶惰的做法,但也是一種非常普遍的做法。正確的做法是根據日志本身的特點(diǎn)設置日志級別。其實(shí)標準化的日志級別很重要:
  2. 錯誤日志的內容一定要詳細,信息日志要簡(jiǎn)潔易懂
  操作過(guò)大型系統的人都知道,除了數據庫存儲之外,日志、圖片、附件是存儲的三大債權人。它們占據了非常非常大的空間。所有記錄信息的日志都應該簡(jiǎn)潔易懂,以避免浪費空間。. 對于錯誤級別的錯誤,必須詳細記錄,因為所有錯誤的問(wèn)題都會(huì )在以后解決。
  為了對當時(shí)發(fā)生錯誤的場(chǎng)景有一個(gè)很好的反饋,上面的內容應該記錄下來(lái),越詳細越好。
  3. 錯誤日志必須全局采集
  前面說(shuō)過(guò),錯誤日志不僅是我們需要關(guān)注的,也是我需要解決的問(wèn)題。所有錯誤日志都非常重要。錯誤日志的采集必須全局采集。AOP 是您最好的合作伙伴。如果你發(fā)現你的errorr日志集合在每個(gè)類(lèi)別中,到處都有
  try
{
......
}
catch()
{
log.error("......")
}
  必須避免這種情況。無(wú)論使用哪種語(yǔ)言,錯誤處理都可以全局處理,錯誤日志也必須全局采集。
  管理日志
  每個(gè)開(kāi)發(fā)人員都非常熟悉日志的采集?;旧?,日志是根據日期存儲的。日常使用日志時(shí),還有一些要求:
  1. 需要控制單個(gè)文件的大小
  因為大家都是按日期保存的,但是因為有些人不注意日志,經(jīng)??吹接械南到y單個(gè)日志文件有幾百兆,有的甚至有幾千兆。其實(shí)大家都在關(guān)注最新的問(wèn)題。日志,所以控制單個(gè)日志文件的大小對于日志性能和后期運維非常方便。
  2. 日志應該易于瀏覽
  日志文件便于年輕人瀏覽。最好直接通過(guò)URL訪(fǎng)問(wèn)日志,而不是一波三折的登陸服務(wù)器。下載并再次分析需要10分鐘。
  3. 必須保證日志的安全
  日志內容有時(shí)收錄敏感信息,尤其是錯誤日志,直接拋出系統的具體錯誤。因此,除了方便查看日志之外,還要保證日志文件的安全性。如果日志文件是 html 或 txt,請記得修改您的日志文件權限,以便只有特定用戶(hù)可以訪(fǎng)問(wèn)它。不要隨便打開(kāi),每個(gè)人都可以訪(fǎng)問(wèn)。
  4. 應該定期清理日志
  日志占用大量的存儲空間,過(guò)大的日志也會(huì )對存儲性能產(chǎn)生一定的影響。應定期清理所有日志。
  當然,這個(gè)是不確定的,根據各個(gè)系統的情況制定一個(gè)清理計劃即可。
  如果你是一個(gè)小網(wǎng)站,一系統一服務(wù)器,日志管理就簡(jiǎn)單了。如果系統高可用,后端采用均衡負載,將日志存儲在當前服務(wù)器上是不明智的。日志必須統一存儲,因為均衡負載可能會(huì )隨時(shí)切換服務(wù)器。當發(fā)生故障時(shí),你需要找出日志存在于哪個(gè)服務(wù)器也是浪費時(shí)間。也可以傳遞日志文件:
  說(shuō)到日志同步,就不得不提到Logstash的日志組件。Logstash是目前使用最廣泛的日志采集組件,基于java平臺。其實(shí)java平臺的很多組件不需要懂java開(kāi)發(fā),只要簡(jiǎn)單配置一下就可以使用。
  Logstash 支持文件同步。也可以結合rsyslog進(jìn)行文件同步。當然,它也支持通過(guò)tcp協(xié)議與第三方連接。好的合作伙伴當然是 Elasticsearch。下面也會(huì )簡(jiǎn)單介紹一下Elasticsearch。
  Logstash中文手冊:點(diǎn)此
  分析日志
  日志分析也是一個(gè)大概念??赡苁窍到y的所有日志,包括訪(fǎng)問(wèn)日志、系統監控日志等,都是運維人員關(guān)心的,但是開(kāi)發(fā)者更關(guān)心的是日志:
  因此,開(kāi)發(fā)者對日志的要求比較簡(jiǎn)單,但處理不當也會(huì )面臨挑戰。如果你想根據某些關(guān)鍵字查找日志,又沒(méi)有可靠的系統進(jìn)行處理,那么你只能在ctrl+f或find命令中搜索你需要的信息。用過(guò)的人都知道,這絕對不是很好的體驗。那么有沒(méi)有好的工具來(lái)處理呢?是的,這里還有另外兩個(gè)工具:
  Kibana 界面預覽
  
  Elasticsearch+Logstash+Kibana是傳說(shuō)中的ELK,應該是現在最流行的日志處理平臺。
  Elasticsearch 中文文檔:點(diǎn)此 ELK 中文文檔:點(diǎn)此
  結尾
  下面簡(jiǎn)單介紹一下我心目中的日志管理系統。整體流程如圖:
  
  雖然推薦的工具是針對Java平臺的,但是無(wú)論平臺如何,日志處理的思路都是一樣的。如果ELK只作為日志管理工具,也可以應用到.net平臺,不用二次開(kāi)發(fā)也能很好用。ELK的使用有一定的學(xué)習成本。如果你有時(shí)間,你可以開(kāi)始單獨的文章來(lái)討論它。但是,這種學(xué)習成本可以忽略語(yǔ)言之間的差異。
  當然,如果你愿意使用腳本同步或者rsyn文件同步進(jìn)行日志處理,也是可以的。

文章采集系統(第一次使用springcloud架構來(lái)做爬蟲(chóng),歷時(shí)二十多天,終于搞定)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2021-11-20 13:12 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(第一次使用springcloud架構來(lái)做爬蟲(chóng),歷時(shí)二十多天,終于搞定)
  大家好,我是趣識網(wǎng)小柴,本文文章將與大家分享基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統。我希望它會(huì )對你有所幫助。
  前言
  因公司業(yè)務(wù)需要,需要獲取客戶(hù)提供的微信公眾號文章的歷史記錄,并每天更新。顯然,300多個(gè)公眾號無(wú)法每天手動(dòng)檢查,問(wèn)題提交給IT團隊。對于喜歡爬蟲(chóng)的人來(lái)說(shuō),我絕對想要他。之前做過(guò)搜狗的微信爬蟲(chóng),之后一直在做java web。這個(gè)項目重新點(diǎn)燃了我對爬蟲(chóng)的熱愛(ài)。首次使用spring cloud架構做爬蟲(chóng)。歷時(shí)20多天,終于搞定。接下來(lái)我將通過(guò)一系列文章分享項目經(jīng)驗,并提供源碼供大家指正!
  一、系統介紹
  本系統是基于Java開(kāi)發(fā)的。只需配置公眾號或微信公眾號,即可定時(shí)或即時(shí)(包括閱讀、點(diǎn)贊、觀(guān)看)抓取微信公眾號的文章。
  二、系統架構
  技術(shù)架構
  Spring Cloud、SpringBoot、Mybatis-Plus、Nacos、RocketMq、nginx
  貯存
  Mysql、MongoDB、Redis、Solr
  緩存
  Redis
  演戲
  提琴手
  三、系統優(yōu)缺點(diǎn)
  系統優(yōu)勢
  1、 配置公眾號后,可以使用Fiddler的JS注入功能和Websocket實(shí)現自動(dòng)爬??;2、 系統為分布式架構,高可用;3、RocketMq 消息隊列解決Coupling,可以解決采集由于網(wǎng)絡(luò )抖動(dòng)導致的失敗。3次消費不成功,會(huì )記錄日志到mysql,保證文章的完整性;4、可以添加任意數量的微信ID提高采集的效率,抵抗反攀登限制;5、Redis在24小時(shí)內緩存每個(gè)微信賬號的采集記錄,防止賬號被關(guān)閉;6、Nacos作為配置中心,可以通過(guò)熱配置調整采集的頻率 實(shí)時(shí); 7、將采集接收到的數據存儲在Solr集群中,提高檢索速度;8、 將捕獲返回的記錄存儲到MongoDB進(jìn)行歸檔查看錯誤日志。
  系統缺點(diǎn):
  1、通過(guò)真實(shí)手機真實(shí)賬號采集留言,如果你需要大量公眾號,需要有多個(gè)微信賬號作為支持(如果當天賬號達到上限,可以爬取微信官方平臺消息,可通過(guò)接口獲?。?;2、 不是發(fā)文就可以抓到的公眾號。采集的時(shí)間由系統設置,消息有一定的滯后性(如果公眾號不多的話(huà),微信信號數量就足夠了。通過(guò)增加采集頻率優(yōu)化)。
  四、模塊介紹
  由于后面會(huì )添加管理系統和API調用函數,所以提前封裝了一些函數。
  common-ws-starter
  公共模塊:存儲工具類(lèi)、實(shí)體類(lèi)等公共消息。
  redis-ws-starter
  Redis 模塊:是
  spring-boot-starter-data-redis的第二個(gè)包暴露了打包好的Redis工具類(lèi)和Redisson工具類(lèi)。
  RocketMQ-WS-啟動(dòng)器
  RocketMQ 模塊:是
  Rocketmq-spring-boot-starter 的二次封裝提供了消費重試和故障日志記錄功能。
  db-ws-starter
  mysql數據源模塊:封裝mysql數據源,支持多數據源,自定義注解實(shí)現數據源動(dòng)態(tài)切換。
  sql-wx-蜘蛛
  mysql數據庫模塊:提供mysql數據庫操作的所有功能。
  pc-wx-蜘蛛
  PC端采集模塊:收錄PC端采集公眾賬號歷史消息相關(guān)功能。
  java-wx-蜘蛛
  Java提取模塊:收錄Java程序提取文章內容相關(guān)的功能。
  移動(dòng)-wx-蜘蛛
  模擬器采集模塊:收錄與模擬器或手機采集消息交互量相關(guān)的功能。
  五、一般流程圖
  
  
  六、 運行截圖
  電腦和手機
  
  
  
  
  安慰
  
  
  
  
  
  
  運行結束
  
  
  總結
  親測項目現已上線(xiàn),項目開(kāi)發(fā)中解決了微信搜狗臨時(shí)鏈接永久鏈接問(wèn)題,希望能幫助到被同類(lèi)業(yè)務(wù)困擾的老鐵。如今,做java就像逆流而上。不前進(jìn)就會(huì )后退。我不知道你什么時(shí)候參與。我希望每個(gè)人都有自己的向日葵采集。如果你看到這個(gè),你不把它給一個(gè)采集嗎?
  以上是小柴分享的基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統的全部?jì)热?。我希望它?huì )對你有所幫助。 查看全部

  文章采集系統(第一次使用springcloud架構來(lái)做爬蟲(chóng),歷時(shí)二十多天,終于搞定)
  大家好,我是趣識網(wǎng)小柴,本文文章將與大家分享基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統。我希望它會(huì )對你有所幫助。
  前言
  因公司業(yè)務(wù)需要,需要獲取客戶(hù)提供的微信公眾號文章的歷史記錄,并每天更新。顯然,300多個(gè)公眾號無(wú)法每天手動(dòng)檢查,問(wèn)題提交給IT團隊。對于喜歡爬蟲(chóng)的人來(lái)說(shuō),我絕對想要他。之前做過(guò)搜狗的微信爬蟲(chóng),之后一直在做java web。這個(gè)項目重新點(diǎn)燃了我對爬蟲(chóng)的熱愛(ài)。首次使用spring cloud架構做爬蟲(chóng)。歷時(shí)20多天,終于搞定。接下來(lái)我將通過(guò)一系列文章分享項目經(jīng)驗,并提供源碼供大家指正!
  一、系統介紹
  本系統是基于Java開(kāi)發(fā)的。只需配置公眾號或微信公眾號,即可定時(shí)或即時(shí)(包括閱讀、點(diǎn)贊、觀(guān)看)抓取微信公眾號的文章。
  二、系統架構
  技術(shù)架構
  Spring Cloud、SpringBoot、Mybatis-Plus、Nacos、RocketMq、nginx
  貯存
  Mysql、MongoDB、Redis、Solr
  緩存
  Redis
  演戲
  提琴手
  三、系統優(yōu)缺點(diǎn)
  系統優(yōu)勢
  1、 配置公眾號后,可以使用Fiddler的JS注入功能和Websocket實(shí)現自動(dòng)爬??;2、 系統為分布式架構,高可用;3、RocketMq 消息隊列解決Coupling,可以解決采集由于網(wǎng)絡(luò )抖動(dòng)導致的失敗。3次消費不成功,會(huì )記錄日志到mysql,保證文章的完整性;4、可以添加任意數量的微信ID提高采集的效率,抵抗反攀登限制;5、Redis在24小時(shí)內緩存每個(gè)微信賬號的采集記錄,防止賬號被關(guān)閉;6、Nacos作為配置中心,可以通過(guò)熱配置調整采集的頻率 實(shí)時(shí); 7、將采集接收到的數據存儲在Solr集群中,提高檢索速度;8、 將捕獲返回的記錄存儲到MongoDB進(jìn)行歸檔查看錯誤日志。
  系統缺點(diǎn):
  1、通過(guò)真實(shí)手機真實(shí)賬號采集留言,如果你需要大量公眾號,需要有多個(gè)微信賬號作為支持(如果當天賬號達到上限,可以爬取微信官方平臺消息,可通過(guò)接口獲?。?;2、 不是發(fā)文就可以抓到的公眾號。采集的時(shí)間由系統設置,消息有一定的滯后性(如果公眾號不多的話(huà),微信信號數量就足夠了。通過(guò)增加采集頻率優(yōu)化)。
  四、模塊介紹
  由于后面會(huì )添加管理系統和API調用函數,所以提前封裝了一些函數。
  common-ws-starter
  公共模塊:存儲工具類(lèi)、實(shí)體類(lèi)等公共消息。
  redis-ws-starter
  Redis 模塊:是
  spring-boot-starter-data-redis的第二個(gè)包暴露了打包好的Redis工具類(lèi)和Redisson工具類(lèi)。
  RocketMQ-WS-啟動(dòng)器
  RocketMQ 模塊:是
  Rocketmq-spring-boot-starter 的二次封裝提供了消費重試和故障日志記錄功能。
  db-ws-starter
  mysql數據源模塊:封裝mysql數據源,支持多數據源,自定義注解實(shí)現數據源動(dòng)態(tài)切換。
  sql-wx-蜘蛛
  mysql數據庫模塊:提供mysql數據庫操作的所有功能。
  pc-wx-蜘蛛
  PC端采集模塊:收錄PC端采集公眾賬號歷史消息相關(guān)功能。
  java-wx-蜘蛛
  Java提取模塊:收錄Java程序提取文章內容相關(guān)的功能。
  移動(dòng)-wx-蜘蛛
  模擬器采集模塊:收錄與模擬器或手機采集消息交互量相關(guān)的功能。
  五、一般流程圖
  
  
  六、 運行截圖
  電腦和手機
  
  
  
  
  安慰
  
  
  
  
  
  
  運行結束
  
  
  總結
  親測項目現已上線(xiàn),項目開(kāi)發(fā)中解決了微信搜狗臨時(shí)鏈接永久鏈接問(wèn)題,希望能幫助到被同類(lèi)業(yè)務(wù)困擾的老鐵。如今,做java就像逆流而上。不前進(jìn)就會(huì )后退。我不知道你什么時(shí)候參與。我希望每個(gè)人都有自己的向日葵采集。如果你看到這個(gè),你不把它給一個(gè)采集嗎?
  以上是小柴分享的基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統的全部?jì)热?。我希望它?huì )對你有所幫助。

文章采集系統(ok點(diǎn)擊排行榜排行榜統計代碼ok定時(shí)采集:ok數據庫)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 100 次瀏覽 ? 2021-11-20 01:16 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(ok點(diǎn)擊排行榜排行榜統計代碼ok定時(shí)采集:ok數據庫)
  #ebookapp 概述:新穎的采集系統基于bootstrap前端技術(shù),手機瀏覽效果更佳。演示 網(wǎng)站:
  我是小說(shuō)迷。在看小說(shuō)的過(guò)程中,遇到了n多個(gè)彈窗廣告,喜歡手機瀏覽。被無(wú)數彈窗廣告激怒后,我決定自己寫(xiě)小說(shuō)系統。
  因為一個(gè)人的開(kāi)發(fā)精力有限,非常歡迎對開(kāi)源軟件開(kāi)發(fā)有興趣、有分享精神的軟件開(kāi)發(fā)者和我一起開(kāi)發(fā)。
  聯(lián)系方式請加入QQ群:55614858 驗證信息:開(kāi)源愛(ài)好者
  發(fā)展清單:
  1.新分類(lèi)2.新種子3.采集文章4.采集目錄5.生成目錄6.采集 內容的基本思想是在cronjob定時(shí)采集生成種子,文章只有在讀取action時(shí)生成文章,而文章只有在讀取動(dòng)作時(shí)才會(huì )生成章節列表,章節列表只有在讀取動(dòng)作后才會(huì )生成章節內容。
  第一期:2013/08/24-2013/08/27 搜索==ok分頁(yè)==ok關(guān)鍵詞oktitleok點(diǎn)擊排行榜ok統計代碼ok計時(shí)采集:ok(每次找到,今天沒(méi)有更新過(guò)去的種子更新每10分鐘采集,一天24小時(shí),采集144次定期執行(admin/pick_seed.php)。
  第二段:定時(shí)刪除:刪除生成文件數最少的N個(gè)文章??梢栽O置最大存活文章數量。ok修改頁(yè)面301跳轉機制,301不好搜索引擎收錄 ok加入種子批量添加機制。好的
  第三期:
  文章在連載中,需要1小時(shí)加入緩存加入作者采集ok join文章圖片ok
  數據庫常用封裝支持,封裝為Model類(lèi),簡(jiǎn)化操作。好的
  采集 當你把文章的介紹加上圖片、作者??等采集時(shí),補充機制不再使用 ok 顯示用戶(hù)點(diǎn)擊列表,顯示最新更新,并生成 siteMap.xml.() ok 對于小站點(diǎn),php的并發(fā)進(jìn)程數是有限制的。比如進(jìn)程數限制為3個(gè),這時(shí)候如果訪(fǎng)問(wèn)的用戶(hù)比較多,經(jīng)常會(huì )出現508錯誤。為了解決這個(gè)問(wèn)題,可以使用完全靜態(tài)的方法。
  用戶(hù)中心,支持微博登錄,顯示最近閱讀文章,顯示采集文章
  文章采集 將文章的內容寫(xiě)入txt文件時(shí),不再支持生成現成的html文件,動(dòng)態(tài)生成html文件。為什么ajax不能動(dòng)態(tài)生成廣告頁(yè)面?去除cpm廣告,增加對cps和cpc廣告的支持,手機加載手機廣告,這是廣告生成模塊的職責。對于每次點(diǎn)擊費用廣告,javascript 可以模擬點(diǎn)擊添加種子。采集路由機制,根據不同的配置,不同的采集rule ok劃分頁(yè)面公共頁(yè)眉和公共頁(yè)腳頁(yè)面(目前只有一個(gè)首頁(yè),其他暫時(shí)做不到)
  自動(dòng)生成表的增刪改查等操作。添加文章介紹頁(yè)面,顯示最新章節
  定期生成站點(diǎn)地圖:
  自動(dòng)發(fā)布微博:
  自動(dòng)抓取文章列表為空的文章列表(原理:文章列表每天自動(dòng)更新,點(diǎn)擊時(shí)抓取章節,點(diǎn)擊時(shí)抓取內容點(diǎn)擊)
  定時(shí)任務(wù):wget -q -O /dev/null "" 查看全部

  文章采集系統(ok點(diǎn)擊排行榜排行榜統計代碼ok定時(shí)采集:ok數據庫)
  #ebookapp 概述:新穎的采集系統基于bootstrap前端技術(shù),手機瀏覽效果更佳。演示 網(wǎng)站:
  我是小說(shuō)迷。在看小說(shuō)的過(guò)程中,遇到了n多個(gè)彈窗廣告,喜歡手機瀏覽。被無(wú)數彈窗廣告激怒后,我決定自己寫(xiě)小說(shuō)系統。
  因為一個(gè)人的開(kāi)發(fā)精力有限,非常歡迎對開(kāi)源軟件開(kāi)發(fā)有興趣、有分享精神的軟件開(kāi)發(fā)者和我一起開(kāi)發(fā)。
  聯(lián)系方式請加入QQ群:55614858 驗證信息:開(kāi)源愛(ài)好者
  發(fā)展清單:
  1.新分類(lèi)2.新種子3.采集文章4.采集目錄5.生成目錄6.采集 內容的基本思想是在cronjob定時(shí)采集生成種子,文章只有在讀取action時(shí)生成文章,而文章只有在讀取動(dòng)作時(shí)才會(huì )生成章節列表,章節列表只有在讀取動(dòng)作后才會(huì )生成章節內容。
  第一期:2013/08/24-2013/08/27 搜索==ok分頁(yè)==ok關(guān)鍵詞oktitleok點(diǎn)擊排行榜ok統計代碼ok計時(shí)采集:ok(每次找到,今天沒(méi)有更新過(guò)去的種子更新每10分鐘采集,一天24小時(shí),采集144次定期執行(admin/pick_seed.php)。
  第二段:定時(shí)刪除:刪除生成文件數最少的N個(gè)文章??梢栽O置最大存活文章數量。ok修改頁(yè)面301跳轉機制,301不好搜索引擎收錄 ok加入種子批量添加機制。好的
  第三期:
  文章在連載中,需要1小時(shí)加入緩存加入作者采集ok join文章圖片ok
  數據庫常用封裝支持,封裝為Model類(lèi),簡(jiǎn)化操作。好的
  采集 當你把文章的介紹加上圖片、作者??等采集時(shí),補充機制不再使用 ok 顯示用戶(hù)點(diǎn)擊列表,顯示最新更新,并生成 siteMap.xml.() ok 對于小站點(diǎn),php的并發(fā)進(jìn)程數是有限制的。比如進(jìn)程數限制為3個(gè),這時(shí)候如果訪(fǎng)問(wèn)的用戶(hù)比較多,經(jīng)常會(huì )出現508錯誤。為了解決這個(gè)問(wèn)題,可以使用完全靜態(tài)的方法。
  用戶(hù)中心,支持微博登錄,顯示最近閱讀文章,顯示采集文章
  文章采集 將文章的內容寫(xiě)入txt文件時(shí),不再支持生成現成的html文件,動(dòng)態(tài)生成html文件。為什么ajax不能動(dòng)態(tài)生成廣告頁(yè)面?去除cpm廣告,增加對cps和cpc廣告的支持,手機加載手機廣告,這是廣告生成模塊的職責。對于每次點(diǎn)擊費用廣告,javascript 可以模擬點(diǎn)擊添加種子。采集路由機制,根據不同的配置,不同的采集rule ok劃分頁(yè)面公共頁(yè)眉和公共頁(yè)腳頁(yè)面(目前只有一個(gè)首頁(yè),其他暫時(shí)做不到)
  自動(dòng)生成表的增刪改查等操作。添加文章介紹頁(yè)面,顯示最新章節
  定期生成站點(diǎn)地圖:
  自動(dòng)發(fā)布微博:
  自動(dòng)抓取文章列表為空的文章列表(原理:文章列表每天自動(dòng)更新,點(diǎn)擊時(shí)抓取章節,點(diǎn)擊時(shí)抓取內容點(diǎn)擊)
  定時(shí)任務(wù):wget -q -O /dev/null ""

文章采集系統(戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器相關(guān)廠(chǎng)商的基本技術(shù)理念)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 143 次瀏覽 ? 2021-11-17 10:08 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器相關(guān)廠(chǎng)商的基本技術(shù)理念)
  文章采集系統作為企業(yè)it的核心技術(shù),其研發(fā)難度很大,市場(chǎng)較小。本文主要介紹了相關(guān)廠(chǎng)商的基本技術(shù)理念,供大家參考。traceanly,高效高質(zhì),20年專(zhuān)注:大數據采集系統開(kāi)發(fā)我們強調通過(guò)開(kāi)放接口、多流集成、高效率發(fā)展三大優(yōu)勢,幫助企業(yè)積極進(jìn)行創(chuàng )新,主要開(kāi)發(fā)平臺是java平臺和linux平臺。traceanly特色突出:1.前端接口流通,可以是saas,也可以是輕型網(wǎng)站,方便集中式集約化運營(yíng)管理。
  2.sdlietf作為語(yǔ)言開(kāi)發(fā)庫。3.純java語(yǔ)言架構。4.前端網(wǎng)絡(luò )支持以及系統啟動(dòng)后默認自帶路由。5.支持流量傳輸功能和二次封裝功能。6.支持跨地域或多系統集中管理。7.支持對象協(xié)議路由和基于jsonapi的網(wǎng)關(guān)。8.nginx/haproxy負載均衡。9.websocket。10.自研websocket內核。
  11.sls實(shí)現的簡(jiǎn)易服務(wù)器可以在線(xiàn)搭建。12.websocket/tcpapi接口方案可以在局域網(wǎng)或者廣域網(wǎng)部署。13.httpconnector支持tcp粘包/非粘包轉發(fā)、apache在線(xiàn)處理、java異步poller負載均衡等多種類(lèi)型。14.yaml格式靜態(tài)文件轉發(fā)以及binding。15.做客戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器。
  16.mysql:?jiǎn)我簧矸蒡炞C,單一服務(wù)的存儲同步,單一數據庫的關(guān)聯(lián)。17.websocket遠程多語(yǔ)言json實(shí)現,需要備份。18.數據整合(bitconnect/getfilter/postfilter/postmatte/heartbleed/tcp整合/ip整合/timestamp整合)。19.sls/websockethttpsemipolling/metaattribute/gzip/jsonapi/udp整合。
  20.websocket(onlinewebsocketengine,ow)/websocketserver,ssl/tls三種,需要插件做調試和負載均衡。百勝集團:(網(wǎng)絡(luò )集中化管理的平臺):1.客戶(hù)端驅動(dòng)網(wǎng)絡(luò )paas方案。2.連接池網(wǎng)絡(luò )架構。3.指揮平臺集中化。4.支持多個(gè)websocket負載均衡和ssl加密。
  5.圖片云服務(wù),可以綁定各種圖片,國內目前在進(jìn)行minidlc測試,db2也正在測試。6.支持異地圖,如武漢指揮中心。7.用戶(hù)管理。8.圖像重傳。9.客戶(hù)端萬(wàn)維網(wǎng)集中化集中管理。10.圖像重傳,抗tor瀏覽器漏洞。tannerimpl的誕生tannerimpl是阿里云強推的解決方案,它簡(jiǎn)化了無(wú)狀態(tài)無(wú)緩存的無(wú)ip推送,支持http6和post等各種類(lèi)型。
  chinatraceanly更主要側重于無(wú)狀態(tài)無(wú)緩存的網(wǎng)頁(yè)推送,其解決方案是利用現成代碼實(shí)現,支持無(wú)狀態(tài)無(wú)緩存的服務(wù)器進(jìn)行推送。 查看全部

  文章采集系統(戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器相關(guān)廠(chǎng)商的基本技術(shù)理念)
  文章采集系統作為企業(yè)it的核心技術(shù),其研發(fā)難度很大,市場(chǎng)較小。本文主要介紹了相關(guān)廠(chǎng)商的基本技術(shù)理念,供大家參考。traceanly,高效高質(zhì),20年專(zhuān)注:大數據采集系統開(kāi)發(fā)我們強調通過(guò)開(kāi)放接口、多流集成、高效率發(fā)展三大優(yōu)勢,幫助企業(yè)積極進(jìn)行創(chuàng )新,主要開(kāi)發(fā)平臺是java平臺和linux平臺。traceanly特色突出:1.前端接口流通,可以是saas,也可以是輕型網(wǎng)站,方便集中式集約化運營(yíng)管理。
  2.sdlietf作為語(yǔ)言開(kāi)發(fā)庫。3.純java語(yǔ)言架構。4.前端網(wǎng)絡(luò )支持以及系統啟動(dòng)后默認自帶路由。5.支持流量傳輸功能和二次封裝功能。6.支持跨地域或多系統集中管理。7.支持對象協(xié)議路由和基于jsonapi的網(wǎng)關(guān)。8.nginx/haproxy負載均衡。9.websocket。10.自研websocket內核。
  11.sls實(shí)現的簡(jiǎn)易服務(wù)器可以在線(xiàn)搭建。12.websocket/tcpapi接口方案可以在局域網(wǎng)或者廣域網(wǎng)部署。13.httpconnector支持tcp粘包/非粘包轉發(fā)、apache在線(xiàn)處理、java異步poller負載均衡等多種類(lèi)型。14.yaml格式靜態(tài)文件轉發(fā)以及binding。15.做客戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器。
  16.mysql:?jiǎn)我簧矸蒡炞C,單一服務(wù)的存儲同步,單一數據庫的關(guān)聯(lián)。17.websocket遠程多語(yǔ)言json實(shí)現,需要備份。18.數據整合(bitconnect/getfilter/postfilter/postmatte/heartbleed/tcp整合/ip整合/timestamp整合)。19.sls/websockethttpsemipolling/metaattribute/gzip/jsonapi/udp整合。
  20.websocket(onlinewebsocketengine,ow)/websocketserver,ssl/tls三種,需要插件做調試和負載均衡。百勝集團:(網(wǎng)絡(luò )集中化管理的平臺):1.客戶(hù)端驅動(dòng)網(wǎng)絡(luò )paas方案。2.連接池網(wǎng)絡(luò )架構。3.指揮平臺集中化。4.支持多個(gè)websocket負載均衡和ssl加密。
  5.圖片云服務(wù),可以綁定各種圖片,國內目前在進(jìn)行minidlc測試,db2也正在測試。6.支持異地圖,如武漢指揮中心。7.用戶(hù)管理。8.圖像重傳。9.客戶(hù)端萬(wàn)維網(wǎng)集中化集中管理。10.圖像重傳,抗tor瀏覽器漏洞。tannerimpl的誕生tannerimpl是阿里云強推的解決方案,它簡(jiǎn)化了無(wú)狀態(tài)無(wú)緩存的無(wú)ip推送,支持http6和post等各種類(lèi)型。
  chinatraceanly更主要側重于無(wú)狀態(tài)無(wú)緩存的網(wǎng)頁(yè)推送,其解決方案是利用現成代碼實(shí)現,支持無(wú)狀態(tài)無(wú)緩存的服務(wù)器進(jìn)行推送。

文章采集系統(優(yōu)采云·萬(wàn)能文章采集器V1.22優(yōu)采云智能提取網(wǎng)頁(yè)正文的算法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 112 次瀏覽 ? 2021-11-14 22:21 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(優(yōu)采云·萬(wàn)能文章采集器V1.22優(yōu)采云智能提取網(wǎng)頁(yè)正文的算法)
  優(yōu)采云·Universal文章采集器V1.22破解版
  優(yōu)采云Universal文章采集器是一款讓您只需輸入關(guān)鍵詞即可采集各大搜索引擎新聞源和網(wǎng)頁(yè)的軟件。優(yōu)采云該軟件是首創(chuàng )的獨家智能算法,可以準確提取網(wǎng)頁(yè)正文部分并保存為文章。支持去除標簽、鏈接、郵箱等格式處理,插入關(guān)鍵詞的功能,可以識別標簽或標點(diǎn)的插入,可以識別英文空格的插入。還有文章的翻譯功能,可以將文章從一種語(yǔ)言如中文轉成英文或日文等另一種語(yǔ)言,再由英文或日文轉回中文,即是一個(gè)翻譯周期,
  優(yōu)采云Universal文章采集器 一種智能提取網(wǎng)頁(yè)正文的算法。百度新聞、谷歌新聞、搜搜新聞強聚合不時(shí)更新的新聞資源,取之不盡用之不竭的多語(yǔ)言翻譯偽原創(chuàng )。你,只要輸入關(guān)鍵詞
  優(yōu)采云通用文章采集器 應用領(lǐng)域:
  1、按關(guān)鍵詞采集互聯(lián)網(wǎng)文章翻譯偽原創(chuàng ),站長(cháng)朋友首選。
  2、適用于信息公關(guān)公司采集信息資料過(guò)濾提煉(軟件幾萬(wàn)專(zhuān)業(yè)公司,幾百塊錢(qián)我的)
  采集文章+Translation偽原創(chuàng )可以滿(mǎn)足廣大站長(cháng)和各領(lǐng)域朋友的文章需求。但是,一些公關(guān)處理和信息調查公司需要的專(zhuān)業(yè)公司開(kāi)發(fā)的信息采集系統往往售價(jià)幾萬(wàn)甚至更多,而優(yōu)采云的這個(gè)軟件也是一個(gè)信息采集系統的功能和市面上昂貴的軟件差不多,但是價(jià)格只有幾百元,你試一下就知道性?xún)r(jià)比了。
  
  軟件解壓密碼可以在密碼1.txt中找到
  優(yōu)歐營(yíng)銷(xiāo)官網(wǎng)【提供本站數據更新】一鍵授權更新服務(wù)器獨家發(fā)售【點(diǎn)擊加入我們】
  溫馨提示:本站軟件僅對注冊機的使用負責。軟件使用中出現的問(wèn)題請自行解決!
  注:由于本站軟件采用Zprotect或Winlicense加密授權保護,卡巴、金山毒霸、瑞星、360殺毒軟件均可能將此類(lèi)加殼程序視為木馬或病毒,但并非真正的病毒或木馬. 本站為正規軟件站,請放心使用。如有疑問(wèn),請咨詢(xún)客服。本軟件為VIP會(huì )員/代理軟件,請登錄后下載。如果您不是VIP會(huì )員/代理商,請注冊并聯(lián)系客服
  
  打開(kāi)VIP權限。 查看全部

  文章采集系統(優(yōu)采云·萬(wàn)能文章采集器V1.22優(yōu)采云智能提取網(wǎng)頁(yè)正文的算法)
  優(yōu)采云·Universal文章采集器V1.22破解版
  優(yōu)采云Universal文章采集器是一款讓您只需輸入關(guān)鍵詞即可采集各大搜索引擎新聞源和網(wǎng)頁(yè)的軟件。優(yōu)采云該軟件是首創(chuàng )的獨家智能算法,可以準確提取網(wǎng)頁(yè)正文部分并保存為文章。支持去除標簽、鏈接、郵箱等格式處理,插入關(guān)鍵詞的功能,可以識別標簽或標點(diǎn)的插入,可以識別英文空格的插入。還有文章的翻譯功能,可以將文章從一種語(yǔ)言如中文轉成英文或日文等另一種語(yǔ)言,再由英文或日文轉回中文,即是一個(gè)翻譯周期,
  優(yōu)采云Universal文章采集器 一種智能提取網(wǎng)頁(yè)正文的算法。百度新聞、谷歌新聞、搜搜新聞強聚合不時(shí)更新的新聞資源,取之不盡用之不竭的多語(yǔ)言翻譯偽原創(chuàng )。你,只要輸入關(guān)鍵詞
  優(yōu)采云通用文章采集器 應用領(lǐng)域:
  1、按關(guān)鍵詞采集互聯(lián)網(wǎng)文章翻譯偽原創(chuàng ),站長(cháng)朋友首選。
  2、適用于信息公關(guān)公司采集信息資料過(guò)濾提煉(軟件幾萬(wàn)專(zhuān)業(yè)公司,幾百塊錢(qián)我的)
  采集文章+Translation偽原創(chuàng )可以滿(mǎn)足廣大站長(cháng)和各領(lǐng)域朋友的文章需求。但是,一些公關(guān)處理和信息調查公司需要的專(zhuān)業(yè)公司開(kāi)發(fā)的信息采集系統往往售價(jià)幾萬(wàn)甚至更多,而優(yōu)采云的這個(gè)軟件也是一個(gè)信息采集系統的功能和市面上昂貴的軟件差不多,但是價(jià)格只有幾百元,你試一下就知道性?xún)r(jià)比了。
  
  軟件解壓密碼可以在密碼1.txt中找到
  優(yōu)歐營(yíng)銷(xiāo)官網(wǎng)【提供本站數據更新】一鍵授權更新服務(wù)器獨家發(fā)售【點(diǎn)擊加入我們】
  溫馨提示:本站軟件僅對注冊機的使用負責。軟件使用中出現的問(wèn)題請自行解決!
  注:由于本站軟件采用Zprotect或Winlicense加密授權保護,卡巴、金山毒霸、瑞星、360殺毒軟件均可能將此類(lèi)加殼程序視為木馬或病毒,但并非真正的病毒或木馬. 本站為正規軟件站,請放心使用。如有疑問(wèn),請咨詢(xún)客服。本軟件為VIP會(huì )員/代理軟件,請登錄后下載。如果您不是VIP會(huì )員/代理商,請注冊并聯(lián)系客服
  
  打開(kāi)VIP權限。

文章采集系統(excel看看需要打印多少打印文件,單價(jià)多少,試試插件/)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 153 次瀏覽 ? 2021-11-12 05:01 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(excel看看需要打印多少打印文件,單價(jià)多少,試試插件/)
  文章采集系統,您可以按照用戶(hù)所提供的商品信息的鏈接,生成一個(gè)網(wǎng)址,然后直接下載相應產(chǎn)品的打包數據包。該系統可以幫助企業(yè):展示其近期所有的采集行為,了解潛在的客戶(hù)和推銷(xiāo)產(chǎn)品;自動(dòng)分析自己的商品系列,并找到購買(mǎi)最頻繁的小類(lèi)和產(chǎn)品;自動(dòng)發(fā)送消息和短信,促進(jìn)與客戶(hù)的聯(lián)系和交流;以及,與第三方合作,打造一個(gè)銷(xiāo)售的穩定商品圖片列表。點(diǎn)擊下載。
  excel看看需要打印多少打印文件,單價(jià)多少,
  試試插件/
  可以考慮用excel也可以考慮用web采集器采集
  考慮用插件:有好心人告訴我,那款插件好用,可以生成瀏覽器下載鏈接,可以直接下載,但是沒(méi)有文件名或者數量限制。請幫忙指教,謝謝。
  如果你是想生成下載鏈接,可以找第三方工具:動(dòng)力采集工具fancymaker這個(gè)工具同時(shí)支持wordpress、facebook、twitter等,我們也有其他平臺的采集,如uc、百度網(wǎng)盤(pán)、facebook、youtube等,國內外應有盡有。
  在網(wǎng)上有種采集工具是云采集方式,如apiviz、scribbler、ucims等,
  可以采集一個(gè)商品所有的網(wǎng)址,但只能分開(kāi)下載。采集后的cvs工程文件里面有網(wǎng)址對應的css和js文件, 查看全部

  文章采集系統(excel看看需要打印多少打印文件,單價(jià)多少,試試插件/)
  文章采集系統,您可以按照用戶(hù)所提供的商品信息的鏈接,生成一個(gè)網(wǎng)址,然后直接下載相應產(chǎn)品的打包數據包。該系統可以幫助企業(yè):展示其近期所有的采集行為,了解潛在的客戶(hù)和推銷(xiāo)產(chǎn)品;自動(dòng)分析自己的商品系列,并找到購買(mǎi)最頻繁的小類(lèi)和產(chǎn)品;自動(dòng)發(fā)送消息和短信,促進(jìn)與客戶(hù)的聯(lián)系和交流;以及,與第三方合作,打造一個(gè)銷(xiāo)售的穩定商品圖片列表。點(diǎn)擊下載。
  excel看看需要打印多少打印文件,單價(jià)多少,
  試試插件/
  可以考慮用excel也可以考慮用web采集器采集
  考慮用插件:有好心人告訴我,那款插件好用,可以生成瀏覽器下載鏈接,可以直接下載,但是沒(méi)有文件名或者數量限制。請幫忙指教,謝謝。
  如果你是想生成下載鏈接,可以找第三方工具:動(dòng)力采集工具fancymaker這個(gè)工具同時(shí)支持wordpress、facebook、twitter等,我們也有其他平臺的采集,如uc、百度網(wǎng)盤(pán)、facebook、youtube等,國內外應有盡有。
  在網(wǎng)上有種采集工具是云采集方式,如apiviz、scribbler、ucims等,
  可以采集一個(gè)商品所有的網(wǎng)址,但只能分開(kāi)下載。采集后的cvs工程文件里面有網(wǎng)址對應的css和js文件,

文章采集系統(基于php/java+cli,有springmvc,)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 122 次瀏覽 ? 2021-11-08 16:03 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(基于php/java+cli,有springmvc,)
  文章采集系統一般由數據采集(訪(fǎng)問(wèn)器-post-header)、采集接收器(postbody)和渲染渲染器(renderer)組成。通過(guò)點(diǎn)擊圖片或html文件,對用戶(hù)發(fā)送的請求進(jìn)行處理,將可能的格式化數據,即網(wǎng)頁(yè)中傳遞給渲染渲染器,可使用webgl、physx、adpu等來(lái)查看模型信息,并渲染成圖片,生成全屏視圖。
  manual-renderer(直觀(guān)渲染器)生成全屏視圖。只支持自己設計渲染算法。printergenerator(高效渲染器)為第三方平臺提供圖片格式采集、合成和渲染處理的功能。支持自己設計渲染算法,并提供實(shí)例模式。適合中小型模型。codelite(crop-basedarchitecturelayoutpre-cad):針對矢量動(dòng)畫(huà)制作,可控性比較強,工作量也不小,適合大模型。
  ccbr(convertingcanvasbyresolution):一種新型的替換風(fēng)格的ui,類(lèi)似于圖片替換樣式的風(fēng)格,簡(jiǎn)單易用的替換技術(shù)。上面是我們使用的一些采集和渲染技術(shù),感興趣的話(huà)可以自己嘗試。
  用photoshop,
  可以從這個(gè)網(wǎng)站看一下希望對你有所幫助
  trello.io多平臺支持,
  為了實(shí)現精細化的采集,
  1、利用webgl、physx等現成的接口生成靜態(tài)網(wǎng)頁(yè)。
  2、內嵌到app中,app調用modernizr提供的接口來(lái)獲取模型信息。
  3、利用采集框架采集圖片,交給前端渲染到網(wǎng)頁(yè)里,這里可以用springmvc,image2image等。
  4、利用php或者java,通過(guò)開(kāi)發(fā)工具,生成modernizr控件來(lái)獲取圖片和其他信息?;趐hp/java的方案,有采集框架的,有java+cli,有springmvc,有ror,對于新手來(lái)說(shuō),第三種方案感覺(jué)比較符合我們的實(shí)際情況。 查看全部

  文章采集系統(基于php/java+cli,有springmvc,)
  文章采集系統一般由數據采集(訪(fǎng)問(wèn)器-post-header)、采集接收器(postbody)和渲染渲染器(renderer)組成。通過(guò)點(diǎn)擊圖片或html文件,對用戶(hù)發(fā)送的請求進(jìn)行處理,將可能的格式化數據,即網(wǎng)頁(yè)中傳遞給渲染渲染器,可使用webgl、physx、adpu等來(lái)查看模型信息,并渲染成圖片,生成全屏視圖。
  manual-renderer(直觀(guān)渲染器)生成全屏視圖。只支持自己設計渲染算法。printergenerator(高效渲染器)為第三方平臺提供圖片格式采集、合成和渲染處理的功能。支持自己設計渲染算法,并提供實(shí)例模式。適合中小型模型。codelite(crop-basedarchitecturelayoutpre-cad):針對矢量動(dòng)畫(huà)制作,可控性比較強,工作量也不小,適合大模型。
  ccbr(convertingcanvasbyresolution):一種新型的替換風(fēng)格的ui,類(lèi)似于圖片替換樣式的風(fēng)格,簡(jiǎn)單易用的替換技術(shù)。上面是我們使用的一些采集和渲染技術(shù),感興趣的話(huà)可以自己嘗試。
  用photoshop,
  可以從這個(gè)網(wǎng)站看一下希望對你有所幫助
  trello.io多平臺支持,
  為了實(shí)現精細化的采集,
  1、利用webgl、physx等現成的接口生成靜態(tài)網(wǎng)頁(yè)。
  2、內嵌到app中,app調用modernizr提供的接口來(lái)獲取模型信息。
  3、利用采集框架采集圖片,交給前端渲染到網(wǎng)頁(yè)里,這里可以用springmvc,image2image等。
  4、利用php或者java,通過(guò)開(kāi)發(fā)工具,生成modernizr控件來(lái)獲取圖片和其他信息?;趐hp/java的方案,有采集框架的,有java+cli,有springmvc,有ror,對于新手來(lái)說(shuō),第三種方案感覺(jué)比較符合我們的實(shí)際情況。

文章采集系統(文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據的真實(shí)性如何保證)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 124 次瀏覽 ? 2021-11-08 00:02 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據的真實(shí)性如何保證)
  文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據是很重要的內容,通常的數據采集系統如果缺少一些特殊的操作系統必要的操作接口或其它可能需要對用戶(hù)進(jìn)行權限控制的第三方客戶(hù)端或系統,這樣就存在一定的問(wèn)題。更有甚者發(fā)生網(wǎng)絡(luò )傳輸中出現外部進(jìn)程攻擊等意外因素,都會(huì )導致采集無(wú)法正常完成。下面給各位分享我經(jīng)過(guò)實(shí)戰總結的三種采集系統的方案選型。
  一、利用爬蟲(chóng)采集大家知道爬蟲(chóng)是軟件的一個(gè)重要的應用,現如今在網(wǎng)絡(luò )上隨處可見(jiàn)使用爬蟲(chóng)采集數據的地方,各大招聘網(wǎng)、爬蟲(chóng)網(wǎng)站、等..對于網(wǎng)站來(lái)說(shuō),爬蟲(chóng)就是針對每一條訪(fǎng)問(wèn)請求設定規則,然后一條一條重復的采集,這樣造成數據量極大增加。采集數據的方式有兩種:使用“深度搜索”api,和開(kāi)放自定義網(wǎng)址數據請求協(xié)議,利用該api,我們可以獲取標準的網(wǎng)頁(yè)搜索結果,然后再進(jìn)行采集。
  二、利用uml模型設計采集apiuml是類(lèi)圖、模型圖、圖表的統稱(chēng),后兩者是一種繪圖的分析方法。對于采集api,我們可以把其看作為一種專(zhuān)有的建模、設計、開(kāi)發(fā)和使用工具集合。我們可以把采集模型看作是一種數據采集方法、原理等思想,它是無(wú)法或難以把握的東西,我們要學(xué)習它。
  三、利用平臺開(kāi)放技術(shù),實(shí)現將采集api開(kāi)放給個(gè)人或小公司可以直接去利用如rmi框架搭建自己的采集api,很多手機平臺都是提供開(kāi)放的通用api的,像小米的小米采集助手,酷狗的音樂(lè )采集助手。這些都是個(gè)人想要采集數據時(shí)最為關(guān)注的問(wèn)題,用戶(hù)數據的真實(shí)性如何保證?對于采集api這個(gè)開(kāi)放標準化的采集采集平臺,我們必須要明確,一定要提供可靠的數據,可靠的第三方權限控制,并對代碼重構、數據容錯考慮周全,能夠提供一套采集圖形化交互性好的協(xié)議,如json(javascriptobjectnotation)數據協(xié)議。這樣才能在不侵犯用戶(hù)隱私的前提下,保證采集api能夠順利采集用戶(hù)數據。
  采集系統如何寫(xiě)1.用戶(hù)申請注冊
  1)在采集系統開(kāi)始動(dòng)手之前,你需要先注冊賬號,必須手機號注冊,
  2)注冊用戶(hù)后,登錄賬號,選擇爬蟲(chóng)(或采集)模式,并選擇想要進(jìn)行采集的站點(diǎn)或方法,如爬取天貓的數據,請選擇網(wǎng)站采集采集;選擇爬蟲(chóng)模式有哪些方法呢?簡(jiǎn)單來(lái)說(shuō),我們選擇爬蟲(chóng)模式有以下幾種,
  1)自己編寫(xiě)爬蟲(chóng)模型,自己發(fā)起請求,
  2)把爬蟲(chóng)模型放到公共的站點(diǎn)中,由爬蟲(chóng)自己發(fā)起請求,
  3)自己的網(wǎng)站進(jìn)行下單,同時(shí)向站點(diǎn)申請權限,
  4)采集數據后上傳到公共網(wǎng)站中;
  5)委托別人的爬蟲(chóng)采集。
  6) 查看全部

  文章采集系統(文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據的真實(shí)性如何保證)
  文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據是很重要的內容,通常的數據采集系統如果缺少一些特殊的操作系統必要的操作接口或其它可能需要對用戶(hù)進(jìn)行權限控制的第三方客戶(hù)端或系統,這樣就存在一定的問(wèn)題。更有甚者發(fā)生網(wǎng)絡(luò )傳輸中出現外部進(jìn)程攻擊等意外因素,都會(huì )導致采集無(wú)法正常完成。下面給各位分享我經(jīng)過(guò)實(shí)戰總結的三種采集系統的方案選型。
  一、利用爬蟲(chóng)采集大家知道爬蟲(chóng)是軟件的一個(gè)重要的應用,現如今在網(wǎng)絡(luò )上隨處可見(jiàn)使用爬蟲(chóng)采集數據的地方,各大招聘網(wǎng)、爬蟲(chóng)網(wǎng)站、等..對于網(wǎng)站來(lái)說(shuō),爬蟲(chóng)就是針對每一條訪(fǎng)問(wèn)請求設定規則,然后一條一條重復的采集,這樣造成數據量極大增加。采集數據的方式有兩種:使用“深度搜索”api,和開(kāi)放自定義網(wǎng)址數據請求協(xié)議,利用該api,我們可以獲取標準的網(wǎng)頁(yè)搜索結果,然后再進(jìn)行采集。
  二、利用uml模型設計采集apiuml是類(lèi)圖、模型圖、圖表的統稱(chēng),后兩者是一種繪圖的分析方法。對于采集api,我們可以把其看作為一種專(zhuān)有的建模、設計、開(kāi)發(fā)和使用工具集合。我們可以把采集模型看作是一種數據采集方法、原理等思想,它是無(wú)法或難以把握的東西,我們要學(xué)習它。
  三、利用平臺開(kāi)放技術(shù),實(shí)現將采集api開(kāi)放給個(gè)人或小公司可以直接去利用如rmi框架搭建自己的采集api,很多手機平臺都是提供開(kāi)放的通用api的,像小米的小米采集助手,酷狗的音樂(lè )采集助手。這些都是個(gè)人想要采集數據時(shí)最為關(guān)注的問(wèn)題,用戶(hù)數據的真實(shí)性如何保證?對于采集api這個(gè)開(kāi)放標準化的采集采集平臺,我們必須要明確,一定要提供可靠的數據,可靠的第三方權限控制,并對代碼重構、數據容錯考慮周全,能夠提供一套采集圖形化交互性好的協(xié)議,如json(javascriptobjectnotation)數據協(xié)議。這樣才能在不侵犯用戶(hù)隱私的前提下,保證采集api能夠順利采集用戶(hù)數據。
  采集系統如何寫(xiě)1.用戶(hù)申請注冊
  1)在采集系統開(kāi)始動(dòng)手之前,你需要先注冊賬號,必須手機號注冊,
  2)注冊用戶(hù)后,登錄賬號,選擇爬蟲(chóng)(或采集)模式,并選擇想要進(jìn)行采集的站點(diǎn)或方法,如爬取天貓的數據,請選擇網(wǎng)站采集采集;選擇爬蟲(chóng)模式有哪些方法呢?簡(jiǎn)單來(lái)說(shuō),我們選擇爬蟲(chóng)模式有以下幾種,
  1)自己編寫(xiě)爬蟲(chóng)模型,自己發(fā)起請求,
  2)把爬蟲(chóng)模型放到公共的站點(diǎn)中,由爬蟲(chóng)自己發(fā)起請求,
  3)自己的網(wǎng)站進(jìn)行下單,同時(shí)向站點(diǎn)申請權限,
  4)采集數據后上傳到公共網(wǎng)站中;
  5)委托別人的爬蟲(chóng)采集。
  6)

文章采集系統(編輯本段文章采集系統過(guò)程相關(guān)資料功能的開(kāi)發(fā)工具使用.Net)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 128 次瀏覽 ? 2021-11-06 20:20 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(編輯本段文章采集系統過(guò)程相關(guān)資料功能的開(kāi)發(fā)工具使用.Net)
  文章采集系統由(我的世界采集網(wǎng))歷時(shí)4年開(kāi)發(fā)。在線(xiàn)信息采集系統基于用戶(hù)自定義關(guān)鍵詞從互聯(lián)網(wǎng)檢索相關(guān)數據,對數據進(jìn)行合理截取、分類(lèi)、去重、過(guò)濾,以文件或數據庫的形式存儲.
  內容
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  編輯本段
  文章采集系統進(jìn)程
  系統開(kāi)發(fā)工具采用.Net的C#進(jìn)行系統開(kāi)發(fā),數據庫采用SQL Server 2000。
  一、軟件系統總體設計要求
  1.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據召回率達到98%。
  2.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據準確率大于97%。
  3.數據存儲容量:存儲容量≥100G。
  4.在單個(gè)網(wǎng)站中搜索時(shí),網(wǎng)站搜索深度:最大5級網(wǎng)頁(yè);網(wǎng)站 搜索廣度:最多搜索50個(gè)網(wǎng)頁(yè)。如果超過(guò) 60 秒沒(méi)有結果,搜索將自動(dòng)放棄。
  5. 并發(fā)搜索強度:10個(gè)線(xiàn)程可以同時(shí)并發(fā)搜索。
  6.5億漢字的平均查詢(xún)時(shí)間不到3秒。
  二、應用系統設計要求
  1.要求系統多線(xiàn)程采集信息;
  2. 可以自動(dòng)對記錄進(jìn)行分類(lèi)和索引;
  3. 自動(dòng)過(guò)濾重復項并自動(dòng)索引記錄;
  三、應用系統功能詳解
  實(shí)時(shí)在線(xiàn)采集(內容抓取模塊) Fast:網(wǎng)頁(yè)抓取采用多線(xiàn)程并發(fā)搜索技術(shù),可設置最大并發(fā)線(xiàn)程數。靈活:可以同時(shí)跟蹤捕獲多個(gè)網(wǎng)站,提供靈活的網(wǎng)站、欄目或頻道采集策略,利用邏輯關(guān)系定位采集內容。準確:多抓取少抓取,可以自定義需要抓取的文件格式,可以抓取圖片和表格信息,抓取過(guò)程成熟可靠,容錯性強,可以長(cháng)時(shí)間穩定運行完成初始設置后。高效的自動(dòng)分類(lèi) 支持機檢分類(lèi)——可以使用預定義的關(guān)鍵詞和規則方法來(lái)確定類(lèi)別;支持自動(dòng)分類(lèi)——通過(guò)機器自動(dòng)學(xué)習或預學(xué)習進(jìn)行自動(dòng)分類(lèi),準確率達到80%以上。(這個(gè)比較麻煩,可以考慮不做)支持多種分類(lèi)標準——比如按地區(華北、華南等)、內容(政治、科技、軍事、教育等) .)、來(lái)源(新華網(wǎng)、人民日報、新浪網(wǎng))等等。網(wǎng)頁(yè)自動(dòng)分析內容過(guò)濾——可以過(guò)濾掉廣告、導航信息、版權等無(wú)用信息,可以剔除反動(dòng)和色情內容。內容排序-不同網(wǎng)站相同或相似的內容可以自動(dòng)識別并標記為相似。識別方法可以由用戶(hù)定義的規則確定,并由內容的相似性自動(dòng)確定。格式轉換——自動(dòng)將 HTML 格式轉換為文本文件。自動(dòng)索引——自動(dòng)從網(wǎng)頁(yè)中提取標題、版本、日期、作者、欄目、分類(lèi)等信息。系統管理集成單一界面——系統提供基于Web的用戶(hù)界面和管理員界面,滿(mǎn)足系統管理員和用戶(hù)的雙重需求。瀏覽器可用于遠程管理分類(lèi)目錄、用戶(hù)權限,并對分類(lèi)結果進(jìn)行調整和強化。完善的目錄維護——對分類(lèi)目錄的添加、移動(dòng)、修改、刪除提供完善的管理和維護權限管理,并可設置管理目錄和單個(gè)文件使用權限,加強安全管理。實(shí)時(shí)文件管理——可以瀏覽各個(gè)目錄的分類(lèi)結果,并進(jìn)行移動(dòng)、重命名等實(shí)時(shí)調整。
  編輯本段
  相關(guān)數據功能解讀
  配合文章采集系統,整個(gè)系統可以在線(xiàn)自動(dòng)安裝,后臺有新版本可以自動(dòng)升級;系統文件損壞可自動(dòng)修復,站長(cháng)無(wú)后顧之憂(yōu)
  1、自動(dòng)構建功能
  強大的關(guān)鍵詞管理系統
  可自動(dòng)批量獲取指定關(guān)鍵詞的常用相關(guān)詞,輕松控制用戶(hù)搜索行為
  自動(dòng)文章采集系統四大類(lèi)內容
  文章采集 過(guò)程中自動(dòng)去除重復內容,各種內容的聚合量可自由設置
  三重過(guò)濾保證內容質(zhì)量
  特別是首創(chuàng )的任意詞密度判斷功能,為搜索引擎提供了強有力的保障收錄
  自動(dòng)生成原創(chuàng )主題
  文章采集第一個(gè)以話(huà)題組織內容,這是門(mén)戶(hù)網(wǎng)站網(wǎng)站內容制勝的法寶
  專(zhuān)題內容自動(dòng)更新
  不僅可以自動(dòng)創(chuàng )建話(huà)題還可以自動(dòng)更新,并且可以單獨設置各類(lèi)內容的更新周期
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  2、個(gè)性化定制功能
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  兼容多種靜態(tài)模式
  不僅能有效保障收錄搜索引擎,還能增加網(wǎng)站的持續訪(fǎng)問(wèn)量
  任何頂部導航欄設置
  頂部導航欄可隨意添加或刪除,使網(wǎng)站高度可定制
  任意 URL 連接地址名稱(chēng)
  不僅讓你的網(wǎng)站獨一無(wú)二,還能在一定程度上提升搜索引擎排名
  支持多個(gè)模板集
  采用模板編譯替代技術(shù),即使只改動(dòng)一個(gè)文件,也能做出個(gè)性化的界面
  任意顯示數量控制
  可以設置話(huà)題頁(yè)面各種內容的數量,也可以設置每個(gè)列表頁(yè)面的顯示數量
  3、內置站長(cháng)工具
  全程記錄蜘蛛訪(fǎng)問(wèn)
  智能識別搜索引擎蜘蛛99%的訪(fǎng)問(wèn),全程控制蜘蛛的爬取記錄
  自動(dòng)站點(diǎn)地圖創(chuàng )建
  自動(dòng)生成百度和谷歌地圖,并可分類(lèi)設置,有效提升網(wǎng)站收錄的內容
  一鍵查看排名和收錄
  不僅可以查看Alexa排名,還可以準確掌握網(wǎng)站最近收錄,還可以添加網(wǎng)站外部鏈接
  檢查網(wǎng)站中非法的關(guān)鍵詞
  可自動(dòng)批量查詢(xún)網(wǎng)站中是否存在國家禁止的違法內容
  在線(xiàn)自動(dòng)安裝和文件修復
  setup.php工具不僅可以自動(dòng)獲取授權,自動(dòng)在線(xiàn)安裝系統,還具有系統修復功能
  后臺智能自動(dòng)升級
  可自動(dòng)判斷當前需要升級的版本,并自動(dòng)下載升級,讓站長(cháng)免去更新的煩惱
  4、高效性能
  超高效的自動(dòng)分詞技術(shù)
  率先采用數字化詞匯和雙向分詞驗證,大大提高了中文分詞的效率和準確率
  高效的動(dòng)態(tài)頁(yè)面緩存
  采用子模塊頁(yè)面緩存技術(shù),有效保證系統負載能力和網(wǎng)站的動(dòng)態(tài)
  代碼分段調用技術(shù)
  使系統每次調用最少的程序代碼,減少分析時(shí)間,有效提高系統執行效率
  編譯模板技術(shù)
  所有未改變的模板只需編譯一次,減少模板解析時(shí)間,提高訪(fǎng)問(wèn)速度
  最小化數據讀取設計
  大大降低數據庫資源消耗,可支持更多用戶(hù)快速訪(fǎng)問(wèn)
  圖片縮略圖保存
  默認生成圖片文件縮略圖并保存在本地,大大降低服務(wù)器空間和帶寬壓力
  5、全站互動(dòng)功能
  個(gè)性組功能
  話(huà)題可以轉成群組,比論壇有更多的權限控制自由
  外部個(gè)人主頁(yè)
  個(gè)人頁(yè)面可以看到發(fā)起的話(huà)題、訂閱的話(huà)題、好友
  我的私人家
  通過(guò)SNS功能,您可以跟蹤我的話(huà)題動(dòng)態(tài)和朋友的站點(diǎn)動(dòng)態(tài)
  站內好友系統
  可以自由添加好友,還可以查看好友動(dòng)態(tài)信息 查看全部

  文章采集系統(編輯本段文章采集系統過(guò)程相關(guān)資料功能的開(kāi)發(fā)工具使用.Net)
  文章采集系統由(我的世界采集網(wǎng))歷時(shí)4年開(kāi)發(fā)。在線(xiàn)信息采集系統基于用戶(hù)自定義關(guān)鍵詞從互聯(lián)網(wǎng)檢索相關(guān)數據,對數據進(jìn)行合理截取、分類(lèi)、去重、過(guò)濾,以文件或數據庫的形式存儲.
  內容
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  編輯本段
  文章采集系統進(jìn)程
  系統開(kāi)發(fā)工具采用.Net的C#進(jìn)行系統開(kāi)發(fā),數據庫采用SQL Server 2000。
  一、軟件系統總體設計要求
  1.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據召回率達到98%。
  2.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據準確率大于97%。
  3.數據存儲容量:存儲容量≥100G。
  4.在單個(gè)網(wǎng)站中搜索時(shí),網(wǎng)站搜索深度:最大5級網(wǎng)頁(yè);網(wǎng)站 搜索廣度:最多搜索50個(gè)網(wǎng)頁(yè)。如果超過(guò) 60 秒沒(méi)有結果,搜索將自動(dòng)放棄。
  5. 并發(fā)搜索強度:10個(gè)線(xiàn)程可以同時(shí)并發(fā)搜索。
  6.5億漢字的平均查詢(xún)時(shí)間不到3秒。
  二、應用系統設計要求
  1.要求系統多線(xiàn)程采集信息;
  2. 可以自動(dòng)對記錄進(jìn)行分類(lèi)和索引;
  3. 自動(dòng)過(guò)濾重復項并自動(dòng)索引記錄;
  三、應用系統功能詳解
  實(shí)時(shí)在線(xiàn)采集(內容抓取模塊) Fast:網(wǎng)頁(yè)抓取采用多線(xiàn)程并發(fā)搜索技術(shù),可設置最大并發(fā)線(xiàn)程數。靈活:可以同時(shí)跟蹤捕獲多個(gè)網(wǎng)站,提供靈活的網(wǎng)站、欄目或頻道采集策略,利用邏輯關(guān)系定位采集內容。準確:多抓取少抓取,可以自定義需要抓取的文件格式,可以抓取圖片和表格信息,抓取過(guò)程成熟可靠,容錯性強,可以長(cháng)時(shí)間穩定運行完成初始設置后。高效的自動(dòng)分類(lèi) 支持機檢分類(lèi)——可以使用預定義的關(guān)鍵詞和規則方法來(lái)確定類(lèi)別;支持自動(dòng)分類(lèi)——通過(guò)機器自動(dòng)學(xué)習或預學(xué)習進(jìn)行自動(dòng)分類(lèi),準確率達到80%以上。(這個(gè)比較麻煩,可以考慮不做)支持多種分類(lèi)標準——比如按地區(華北、華南等)、內容(政治、科技、軍事、教育等) .)、來(lái)源(新華網(wǎng)、人民日報、新浪網(wǎng))等等。網(wǎng)頁(yè)自動(dòng)分析內容過(guò)濾——可以過(guò)濾掉廣告、導航信息、版權等無(wú)用信息,可以剔除反動(dòng)和色情內容。內容排序-不同網(wǎng)站相同或相似的內容可以自動(dòng)識別并標記為相似。識別方法可以由用戶(hù)定義的規則確定,并由內容的相似性自動(dòng)確定。格式轉換——自動(dòng)將 HTML 格式轉換為文本文件。自動(dòng)索引——自動(dòng)從網(wǎng)頁(yè)中提取標題、版本、日期、作者、欄目、分類(lèi)等信息。系統管理集成單一界面——系統提供基于Web的用戶(hù)界面和管理員界面,滿(mǎn)足系統管理員和用戶(hù)的雙重需求。瀏覽器可用于遠程管理分類(lèi)目錄、用戶(hù)權限,并對分類(lèi)結果進(jìn)行調整和強化。完善的目錄維護——對分類(lèi)目錄的添加、移動(dòng)、修改、刪除提供完善的管理和維護權限管理,并可設置管理目錄和單個(gè)文件使用權限,加強安全管理。實(shí)時(shí)文件管理——可以瀏覽各個(gè)目錄的分類(lèi)結果,并進(jìn)行移動(dòng)、重命名等實(shí)時(shí)調整。
  編輯本段
  相關(guān)數據功能解讀
  配合文章采集系統,整個(gè)系統可以在線(xiàn)自動(dòng)安裝,后臺有新版本可以自動(dòng)升級;系統文件損壞可自動(dòng)修復,站長(cháng)無(wú)后顧之憂(yōu)
  1、自動(dòng)構建功能
  強大的關(guān)鍵詞管理系統
  可自動(dòng)批量獲取指定關(guān)鍵詞的常用相關(guān)詞,輕松控制用戶(hù)搜索行為
  自動(dòng)文章采集系統四大類(lèi)內容
  文章采集 過(guò)程中自動(dòng)去除重復內容,各種內容的聚合量可自由設置
  三重過(guò)濾保證內容質(zhì)量
  特別是首創(chuàng )的任意詞密度判斷功能,為搜索引擎提供了強有力的保障收錄
  自動(dòng)生成原創(chuàng )主題
  文章采集第一個(gè)以話(huà)題組織內容,這是門(mén)戶(hù)網(wǎng)站網(wǎng)站內容制勝的法寶
  專(zhuān)題內容自動(dòng)更新
  不僅可以自動(dòng)創(chuàng )建話(huà)題還可以自動(dòng)更新,并且可以單獨設置各類(lèi)內容的更新周期
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  2、個(gè)性化定制功能
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  兼容多種靜態(tài)模式
  不僅能有效保障收錄搜索引擎,還能增加網(wǎng)站的持續訪(fǎng)問(wèn)量
  任何頂部導航欄設置
  頂部導航欄可隨意添加或刪除,使網(wǎng)站高度可定制
  任意 URL 連接地址名稱(chēng)
  不僅讓你的網(wǎng)站獨一無(wú)二,還能在一定程度上提升搜索引擎排名
  支持多個(gè)模板集
  采用模板編譯替代技術(shù),即使只改動(dòng)一個(gè)文件,也能做出個(gè)性化的界面
  任意顯示數量控制
  可以設置話(huà)題頁(yè)面各種內容的數量,也可以設置每個(gè)列表頁(yè)面的顯示數量
  3、內置站長(cháng)工具
  全程記錄蜘蛛訪(fǎng)問(wèn)
  智能識別搜索引擎蜘蛛99%的訪(fǎng)問(wèn),全程控制蜘蛛的爬取記錄
  自動(dòng)站點(diǎn)地圖創(chuàng )建
  自動(dòng)生成百度和谷歌地圖,并可分類(lèi)設置,有效提升網(wǎng)站收錄的內容
  一鍵查看排名和收錄
  不僅可以查看Alexa排名,還可以準確掌握網(wǎng)站最近收錄,還可以添加網(wǎng)站外部鏈接
  檢查網(wǎng)站中非法的關(guān)鍵詞
  可自動(dòng)批量查詢(xún)網(wǎng)站中是否存在國家禁止的違法內容
  在線(xiàn)自動(dòng)安裝和文件修復
  setup.php工具不僅可以自動(dòng)獲取授權,自動(dòng)在線(xiàn)安裝系統,還具有系統修復功能
  后臺智能自動(dòng)升級
  可自動(dòng)判斷當前需要升級的版本,并自動(dòng)下載升級,讓站長(cháng)免去更新的煩惱
  4、高效性能
  超高效的自動(dòng)分詞技術(shù)
  率先采用數字化詞匯和雙向分詞驗證,大大提高了中文分詞的效率和準確率
  高效的動(dòng)態(tài)頁(yè)面緩存
  采用子模塊頁(yè)面緩存技術(shù),有效保證系統負載能力和網(wǎng)站的動(dòng)態(tài)
  代碼分段調用技術(shù)
  使系統每次調用最少的程序代碼,減少分析時(shí)間,有效提高系統執行效率
  編譯模板技術(shù)
  所有未改變的模板只需編譯一次,減少模板解析時(shí)間,提高訪(fǎng)問(wèn)速度
  最小化數據讀取設計
  大大降低數據庫資源消耗,可支持更多用戶(hù)快速訪(fǎng)問(wèn)
  圖片縮略圖保存
  默認生成圖片文件縮略圖并保存在本地,大大降低服務(wù)器空間和帶寬壓力
  5、全站互動(dòng)功能
  個(gè)性組功能
  話(huà)題可以轉成群組,比論壇有更多的權限控制自由
  外部個(gè)人主頁(yè)
  個(gè)人頁(yè)面可以看到發(fā)起的話(huà)題、訂閱的話(huà)題、好友
  我的私人家
  通過(guò)SNS功能,您可以跟蹤我的話(huà)題動(dòng)態(tài)和朋友的站點(diǎn)動(dòng)態(tài)
  站內好友系統
  可以自由添加好友,還可以查看好友動(dòng)態(tài)信息

文章采集系統(微信公眾號文章采集器的用處在哪里?值得參考!)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 129 次瀏覽 ? 2021-11-05 21:23 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(微信公眾號文章采集器的用處在哪里?值得參考!)
  簡(jiǎn)介 本文章主要介紹微信公眾號文章采集器(示例代碼)及相關(guān)經(jīng)驗和技巧,文章約2279字,368頁(yè)瀏覽量,點(diǎn)贊數為2,值得參考!
  今天求教,告訴你什么是微信公眾號文章采集器?微信公眾號文章采集器有什么用?
  首先簡(jiǎn)單介紹一下微信公眾號文章采集器:是本平臺開(kāi)發(fā)的一個(gè)內容價(jià)值輸出系統,專(zhuān)門(mén)服務(wù)于中小互聯(lián)網(wǎng)公司。幫助中小企業(yè)發(fā)布文章,內容輸出大大提高了員工的工作效率和企業(yè)的運營(yíng)成本。
  在采集系統中,我們可以放所有微信公眾號,你只需要在采集系統中手動(dòng)輸入你想要的公眾號名稱(chēng)采集,即可可以快速幫你完成本公眾號的所有內容采集。 采集來(lái)這里文章,可以選擇修改標題和內容,過(guò)濾垃圾郵件文章。
  
  我們已經(jīng)測試了咨詢(xún)平臺:一個(gè)員工可以在一個(gè)小時(shí)內完成采集的工作,并且可以采集 80到100條內容。包括修改文章和過(guò)濾垃圾郵件文章。這大大提高了我們員工的效率和成本。
  微信公眾號采集器有什么用?在哪里可以得到它的價(jià)值體現?
  問(wèn)叔的回答:網(wǎng)站誰(shuí)可以快速幫助你,網(wǎng)站你負責構建內容和參與搜索引擎排名。
  一、SEO:搜索引擎要注意什么原創(chuàng )不是沒(méi)有道理。但是您認為公司員工每天都會(huì )更新 原創(chuàng ) 的 文章。這樣高效的老板和領(lǐng)導會(huì )同意嗎? 偽原創(chuàng )的10條文章一天最多可以更新,發(fā)布到平臺,使用采集系統一小時(shí)發(fā)布文章100篇,價(jià)值更大嗎?
  微信采集器不同于市面上各種網(wǎng)站文章采集器,它避開(kāi)了相關(guān)搜索引擎的采集規則。在百度的各種Pala Pala算法中可以看到,搜索引擎對采集系統軟件的攻擊主要針對網(wǎng)站和網(wǎng)站之間的采集。公眾號的內容價(jià)值來(lái)源于許多大咖發(fā)布的原創(chuàng )內容。我們可以進(jìn)行相關(guān)的采集工作。
  市場(chǎng)上的垃圾采集器在采集文章的時(shí)候,連圖片都是別人的地址網(wǎng)站,這是為了促進(jìn)別人發(fā)鏈接 NS?
  二、 快速打造線(xiàn)上品牌:在采集系統中,您只需在采集公眾號的內容標題上注明您的品牌關(guān)鍵詞,即可可以快速創(chuàng )建內容輸出和創(chuàng )作。以及大量的搜索引擎收錄。
  三、采集 系統是如何實(shí)現其功能的:下面是介紹。
  1.公眾號抓取通過(guò)微信公眾號用戶(hù)在微信上的登錄信息在微信系統中抓取
  2.在微信公眾號系統中設置微信公眾號登錄信息到我們系統
  3.使用設置的登錄信息進(jìn)行微信搜索和微信文章抓取
  4.將抓到的公眾號設置為系統中的普通用戶(hù)
  5.在系統中編輯、審核并發(fā)布抓獲的文章,并與對應的用戶(hù)關(guān)聯(lián)
  6.發(fā)布后的文章與普通用戶(hù)發(fā)布的文章沒(méi)有區別,可以直接按照之前的管理方式進(jìn)行管理。 查看全部

  文章采集系統(微信公眾號文章采集器的用處在哪里?值得參考!)
  簡(jiǎn)介 本文章主要介紹微信公眾號文章采集器(示例代碼)及相關(guān)經(jīng)驗和技巧,文章約2279字,368頁(yè)瀏覽量,點(diǎn)贊數為2,值得參考!
  今天求教,告訴你什么是微信公眾號文章采集器?微信公眾號文章采集器有什么用?
  首先簡(jiǎn)單介紹一下微信公眾號文章采集器:是本平臺開(kāi)發(fā)的一個(gè)內容價(jià)值輸出系統,專(zhuān)門(mén)服務(wù)于中小互聯(lián)網(wǎng)公司。幫助中小企業(yè)發(fā)布文章,內容輸出大大提高了員工的工作效率和企業(yè)的運營(yíng)成本。
  在采集系統中,我們可以放所有微信公眾號,你只需要在采集系統中手動(dòng)輸入你想要的公眾號名稱(chēng)采集,即可可以快速幫你完成本公眾號的所有內容采集。 采集來(lái)這里文章,可以選擇修改標題和內容,過(guò)濾垃圾郵件文章。
  
  我們已經(jīng)測試了咨詢(xún)平臺:一個(gè)員工可以在一個(gè)小時(shí)內完成采集的工作,并且可以采集 80到100條內容。包括修改文章和過(guò)濾垃圾郵件文章。這大大提高了我們員工的效率和成本。
  微信公眾號采集器有什么用?在哪里可以得到它的價(jià)值體現?
  問(wèn)叔的回答:網(wǎng)站誰(shuí)可以快速幫助你,網(wǎng)站你負責構建內容和參與搜索引擎排名。
  一、SEO:搜索引擎要注意什么原創(chuàng )不是沒(méi)有道理。但是您認為公司員工每天都會(huì )更新 原創(chuàng ) 的 文章。這樣高效的老板和領(lǐng)導會(huì )同意嗎? 偽原創(chuàng )的10條文章一天最多可以更新,發(fā)布到平臺,使用采集系統一小時(shí)發(fā)布文章100篇,價(jià)值更大嗎?
  微信采集器不同于市面上各種網(wǎng)站文章采集器,它避開(kāi)了相關(guān)搜索引擎的采集規則。在百度的各種Pala Pala算法中可以看到,搜索引擎對采集系統軟件的攻擊主要針對網(wǎng)站和網(wǎng)站之間的采集。公眾號的內容價(jià)值來(lái)源于許多大咖發(fā)布的原創(chuàng )內容。我們可以進(jìn)行相關(guān)的采集工作。
  市場(chǎng)上的垃圾采集器在采集文章的時(shí)候,連圖片都是別人的地址網(wǎng)站,這是為了促進(jìn)別人發(fā)鏈接 NS?
  二、 快速打造線(xiàn)上品牌:在采集系統中,您只需在采集公眾號的內容標題上注明您的品牌關(guān)鍵詞,即可可以快速創(chuàng )建內容輸出和創(chuàng )作。以及大量的搜索引擎收錄。
  三、采集 系統是如何實(shí)現其功能的:下面是介紹。
  1.公眾號抓取通過(guò)微信公眾號用戶(hù)在微信上的登錄信息在微信系統中抓取
  2.在微信公眾號系統中設置微信公眾號登錄信息到我們系統
  3.使用設置的登錄信息進(jìn)行微信搜索和微信文章抓取
  4.將抓到的公眾號設置為系統中的普通用戶(hù)
  5.在系統中編輯、審核并發(fā)布抓獲的文章,并與對應的用戶(hù)關(guān)聯(lián)
  6.發(fā)布后的文章與普通用戶(hù)發(fā)布的文章沒(méi)有區別,可以直接按照之前的管理方式進(jìn)行管理。

文章采集系統(本發(fā)明針對各式各樣的網(wǎng)站文章進(jìn)行自動(dòng)采集的方法-專(zhuān)利)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2021-11-05 21:22 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(本發(fā)明針對各式各樣的網(wǎng)站文章進(jìn)行自動(dòng)采集的方法-專(zhuān)利)
  專(zhuān)利名稱(chēng):文章采集的一種方法
  技術(shù)領(lǐng)域:
  本發(fā)明涉及一種對各種網(wǎng)站文章進(jìn)行自動(dòng)采集的方法。
  背景技術(shù):
  文章采集基于用戶(hù)自定義的關(guān)鍵詞字符,從各類(lèi)網(wǎng)站中檢索相關(guān)數據,對數據進(jìn)行合理的截取、分類(lèi)、歸類(lèi)。刪除和過(guò)濾,然后將其保存為文件或數據庫。文章采集 應用的關(guān)鍵是如何從眾多的網(wǎng)站中獲取所需的準確內容到預期的中央資源庫,然后快速使用。文章 采集 的核心技術(shù)是模式定義和模式匹配。模型屬于人工智能的術(shù)語(yǔ),是前人積累經(jīng)驗的抽象和升華。簡(jiǎn)單的說(shuō)就是從反復發(fā)生的事件中發(fā)現和抽象出來(lái)的規律,是解決問(wèn)題的經(jīng)驗總結。只要是反復出現的東西,就可能有一定的規律。文章采集 的大多數模式不會(huì )被程序自動(dòng)發(fā)現。目前幾乎所有的文章采集產(chǎn)品都需要手動(dòng)定義。但是模型本身是一個(gè)非常復雜和抽象的內容,所以開(kāi)發(fā)者的所有精力都花在了如何讓模型定義更簡(jiǎn)單、更準確上。這也是衡量文章采集技術(shù)競爭力的一個(gè)指標。. 目前使用最多的是正則表達式定義和文檔結構定義。傳統的文章采集有幾個(gè)問(wèn)題。1、采集是整篇文章文章,需要手動(dòng)頁(yè)面處理才能使用;&lt;
  發(fā)明內容
  本發(fā)明的目的是提供一種文章采集的方法,支持網(wǎng)站組采集的多個(gè)站點(diǎn),并且可以對文章進(jìn)行分段采集和采集的子列采集、文章可以自動(dòng)應用自己的網(wǎng)站格式進(jìn)行發(fā)布,無(wú)需人工處理。文章采集的一種方法,具體包括以下步驟:首先選擇采集的來(lái)源,使用正則表達式制定采集規則,使用關(guān)鍵信息處理方法確定采集內容范圍,將采集的內容綁定到目標站點(diǎn)的欄目;啟動(dòng)采集文章時(shí),先搜索采集的源碼,采用多線(xiàn)程技術(shù),多站點(diǎn)采集 網(wǎng)站 組的;根據采集的設置規則,將采集的內容存放在對應的欄目下;如果需要自動(dòng)發(fā)布,則調用文章合并模板發(fā)布。使用正則表達式制定采集的規則是指輸入需要采集的靜態(tài)頁(yè)面地址,并確定地址中第N個(gè)“/”為靜態(tài)文件,需要&lt; @采集 內容地址,自動(dòng)轉換成正則表達式規則。關(guān)鍵信息處理方法是指確定文章標題或需要采集內容的關(guān)鍵信息串的位置。本發(fā)明采用正則表達式定義方式,根據用戶(hù)自定義任務(wù)配置,批量準確提取目標網(wǎng)絡(luò )媒體欄目中的新聞或文章,并轉換為結構化記錄(標題、作者、內容、采集時(shí)間、來(lái)源、分類(lèi)、相關(guān)圖片等),存儲在本地數據庫中,用于內部使用或外部網(wǎng)絡(luò )發(fā)布,快速實(shí)現外部信息的獲取,對于各種網(wǎng)站新聞采集具有更快的速度和更高的準確率。本發(fā)明可以自動(dòng)和手動(dòng)兩種模式運行。系統定時(shí)自動(dòng)更新指定站點(diǎn)的最新信息,手動(dòng)提供及時(shí)觸發(fā)機制;支持使用不同模式的不同信息采集。本發(fā)明改進(jìn)了傳統的文章采集技術(shù),真正滿(mǎn)足了用戶(hù)的應用需求。您需要的內容;2、每一列可以自定義對應的采集任務(wù),文章 采集然后自動(dòng)存入對應的列;3、采用多線(xiàn)程技術(shù),支持網(wǎng)站組多站點(diǎn)采集;4、結合模板引擎技術(shù),文章采集可以自動(dòng)應用網(wǎng)站模板進(jìn)行自動(dòng)發(fā)布。
  圖1是本發(fā)明的邏輯流程圖。
  圖2為本發(fā)明實(shí)施例中采集內容的字符串位置示意圖。下面結合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細說(shuō)明。
<p>具體實(shí)施方式如圖1所示,本發(fā)明的一種文章采集的方法,具體包括:首先選擇采集的來(lái)源,制定 查看全部

  文章采集系統(本發(fā)明針對各式各樣的網(wǎng)站文章進(jìn)行自動(dòng)采集的方法-專(zhuān)利)
  專(zhuān)利名稱(chēng):文章采集的一種方法
  技術(shù)領(lǐng)域:
  本發(fā)明涉及一種對各種網(wǎng)站文章進(jìn)行自動(dòng)采集的方法。
  背景技術(shù):
  文章采集基于用戶(hù)自定義的關(guān)鍵詞字符,從各類(lèi)網(wǎng)站中檢索相關(guān)數據,對數據進(jìn)行合理的截取、分類(lèi)、歸類(lèi)。刪除和過(guò)濾,然后將其保存為文件或數據庫。文章采集 應用的關(guān)鍵是如何從眾多的網(wǎng)站中獲取所需的準確內容到預期的中央資源庫,然后快速使用。文章 采集 的核心技術(shù)是模式定義和模式匹配。模型屬于人工智能的術(shù)語(yǔ),是前人積累經(jīng)驗的抽象和升華。簡(jiǎn)單的說(shuō)就是從反復發(fā)生的事件中發(fā)現和抽象出來(lái)的規律,是解決問(wèn)題的經(jīng)驗總結。只要是反復出現的東西,就可能有一定的規律。文章采集 的大多數模式不會(huì )被程序自動(dòng)發(fā)現。目前幾乎所有的文章采集產(chǎn)品都需要手動(dòng)定義。但是模型本身是一個(gè)非常復雜和抽象的內容,所以開(kāi)發(fā)者的所有精力都花在了如何讓模型定義更簡(jiǎn)單、更準確上。這也是衡量文章采集技術(shù)競爭力的一個(gè)指標。. 目前使用最多的是正則表達式定義和文檔結構定義。傳統的文章采集有幾個(gè)問(wèn)題。1、采集是整篇文章文章,需要手動(dòng)頁(yè)面處理才能使用;&lt;
  發(fā)明內容
  本發(fā)明的目的是提供一種文章采集的方法,支持網(wǎng)站組采集的多個(gè)站點(diǎn),并且可以對文章進(jìn)行分段采集和采集的子列采集、文章可以自動(dòng)應用自己的網(wǎng)站格式進(jìn)行發(fā)布,無(wú)需人工處理。文章采集的一種方法,具體包括以下步驟:首先選擇采集的來(lái)源,使用正則表達式制定采集規則,使用關(guān)鍵信息處理方法確定采集內容范圍,將采集的內容綁定到目標站點(diǎn)的欄目;啟動(dòng)采集文章時(shí),先搜索采集的源碼,采用多線(xiàn)程技術(shù),多站點(diǎn)采集 網(wǎng)站 組的;根據采集的設置規則,將采集的內容存放在對應的欄目下;如果需要自動(dòng)發(fā)布,則調用文章合并模板發(fā)布。使用正則表達式制定采集的規則是指輸入需要采集的靜態(tài)頁(yè)面地址,并確定地址中第N個(gè)“/”為靜態(tài)文件,需要&lt; @采集 內容地址,自動(dòng)轉換成正則表達式規則。關(guān)鍵信息處理方法是指確定文章標題或需要采集內容的關(guān)鍵信息串的位置。本發(fā)明采用正則表達式定義方式,根據用戶(hù)自定義任務(wù)配置,批量準確提取目標網(wǎng)絡(luò )媒體欄目中的新聞或文章,并轉換為結構化記錄(標題、作者、內容、采集時(shí)間、來(lái)源、分類(lèi)、相關(guān)圖片等),存儲在本地數據庫中,用于內部使用或外部網(wǎng)絡(luò )發(fā)布,快速實(shí)現外部信息的獲取,對于各種網(wǎng)站新聞采集具有更快的速度和更高的準確率。本發(fā)明可以自動(dòng)和手動(dòng)兩種模式運行。系統定時(shí)自動(dòng)更新指定站點(diǎn)的最新信息,手動(dòng)提供及時(shí)觸發(fā)機制;支持使用不同模式的不同信息采集。本發(fā)明改進(jìn)了傳統的文章采集技術(shù),真正滿(mǎn)足了用戶(hù)的應用需求。您需要的內容;2、每一列可以自定義對應的采集任務(wù),文章 采集然后自動(dòng)存入對應的列;3、采用多線(xiàn)程技術(shù),支持網(wǎng)站組多站點(diǎn)采集;4、結合模板引擎技術(shù),文章采集可以自動(dòng)應用網(wǎng)站模板進(jìn)行自動(dòng)發(fā)布。
  圖1是本發(fā)明的邏輯流程圖。
  圖2為本發(fā)明實(shí)施例中采集內容的字符串位置示意圖。下面結合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細說(shuō)明。
<p>具體實(shí)施方式如圖1所示,本發(fā)明的一種文章采集的方法,具體包括:首先選擇采集的來(lái)源,制定

文章采集系統(瀏覽器覽器采集公眾號文章的方案有哪些嗎?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 154 次瀏覽 ? 2021-12-12 22:22 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(瀏覽器覽器采集公眾號文章的方案有哪些嗎?)
  瀏覽器采集公眾號文章有哪些解決方法?采集系統組件有哪些?關(guān)鍵詞:瀏覽器采集公眾號文章 說(shuō)明:公眾號平臺上發(fā)布的很多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就用拖圖數據編輯器來(lái)看看吧。公眾號平臺上發(fā)布的許多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就和拓圖數據編輯器一起來(lái)看看吧。. 瀏覽器采集公眾賬號文章 方案一:根據搜狗門(mén)戶(hù)在網(wǎng)上可以搜索到的公眾號文章采集的相關(guān)信息,這是最、最直接、最簡(jiǎn)單的解決方案。瀏覽器采集公眾號文章 一般流程是:在搜狗微信搜索門(mén)戶(hù)搜索公眾號,選擇公眾號進(jìn)入公眾號歷史文章列表,分析內容文章 并存入數據庫采集如果過(guò)于頻繁,驗證碼會(huì )出現在搜狗搜索和公眾賬號歷史文章列表訪(fǎng)問(wèn)中。直接使用通用腳本采集是無(wú)法獲取驗證碼的。這里可以使用無(wú)頭瀏覽器訪(fǎng)問(wèn),通過(guò)對接編碼平臺識別驗證碼。Selenium 可以用作無(wú)頭瀏覽器。即使使用無(wú)頭瀏覽器,也存在以下問(wèn)題: 效率低下(實(shí)際運行一個(gè)完整的瀏覽器來(lái)模擬人工操作) 瀏覽器中網(wǎng)頁(yè)資源的加載難以控制,腳本難以控制加載無(wú)法進(jìn)行瀏覽器和驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。
  順便說(shuō)一句,甚至不要考慮公開(kāi)一個(gè)免費的 IP 地址。很不穩定,基本被微信屏蔽了。除了搜狗/微信反爬蟲(chóng)機制外,采用該方案還有其他不足: 無(wú)法獲取閱讀數、點(diǎn)贊數等用于評價(jià)文章質(zhì)量的關(guān)鍵信息是無(wú)法及時(shí)獲取已發(fā)布的公眾號文章,只能定期重復爬取,只能獲取最近十個(gè)群發(fā)帖文章 解決方案二:網(wǎng)頁(yè)微信抓包分析后被微信反爬蟲(chóng)濫用找了半天,和同事集思廣益,找到了新的微信公眾號文章爬取程序。只需分析哪些門(mén)戶(hù)可以獲取數據。Fuzzy記得網(wǎng)絡(luò )微信有個(gè)公眾號文章 閱讀功能。碰巧玩了一段時(shí)間的個(gè)人微信,主要是使用Python包ItChat。其實(shí)現原理是對網(wǎng)頁(yè)微信進(jìn)行抓取分析,匯總成個(gè)人微信界面。目標是實(shí)現網(wǎng)頁(yè)微信能實(shí)現的所有功能。. 所以有一個(gè)初步的計劃——通過(guò)ItChat讓微信公眾號文章推送過(guò)來(lái)。我快下班的時(shí)候跟同事提過(guò)。他也很感興趣。第二天就實(shí)現了驗證碼(ItChat對應功能碼的實(shí)現很簡(jiǎn)略,內容分析部分是在內容分析部分可以直接使用之前做的)。這個(gè)解決方案的主要過(guò)程是:服務(wù)器通過(guò)ItChat登錄網(wǎng)頁(yè)微信。當公眾號發(fā)布新的文章推送時(shí),會(huì )被服務(wù)器攔截進(jìn)行后續分析和存儲。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。
  ios的微信客戶(hù)端在批處理采集過(guò)程中,實(shí)際測試后崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情. 3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。瀏覽器采集公眾號文章 4、文章 列表分析和存儲系統:我用php語(yǔ)言寫(xiě)的,下面的文章將詳細講解如何分析文章List,創(chuàng )建采集隊列,實(shí)現批量采集內容??戳松厦娴耐貓D數據編輯器的介紹,相信大家對瀏覽器采集公眾號文章以及采集系統的組成有了一定的了解。有些文章應該經(jīng)常在公眾號平臺上發(fā)表。采集使用采集系統可以更加方便快捷。繼續關(guān)注更多資訊和知識點(diǎn),關(guān)注微信公眾號原創(chuàng )文章統計,關(guān)于微信公眾號原創(chuàng )&lt; @文章how 統計等知識點(diǎn),如何批量導出微信文件, 查看全部

  文章采集系統(瀏覽器覽器采集公眾號文章的方案有哪些嗎?)
  瀏覽器采集公眾號文章有哪些解決方法?采集系統組件有哪些?關(guān)鍵詞:瀏覽器采集公眾號文章 說(shuō)明:公眾號平臺上發(fā)布的很多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就用拖圖數據編輯器來(lái)看看吧。公眾號平臺上發(fā)布的許多文章來(lái)自其他人采集。你知道瀏覽器采集公眾號文章有哪些解決方法嗎?另外,采集 系統的組成部分是什么?今天就和拓圖數據編輯器一起來(lái)看看吧。. 瀏覽器采集公眾賬號文章 方案一:根據搜狗門(mén)戶(hù)在網(wǎng)上可以搜索到的公眾號文章采集的相關(guān)信息,這是最、最直接、最簡(jiǎn)單的解決方案。瀏覽器采集公眾號文章 一般流程是:在搜狗微信搜索門(mén)戶(hù)搜索公眾號,選擇公眾號進(jìn)入公眾號歷史文章列表,分析內容文章 并存入數據庫采集如果過(guò)于頻繁,驗證碼會(huì )出現在搜狗搜索和公眾賬號歷史文章列表訪(fǎng)問(wèn)中。直接使用通用腳本采集是無(wú)法獲取驗證碼的。這里可以使用無(wú)頭瀏覽器訪(fǎng)問(wèn),通過(guò)對接編碼平臺識別驗證碼。Selenium 可以用作無(wú)頭瀏覽器。即使使用無(wú)頭瀏覽器,也存在以下問(wèn)題: 效率低下(實(shí)際運行一個(gè)完整的瀏覽器來(lái)模擬人工操作) 瀏覽器中網(wǎng)頁(yè)資源的加載難以控制,腳本難以控制加載無(wú)法進(jìn)行瀏覽器和驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。并且腳本難以控制瀏覽器的加載,無(wú)法進(jìn)行驗證碼識別。到100%,爬取過(guò)程很可能中途中斷。如果堅持使用搜狗門(mén)戶(hù),想要完善采集,只能增加代理IP。
  順便說(shuō)一句,甚至不要考慮公開(kāi)一個(gè)免費的 IP 地址。很不穩定,基本被微信屏蔽了。除了搜狗/微信反爬蟲(chóng)機制外,采用該方案還有其他不足: 無(wú)法獲取閱讀數、點(diǎn)贊數等用于評價(jià)文章質(zhì)量的關(guān)鍵信息是無(wú)法及時(shí)獲取已發(fā)布的公眾號文章,只能定期重復爬取,只能獲取最近十個(gè)群發(fā)帖文章 解決方案二:網(wǎng)頁(yè)微信抓包分析后被微信反爬蟲(chóng)濫用找了半天,和同事集思廣益,找到了新的微信公眾號文章爬取程序。只需分析哪些門(mén)戶(hù)可以獲取數據。Fuzzy記得網(wǎng)絡(luò )微信有個(gè)公眾號文章 閱讀功能。碰巧玩了一段時(shí)間的個(gè)人微信,主要是使用Python包ItChat。其實(shí)現原理是對網(wǎng)頁(yè)微信進(jìn)行抓取分析,匯總成個(gè)人微信界面。目標是實(shí)現網(wǎng)頁(yè)微信能實(shí)現的所有功能。. 所以有一個(gè)初步的計劃——通過(guò)ItChat讓微信公眾號文章推送過(guò)來(lái)。我快下班的時(shí)候跟同事提過(guò)。他也很感興趣。第二天就實(shí)現了驗證碼(ItChat對應功能碼的實(shí)現很簡(jiǎn)略,內容分析部分是在內容分析部分可以直接使用之前做的)。這個(gè)解決方案的主要過(guò)程是:服務(wù)器通過(guò)ItChat登錄網(wǎng)頁(yè)微信。當公眾號發(fā)布新的文章推送時(shí),會(huì )被服務(wù)器攔截進(jìn)行后續分析和存儲。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。這種方案的優(yōu)點(diǎn)是: 基本零間隔獲取已發(fā)布的公眾號文章 獲取點(diǎn)贊數和閱讀數,只需要登錄手機微信即可,無(wú)需其他操作。當然,也有缺點(diǎn):需要長(cháng)期聯(lián)網(wǎng)的手機。時(shí)間滴采集 系統由以下部分組成: 1、 微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦中的安卓模擬器。
  ios的微信客戶(hù)端在批處理采集過(guò)程中,實(shí)際測試后崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情. 3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。瀏覽器采集公眾號文章 4、文章 列表分析和存儲系統:我用php語(yǔ)言寫(xiě)的,下面的文章將詳細講解如何分析文章List,創(chuàng )建采集隊列,實(shí)現批量采集內容??戳松厦娴耐貓D數據編輯器的介紹,相信大家對瀏覽器采集公眾號文章以及采集系統的組成有了一定的了解。有些文章應該經(jīng)常在公眾號平臺上發(fā)表。采集使用采集系統可以更加方便快捷。繼續關(guān)注更多資訊和知識點(diǎn),關(guān)注微信公眾號原創(chuàng )文章統計,關(guān)于微信公眾號原創(chuàng )&lt; @文章how 統計等知識點(diǎn),如何批量導出微信文件,

文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 170 次瀏覽 ? 2021-12-08 21:13 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 136 次瀏覽 ? 2021-12-08 21:06 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。那個(gè)時(shí)候分批的采集特別好做,而采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)入口現在還是一樣,只是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)到了2015年,html5垃圾站就不做了。取而代之的是,采集的目標是針對本地新聞資訊公眾號,將前端展示做成一個(gè)app。所以一個(gè)可以自動(dòng)&lt; @采集 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信技術(shù)的不斷升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證您看到的內容在您看到時(shí)可用。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前掌握的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  剩下的3個(gè)參數與用戶(hù)的id和tokenticket的含義有關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。在batch采集上測試的ios微信客戶(hù)端崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾號歷史消息頁(yè)面中文章的列表發(fā)送到自己的服務(wù)器上。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用PHP語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表并建立采集隊列來(lái)實(shí)現批次采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、 設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )出現302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件的內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成了ca證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是對anyproxy規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái)詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

文章采集系統(大數據商品采集系統全網(wǎng)文章特征(ctrpredictor)采集)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 183 次瀏覽 ? 2021-12-07 01:04 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(大數據商品采集系統全網(wǎng)文章特征(ctrpredictor)采集)
  文章采集系統全網(wǎng)文章特征(ctrpredictor)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據商品采集系統全網(wǎng)商品特征信息(getusefulfromothermakers)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據關(guān)鍵詞文章的一句話(huà)描述信息全網(wǎng)聚合語(yǔ)言信息全網(wǎng)語(yǔ)言采集數據來(lái)自互聯(lián)網(wǎng)任意目標網(wǎng)站采集關(guān)鍵詞只采集-對應或相關(guān)的文章和其他所有用戶(hù)發(fā)布的帶詞采集文章內容為單篇文章,也包括所有書(shū)刊或其他類(lèi)型的內容文章全部符合采集條件和抓取標準(要采集的字段)文章收藏量、全文收藏量、贊超100的文章、全文收藏量大于10的書(shū)籍(支持單文章采集)不加載試讀,不包含圖片的文章。
  1、基礎功能文章、書(shū)籍采集;
  2、新聞、小說(shuō)采集
  3、內容采集目前支持爬蟲(chóng)直接爬取所有的基礎數據包括新聞、小說(shuō)、古籍這三類(lèi);所有的采集都會(huì )進(jìn)行重定向頁(yè)面url,爬蟲(chóng)服務(wù)器將重定向到目標頁(yè)面url后進(jìn)行處理,提取有效信息的方式進(jìn)行操作;然后再和網(wǎng)站驗證實(shí)驗性數據的采集范圍。采集同類(lèi)文章的兩個(gè)策略:數據量小,較快:直接找到原文上傳,獲取最新的內容;數據量大,較慢:對文章進(jìn)行分割,采集分割的文章利用模擬瀏覽器獲取json中的字段數據進(jìn)行處理,生成匹配的結果發(fā)送給服務(wù)器進(jìn)行處理。
  4、數據采集規則:采集文章標題:分詞采集首尾,特殊格式選擇有用詞等;爬蟲(chóng)原理:通過(guò)瀏覽器提供的谷歌翻譯庫進(jìn)行點(diǎn)擊器抓取網(wǎng)站各種文章內容;為什么不進(jìn)行網(wǎng)頁(yè)抓???開(kāi)發(fā)難度高,不穩定;真實(shí)采集復雜信息需要改變請求發(fā)送路徑,且傳輸速度慢;網(wǎng)站提供的可爬取內容有限,整體內容包含數千萬(wàn)條,所以未能應用所有的抓取策略文章采集規則真實(shí)爬取上傳方法(網(wǎng)易云信-提供chrome端采集https協(xié)議的api)網(wǎng)易云信所以翻譯工具采集規則真實(shí)采集上傳方法——采集鏈接特征(重定向postheaders)把采集的鏈接發(fā)送到服務(wù)器,服務(wù)器驗證url有效后,返回即為有效數據,返回結果為json格式傳入request.url,即request.request(url,params=none)真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;多種采集策略:?jiǎn)螚l、多條、模擬請求等。文章采集策略真實(shí)爬取策略點(diǎn)擊采集(clicksnapshot)點(diǎn)擊采。 查看全部

  文章采集系統(大數據商品采集系統全網(wǎng)文章特征(ctrpredictor)采集)
  文章采集系統全網(wǎng)文章特征(ctrpredictor)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據商品采集系統全網(wǎng)商品特征信息(getusefulfromothermakers)采集來(lái)自網(wǎng)易云信權威數據源:云信大數據關(guān)鍵詞文章的一句話(huà)描述信息全網(wǎng)聚合語(yǔ)言信息全網(wǎng)語(yǔ)言采集數據來(lái)自互聯(lián)網(wǎng)任意目標網(wǎng)站采集關(guān)鍵詞只采集-對應或相關(guān)的文章和其他所有用戶(hù)發(fā)布的帶詞采集文章內容為單篇文章,也包括所有書(shū)刊或其他類(lèi)型的內容文章全部符合采集條件和抓取標準(要采集的字段)文章收藏量、全文收藏量、贊超100的文章、全文收藏量大于10的書(shū)籍(支持單文章采集)不加載試讀,不包含圖片的文章。
  1、基礎功能文章、書(shū)籍采集;
  2、新聞、小說(shuō)采集
  3、內容采集目前支持爬蟲(chóng)直接爬取所有的基礎數據包括新聞、小說(shuō)、古籍這三類(lèi);所有的采集都會(huì )進(jìn)行重定向頁(yè)面url,爬蟲(chóng)服務(wù)器將重定向到目標頁(yè)面url后進(jìn)行處理,提取有效信息的方式進(jìn)行操作;然后再和網(wǎng)站驗證實(shí)驗性數據的采集范圍。采集同類(lèi)文章的兩個(gè)策略:數據量小,較快:直接找到原文上傳,獲取最新的內容;數據量大,較慢:對文章進(jìn)行分割,采集分割的文章利用模擬瀏覽器獲取json中的字段數據進(jìn)行處理,生成匹配的結果發(fā)送給服務(wù)器進(jìn)行處理。
  4、數據采集規則:采集文章標題:分詞采集首尾,特殊格式選擇有用詞等;爬蟲(chóng)原理:通過(guò)瀏覽器提供的谷歌翻譯庫進(jìn)行點(diǎn)擊器抓取網(wǎng)站各種文章內容;為什么不進(jìn)行網(wǎng)頁(yè)抓???開(kāi)發(fā)難度高,不穩定;真實(shí)采集復雜信息需要改變請求發(fā)送路徑,且傳輸速度慢;網(wǎng)站提供的可爬取內容有限,整體內容包含數千萬(wàn)條,所以未能應用所有的抓取策略文章采集規則真實(shí)爬取上傳方法(網(wǎng)易云信-提供chrome端采集https協(xié)議的api)網(wǎng)易云信所以翻譯工具采集規則真實(shí)采集上傳方法——采集鏈接特征(重定向postheaders)把采集的鏈接發(fā)送到服務(wù)器,服務(wù)器驗證url有效后,返回即為有效數據,返回結果為json格式傳入request.url,即request.request(url,params=none)真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)抓取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;真實(shí)爬取支持:queryset:未知接口;采集器之間共享urlkey和key;多種采集策略:?jiǎn)螚l、多條、模擬請求等。文章采集策略真實(shí)爬取策略點(diǎn)擊采集(clicksnapshot)點(diǎn)擊采。

文章采集系統(nmon系統開(kāi)發(fā)系統的優(yōu)點(diǎn)及解決辦法 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 159 次瀏覽 ? 2021-12-05 03:11 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(nmon系統開(kāi)發(fā)系統的優(yōu)點(diǎn)及解決辦法
)
  一、nmon 介紹
  Nmon 首次集成在 IMB AIX 中,并于 2009 年開(kāi)源。nmon 系統支持常見(jiàn)的發(fā)行版 Linux、IBM POWER、大型機和 ARM;
  運維人員可以通過(guò)nmon動(dòng)態(tài)查看當前CPU負載、內存使用情況、網(wǎng)絡(luò )負載等,也可以進(jìn)行時(shí)間段數據采集,通過(guò)圖表展示;
  
  1.1 nmon 優(yōu)勢
  官方網(wǎng)站:
  1.2 下載,解壓
  nmon 最新版本是 16m
  wget https://nchc.dl.sourceforge.ne ... ar.gz
#解壓
mkdir nmon
tar xvf nmon16m_helpsystems.tar.gz -C /opt/nmon
  如需支持ARM,請下載以下版本
  wget http://sourceforge.net/project ... ar.gz
  解壓后有很多二進(jìn)制文件,可以根據自己的平臺選擇。比如我的操作系統是CentOS7,我選擇nmon_x86_64_centos7
  nmon_power_64_centos6 nmon_power_64le_rhel8 nmon_power_64_rhel7 nmon_x86_64_debian09 nmon_x86_64_oel8 nmon_x86_64_rhel7 nmon_x86_64_ubuntu16
nmon_power_64_centos7 nmon_power_64le_sles12 nmon_power_64_sles11 nmon_x86_64_debian10 nmon_x86_64_opensuse10 nmon_x86_64_rhel8 nmon_x86_64_ubuntu18
nmon_power_64le_centos7 nmon_power_64le_ubuntu14 nmon_x86_64_centos5 nmon_x86_64_mint18 nmon_x86_64_opensuse11 nmon_x86_64_sles10 nmon_x86_64_ubuntu19
nmon_power_64le_centos8 nmon_power_64le_ubuntu16 nmon_x86_64_centos6 nmon_x86_64_mint19 nmon_x86_64_opensuse12 nmon_x86_64_sles11
nmon_power_64le_linux nmon_power_64le_ubuntu18 nmon_x86_64_centos7 nmon_x86_64_oel5 nmon_x86_64_opensuse15 nmon_x86_64_sles12
nmon_power_64le_rhel7 nmon_power_64_linux nmon_x86_64_centos8 nmon_x86_64_oel6 nmon_x86_64_rhel5 nmon_x86_64_sles15
nmon_power_64le_rhel7_gpu nmon_power_64_rhel6 nmon_x86_64_debian08 nmon_x86_64_oel7 nmon_x86_64_rhel6 nmon_x86_64_ubuntu14
  建立軟連接
  如果 nmon 安裝在 /opt/nmon/ 下
   ln -s /opt/nmon/nmon_x86_64_centos7 /usr/bin/nmon
  二、使用
  如果直接查看當前運行數據,可以直接從命令行執行nmon,根據界面提示的選項選擇查看數據
  
  如果需要采集每個(gè)時(shí)間段的運行數據,可以使用nmon的采集功能;
  nmon采集主要參數如下:
  For Data-Collect-Mode
-f # 必選項,保存數據到本地目錄中,格式為.nmon。
# 不指定采集間隔(默認為秒)或者快照數默認為-s300 -c288,即每5分鐘采集一次,采集288次停止;
-s # 采集間隔時(shí)間
-c # 采集次快照數,采集多少次后停止采集
-t # 采集系統進(jìn)程和數據,(-T能收集命令參數)
-x # 采集規劃 Capacity Planning=15 min snapshots for 1 day. (nmon -ft -s 900 -c 96)
  2.1 開(kāi)始采集
  創(chuàng )建采集目錄
  mkdir -p /data/nmon/
  從采集開(kāi)始,采集快照不要太多,每次最好保持在500~800次
  示例1:簡(jiǎn)單抓圖,每2分鐘一次采集,快照采集到720次停止采集
  nmon-f-s120-c720 -m/data/nmon/
  示例 2:使用系統進(jìn)程捕獲快照
  nmon-fT-s120-c720 -m/data/nmon/
  示例 3:在系統過(guò)載時(shí)捕獲快照,采集5 秒一次
  nmon-fT-s5-c720 -m/data/nmon/
  采集啟動(dòng)后會(huì )在對應的存儲目錄下形成一個(gè)文件,格式為:hostname_date_采集time
  比如我創(chuàng )建了一個(gè)簡(jiǎn)單的采集,每2分鐘一次采集,10次后采集自動(dòng)退出;這樣你就可以每2分鐘查看一次
  pev_211201_1138.nmon 更新一次時(shí)間戳
  nmon -f -s120 -c10 -m /data/nmon/
  
  2.2站采集
  采集指定次數后,nmon會(huì )自動(dòng)停止進(jìn)程。如果要手動(dòng)停止采集,可以使用ps -ef |grep nmon查看nmon的PID,然后使用kill -USR2 PID號殺進(jìn)程號。切記不要使用kill -9,會(huì )造成nmon采集文件損壞無(wú)法解析
  # 查看進(jìn)程
ps -ef |grep nmon
root 3116 1 0 11:38 pts/0 00:00:00 nmon -f -s120 -c10 -m /data/nmon/
root 4119 28852 0 11:54 pts/0 00:00:00 grep --color=auto nmon
# 殺掉進(jìn)程
kill -USR2 3116
  2.2 分析 2.2.1 nmonchart 分析
  Nmonchart可以將nmon采集的數據解析成網(wǎng)頁(yè)格式(html),通過(guò)Javascript使用谷歌圖表庫解析成圖表文件,方便運維人員分析數據;
  注意:此方法需要翻墻支撐
  下載并解壓 nmonchart
  wget http://sourceforge.net/project ... 0.tar
tar zvf nmonchart40.tar -C /opt/nmonchart/
  建立軟連接
  ln -s /opt/nmonchart/nmonchart /usr/bin/nmonchart
  開(kāi)始轉換
  nmonchart是用Korn shell寫(xiě)的,centos上用bash不常見(jiàn),需要單獨安裝ksh
  yum install ksh
  轉換語(yǔ)法為
  nmonchart file_name.nmon out_file_name.html
  例如將 pev_211201_1138.nmon 轉換為 test.html
  nmonchart pev_211201_1138.nmon test.html
  打開(kāi)VPN,下載到本地在瀏覽器中打開(kāi),等待幾秒。點(diǎn)擊上方標簽查看對應負載
  
  2.2.2 nmon Analyzer分析
  Nmon Analyzer 使用 EXCEL 將 nmon采集 的數據轉換成圖表模式。推薦使用Micsoft office2016。
  注意:對于大型 nmon 數據文件(10+ MB),強烈建議安裝 64 位 Microsoft Excel 2016 或更高版本,并且本地內存至少 8 GB,最好 16 GB 或更大;
  下載 nmon 分析器
  可以通過(guò)瀏覽器下載,地址是
  注意:可能下載不成功,可以多試幾次
  下載完成后會(huì )有一個(gè)PDF文件和一個(gè)EXCEL文件,其中EXCEL起到解析作用。
  
  將nmon生成的文件(format.nmon)下載到本地,打開(kāi)EXCEL或WPS格式的宏,打開(kāi)nmon分析器v69_2.xlsm格式文件,點(diǎn)擊Analyze nmon data添加nmon文件。
  
  等待一段時(shí)間解析后,即可查看文件,
  
  普通采集和進(jìn)程的三個(gè)區別采集
<p>普通 采集 nmon -f -s120 -c10 和 process 采集nmon -fT -s120 -c10,process 采集 還有 2 個(gè)選項,Top Summary 和 Top Commands; 查看全部

  文章采集系統(nmon系統開(kāi)發(fā)系統的優(yōu)點(diǎn)及解決辦法
)
  一、nmon 介紹
  Nmon 首次集成在 IMB AIX 中,并于 2009 年開(kāi)源。nmon 系統支持常見(jiàn)的發(fā)行版 Linux、IBM POWER、大型機和 ARM;
  運維人員可以通過(guò)nmon動(dòng)態(tài)查看當前CPU負載、內存使用情況、網(wǎng)絡(luò )負載等,也可以進(jìn)行時(shí)間段數據采集,通過(guò)圖表展示;
  
  1.1 nmon 優(yōu)勢
  官方網(wǎng)站:
  1.2 下載,解壓
  nmon 最新版本是 16m
  wget https://nchc.dl.sourceforge.ne ... ar.gz
#解壓
mkdir nmon
tar xvf nmon16m_helpsystems.tar.gz -C /opt/nmon
  如需支持ARM,請下載以下版本
  wget http://sourceforge.net/project ... ar.gz
  解壓后有很多二進(jìn)制文件,可以根據自己的平臺選擇。比如我的操作系統是CentOS7,我選擇nmon_x86_64_centos7
  nmon_power_64_centos6 nmon_power_64le_rhel8 nmon_power_64_rhel7 nmon_x86_64_debian09 nmon_x86_64_oel8 nmon_x86_64_rhel7 nmon_x86_64_ubuntu16
nmon_power_64_centos7 nmon_power_64le_sles12 nmon_power_64_sles11 nmon_x86_64_debian10 nmon_x86_64_opensuse10 nmon_x86_64_rhel8 nmon_x86_64_ubuntu18
nmon_power_64le_centos7 nmon_power_64le_ubuntu14 nmon_x86_64_centos5 nmon_x86_64_mint18 nmon_x86_64_opensuse11 nmon_x86_64_sles10 nmon_x86_64_ubuntu19
nmon_power_64le_centos8 nmon_power_64le_ubuntu16 nmon_x86_64_centos6 nmon_x86_64_mint19 nmon_x86_64_opensuse12 nmon_x86_64_sles11
nmon_power_64le_linux nmon_power_64le_ubuntu18 nmon_x86_64_centos7 nmon_x86_64_oel5 nmon_x86_64_opensuse15 nmon_x86_64_sles12
nmon_power_64le_rhel7 nmon_power_64_linux nmon_x86_64_centos8 nmon_x86_64_oel6 nmon_x86_64_rhel5 nmon_x86_64_sles15
nmon_power_64le_rhel7_gpu nmon_power_64_rhel6 nmon_x86_64_debian08 nmon_x86_64_oel7 nmon_x86_64_rhel6 nmon_x86_64_ubuntu14
  建立軟連接
  如果 nmon 安裝在 /opt/nmon/ 下
   ln -s /opt/nmon/nmon_x86_64_centos7 /usr/bin/nmon
  二、使用
  如果直接查看當前運行數據,可以直接從命令行執行nmon,根據界面提示的選項選擇查看數據
  
  如果需要采集每個(gè)時(shí)間段的運行數據,可以使用nmon的采集功能;
  nmon采集主要參數如下:
  For Data-Collect-Mode
-f # 必選項,保存數據到本地目錄中,格式為.nmon。
# 不指定采集間隔(默認為秒)或者快照數默認為-s300 -c288,即每5分鐘采集一次,采集288次停止;
-s # 采集間隔時(shí)間
-c # 采集次快照數,采集多少次后停止采集
-t # 采集系統進(jìn)程和數據,(-T能收集命令參數)
-x # 采集規劃 Capacity Planning=15 min snapshots for 1 day. (nmon -ft -s 900 -c 96)
  2.1 開(kāi)始采集
  創(chuàng )建采集目錄
  mkdir -p /data/nmon/
  從采集開(kāi)始,采集快照不要太多,每次最好保持在500~800次
  示例1:簡(jiǎn)單抓圖,每2分鐘一次采集,快照采集到720次停止采集
  nmon-f-s120-c720 -m/data/nmon/
  示例 2:使用系統進(jìn)程捕獲快照
  nmon-fT-s120-c720 -m/data/nmon/
  示例 3:在系統過(guò)載時(shí)捕獲快照,采集5 秒一次
  nmon-fT-s5-c720 -m/data/nmon/
  采集啟動(dòng)后會(huì )在對應的存儲目錄下形成一個(gè)文件,格式為:hostname_date_采集time
  比如我創(chuàng )建了一個(gè)簡(jiǎn)單的采集,每2分鐘一次采集,10次后采集自動(dòng)退出;這樣你就可以每2分鐘查看一次
  pev_211201_1138.nmon 更新一次時(shí)間戳
  nmon -f -s120 -c10 -m /data/nmon/
  
  2.2站采集
  采集指定次數后,nmon會(huì )自動(dòng)停止進(jìn)程。如果要手動(dòng)停止采集,可以使用ps -ef |grep nmon查看nmon的PID,然后使用kill -USR2 PID號殺進(jìn)程號。切記不要使用kill -9,會(huì )造成nmon采集文件損壞無(wú)法解析
  # 查看進(jìn)程
ps -ef |grep nmon
root 3116 1 0 11:38 pts/0 00:00:00 nmon -f -s120 -c10 -m /data/nmon/
root 4119 28852 0 11:54 pts/0 00:00:00 grep --color=auto nmon
# 殺掉進(jìn)程
kill -USR2 3116
  2.2 分析 2.2.1 nmonchart 分析
  Nmonchart可以將nmon采集的數據解析成網(wǎng)頁(yè)格式(html),通過(guò)Javascript使用谷歌圖表庫解析成圖表文件,方便運維人員分析數據;
  注意:此方法需要翻墻支撐
  下載并解壓 nmonchart
  wget http://sourceforge.net/project ... 0.tar
tar zvf nmonchart40.tar -C /opt/nmonchart/
  建立軟連接
  ln -s /opt/nmonchart/nmonchart /usr/bin/nmonchart
  開(kāi)始轉換
  nmonchart是用Korn shell寫(xiě)的,centos上用bash不常見(jiàn),需要單獨安裝ksh
  yum install ksh
  轉換語(yǔ)法為
  nmonchart file_name.nmon out_file_name.html
  例如將 pev_211201_1138.nmon 轉換為 test.html
  nmonchart pev_211201_1138.nmon test.html
  打開(kāi)VPN,下載到本地在瀏覽器中打開(kāi),等待幾秒。點(diǎn)擊上方標簽查看對應負載
  
  2.2.2 nmon Analyzer分析
  Nmon Analyzer 使用 EXCEL 將 nmon采集 的數據轉換成圖表模式。推薦使用Micsoft office2016。
  注意:對于大型 nmon 數據文件(10+ MB),強烈建議安裝 64 位 Microsoft Excel 2016 或更高版本,并且本地內存至少 8 GB,最好 16 GB 或更大;
  下載 nmon 分析器
  可以通過(guò)瀏覽器下載,地址是
  注意:可能下載不成功,可以多試幾次
  下載完成后會(huì )有一個(gè)PDF文件和一個(gè)EXCEL文件,其中EXCEL起到解析作用。
  
  將nmon生成的文件(format.nmon)下載到本地,打開(kāi)EXCEL或WPS格式的宏,打開(kāi)nmon分析器v69_2.xlsm格式文件,點(diǎn)擊Analyze nmon data添加nmon文件。
  
  等待一段時(shí)間解析后,即可查看文件,
  
  普通采集和進(jìn)程的三個(gè)區別采集
<p>普通 采集 nmon -f -s120 -c10 和 process 采集nmon -fT -s120 -c10,process 采集 還有 2 個(gè)選項,Top Summary 和 Top Commands;

文章采集系統(天鴿軟件的設計簡(jiǎn)單,易上手,h5更小)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 142 次瀏覽 ? 2021-12-02 21:08 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(天鴿軟件的設計簡(jiǎn)單,易上手,h5更小)
  文章采集系統又被人罵了。最近打卡記錄,各種計劃安排和工作任務(wù)全部都被打到時(shí)間段后臺,好一陣兒沒(méi)有動(dòng)靜。于是我就起疑了,畢竟每天都差不多,百萬(wàn)人同時(shí)打卡,怎么可能一個(gè)半小時(shí)每個(gè)人加起來(lái)記錄不到十分鐘?這就引出了今天的主角-天鴿軟件天鴿軟件的設計簡(jiǎn)單,易上手,與墨跡天氣天鴿小程序采用一樣的設計,可以說(shuō)是雙贏(yíng)。
  誰(shuí)都沒(méi)法想象到群活動(dòng)眾籌的人數是多少,效果又是怎樣。(我參與了三次社區打卡活動(dòng),每次都有很多成員參與?。┛墒俏以陧椖刻峤淮a時(shí),有些我一直在想的細節沒(méi)有在里面。我想問(wèn)問(wèn)大家,我們如何在打卡前對天鴿有一個(gè)全局的了解。我得到以下建議。1.可以用客戶(hù)端軟件或者h5(vps架構最好,h5更?。?.如果條件允許,可以使用github提供的服務(wù)(如果有特殊要求,例如禁止修改打卡,就別用)沒(méi)有特殊要求的話(huà),可以用系統記錄。
  總結一下:大家目前遇到的大多數問(wèn)題:不能很方便的在打卡前對每個(gè)事件一一了解我想不失為一個(gè)好辦法。不過(guò)我想聊聊通知大家的一些設計技巧。大家好啊~因為天鴿比較小,一個(gè)賬號可以同時(shí)使用多個(gè)天鴿帳號打卡,但是在一個(gè)天鴿打卡頁(yè)面只能顯示最多四個(gè)天鴿帳號的名字。也就是說(shuō),如果你一個(gè)賬號只有五次打卡,你就只能點(diǎn)到這四個(gè)天鴿。
  除非你每個(gè)天鴿賬號點(diǎn)到天鴿所需要的時(shí)間差是有很大規律的,那么可以通過(guò)兩組不同的重復記錄來(lái)共享當前天鴿帳號,這是我一直想要解決的問(wèn)題。我設計的比較抽象一點(diǎn),都是我腦海中的想法。但是目前的我遇到問(wèn)題的話(huà),我會(huì )盡可能在每個(gè)事件上添加條件,不過(guò)條件要盡可能的簡(jiǎn)潔,不用打太多標簽。一次打卡記錄,要記錄天鴿名字,所以我把天鴿名字改成了“admin”因為我是記錄手機碼的,所以要記錄這個(gè)天鴿賬號的短號。
  但是手機碼好像沒(méi)有打錯號的狀況。所以還有個(gè)方法,把天鴿名字填在背景圖上。背景圖好像沒(méi)有限制,并且我當時(shí)忘記是用哪個(gè)了,用ios記錄的話(huà)其實(shí)是wifi下的圖,考慮到不是很方便,就沒(méi)采用?,F在已經(jīng)是2018年了,距離天鴿產(chǎn)品才發(fā)布不過(guò)三年時(shí)間,設計的盡可能簡(jiǎn)潔是當下解決問(wèn)題的最優(yōu)選。也希望在其他方面優(yōu)化,比如說(shuō)每個(gè)頁(yè)面查看每個(gè)賬號的打卡和名字的長(cháng)短都要容易理解,一個(gè)用戶(hù)平時(shí)也不可能打了百十來(lái)次天鴿又有多少漏打的。
  websparksflow每個(gè)頁(yè)面相當于一個(gè)小操作系統,所以每個(gè)頁(yè)面就相當于一個(gè)實(shí)體。所以實(shí)體間的聯(lián)動(dòng)是設計上很重要的問(wèn)題。要考慮操作系統流量的話(huà),就要處理流量因素。天鴿打卡功能要實(shí)現先打個(gè)網(wǎng)頁(yè)接口再打個(gè)程序。如果是單個(gè)頁(yè)面要用戶(hù)下載實(shí)體。 查看全部

  文章采集系統(天鴿軟件的設計簡(jiǎn)單,易上手,h5更小)
  文章采集系統又被人罵了。最近打卡記錄,各種計劃安排和工作任務(wù)全部都被打到時(shí)間段后臺,好一陣兒沒(méi)有動(dòng)靜。于是我就起疑了,畢竟每天都差不多,百萬(wàn)人同時(shí)打卡,怎么可能一個(gè)半小時(shí)每個(gè)人加起來(lái)記錄不到十分鐘?這就引出了今天的主角-天鴿軟件天鴿軟件的設計簡(jiǎn)單,易上手,與墨跡天氣天鴿小程序采用一樣的設計,可以說(shuō)是雙贏(yíng)。
  誰(shuí)都沒(méi)法想象到群活動(dòng)眾籌的人數是多少,效果又是怎樣。(我參與了三次社區打卡活動(dòng),每次都有很多成員參與?。┛墒俏以陧椖刻峤淮a時(shí),有些我一直在想的細節沒(méi)有在里面。我想問(wèn)問(wèn)大家,我們如何在打卡前對天鴿有一個(gè)全局的了解。我得到以下建議。1.可以用客戶(hù)端軟件或者h5(vps架構最好,h5更?。?.如果條件允許,可以使用github提供的服務(wù)(如果有特殊要求,例如禁止修改打卡,就別用)沒(méi)有特殊要求的話(huà),可以用系統記錄。
  總結一下:大家目前遇到的大多數問(wèn)題:不能很方便的在打卡前對每個(gè)事件一一了解我想不失為一個(gè)好辦法。不過(guò)我想聊聊通知大家的一些設計技巧。大家好啊~因為天鴿比較小,一個(gè)賬號可以同時(shí)使用多個(gè)天鴿帳號打卡,但是在一個(gè)天鴿打卡頁(yè)面只能顯示最多四個(gè)天鴿帳號的名字。也就是說(shuō),如果你一個(gè)賬號只有五次打卡,你就只能點(diǎn)到這四個(gè)天鴿。
  除非你每個(gè)天鴿賬號點(diǎn)到天鴿所需要的時(shí)間差是有很大規律的,那么可以通過(guò)兩組不同的重復記錄來(lái)共享當前天鴿帳號,這是我一直想要解決的問(wèn)題。我設計的比較抽象一點(diǎn),都是我腦海中的想法。但是目前的我遇到問(wèn)題的話(huà),我會(huì )盡可能在每個(gè)事件上添加條件,不過(guò)條件要盡可能的簡(jiǎn)潔,不用打太多標簽。一次打卡記錄,要記錄天鴿名字,所以我把天鴿名字改成了“admin”因為我是記錄手機碼的,所以要記錄這個(gè)天鴿賬號的短號。
  但是手機碼好像沒(méi)有打錯號的狀況。所以還有個(gè)方法,把天鴿名字填在背景圖上。背景圖好像沒(méi)有限制,并且我當時(shí)忘記是用哪個(gè)了,用ios記錄的話(huà)其實(shí)是wifi下的圖,考慮到不是很方便,就沒(méi)采用?,F在已經(jīng)是2018年了,距離天鴿產(chǎn)品才發(fā)布不過(guò)三年時(shí)間,設計的盡可能簡(jiǎn)潔是當下解決問(wèn)題的最優(yōu)選。也希望在其他方面優(yōu)化,比如說(shuō)每個(gè)頁(yè)面查看每個(gè)賬號的打卡和名字的長(cháng)短都要容易理解,一個(gè)用戶(hù)平時(shí)也不可能打了百十來(lái)次天鴿又有多少漏打的。
  websparksflow每個(gè)頁(yè)面相當于一個(gè)小操作系統,所以每個(gè)頁(yè)面就相當于一個(gè)實(shí)體。所以實(shí)體間的聯(lián)動(dòng)是設計上很重要的問(wèn)題。要考慮操作系統流量的話(huà),就要處理流量因素。天鴿打卡功能要實(shí)現先打個(gè)網(wǎng)頁(yè)接口再打個(gè)程序。如果是單個(gè)頁(yè)面要用戶(hù)下載實(shí)體。

文章采集系統(學(xué)習基本的java知識(看人)-文章采集系統)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 164 次瀏覽 ? 2021-12-02 03:02 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(學(xué)習基本的java知識(看人)-文章采集系統)
  文章采集系統,原理就是,根據服務(wù)器返回的地址抓包獲取數據抓包,基本上可以抓出http協(xié)議一切方式,當然也包括ajax。springmvc,本來(lái)就是java寫(xiě)的,按我的理解,一切php的東西它都可以抓取。不清楚你需要抓到什么數據。但是json,xml,prototype,jsp,string,這些一般都可以抓取,我不確定你是什么方向的開(kāi)發(fā)人員。
  希望你能自己按項目需求自己創(chuàng )建一個(gè)項目,自己做一個(gè)抓包抓取系統。一步步落實(shí)。不要只是“想想”,走一步看一步。補充一下,這東西抓取有難度,解析就簡(jiǎn)單了。
  學(xué)習基本的java知識(看人),抓包,
  試試
  可以看看我們做的小程序的抓包試試
  自己想象一下如果我需要抓取html全部細節/dom你能理解一切嗎?
  我知道有兩個(gè)小工具,抓取html全部細節,很好用。
  就是ajax請求唄,就是webserver并發(fā)等于nodejs的情況,抓包是很簡(jiǎn)單的技術(shù),但抓包不是項目必要的技術(shù),最實(shí)用的,
  懂一點(diǎn)點(diǎn)簡(jiǎn)單的http協(xié)議,能抓取一些xml文件之類(lèi)的,不過(guò)大量的話(huà)并不好找,我們公司的目標是百萬(wàn)級別,這樣可以解決一些難以找到的細節,比如那種數據不能有重復, 查看全部

  文章采集系統(學(xué)習基本的java知識(看人)-文章采集系統)
  文章采集系統,原理就是,根據服務(wù)器返回的地址抓包獲取數據抓包,基本上可以抓出http協(xié)議一切方式,當然也包括ajax。springmvc,本來(lái)就是java寫(xiě)的,按我的理解,一切php的東西它都可以抓取。不清楚你需要抓到什么數據。但是json,xml,prototype,jsp,string,這些一般都可以抓取,我不確定你是什么方向的開(kāi)發(fā)人員。
  希望你能自己按項目需求自己創(chuàng )建一個(gè)項目,自己做一個(gè)抓包抓取系統。一步步落實(shí)。不要只是“想想”,走一步看一步。補充一下,這東西抓取有難度,解析就簡(jiǎn)單了。
  學(xué)習基本的java知識(看人),抓包,
  試試
  可以看看我們做的小程序的抓包試試
  自己想象一下如果我需要抓取html全部細節/dom你能理解一切嗎?
  我知道有兩個(gè)小工具,抓取html全部細節,很好用。
  就是ajax請求唄,就是webserver并發(fā)等于nodejs的情況,抓包是很簡(jiǎn)單的技術(shù),但抓包不是項目必要的技術(shù),最實(shí)用的,
  懂一點(diǎn)點(diǎn)簡(jiǎn)單的http協(xié)議,能抓取一些xml文件之類(lèi)的,不過(guò)大量的話(huà)并不好找,我們公司的目標是百萬(wàn)級別,這樣可以解決一些難以找到的細節,比如那種數據不能有重復,

文章采集系統(快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 138 次瀏覽 ? 2021-11-29 01:05 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞)
  文章采集系統是社交網(wǎng)絡(luò )最重要的傳播載體之一,其價(jià)值不言而喻。很多時(shí)候,傳播效果受多種因素的影響,每種因素也都有較好的和較差的結果。即使只采集互聯(lián)網(wǎng)搜索結果中比較相關(guān)的內容,也會(huì )有非常大的不同。因此,在選擇e2se2se采集系統時(shí),除了考慮采集網(wǎng)站的大量頁(yè)面等因素外,還要看采集效果指標和對應網(wǎng)站的表現指標之間的差異。
  快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞還是相關(guān)內容?前者是指用python來(lái)采集網(wǎng)頁(yè),相關(guān)內容指的是通過(guò)關(guān)鍵詞采集任何網(wǎng)站的內容?每個(gè)人做網(wǎng)站所面對的需求不同,python數據采集的方式肯定有很多種,
  樓主可以從兩方面判斷:1是可視化、2是簡(jiǎn)單易用
  確定要的方向,是從搜索引擎抓取,還是從百度seo抓取,或者是搜索網(wǎng)站全文檢索。不一樣的方向,所需要的爬蟲(chóng)語(yǔ)言也會(huì )有所不同。
  工欲善其事必先利其器
  采集數據樣式很重要有自定義框架的語(yǔ)言。如selenium什么的這類(lèi)工具。最后需要個(gè)采集軟件,解決網(wǎng)頁(yè)各種目錄,各種定位方式的問(wèn)題。
  看你用什么爬蟲(chóng)了,后期對接的方式。
  網(wǎng)頁(yè)數據采集并不難,難的是你需要采集多少數據,一個(gè)數據為基礎,其他的數據都是輔助。比如你有個(gè)歌詞網(wǎng)站,而你有采集歌詞功能,網(wǎng)頁(yè)為單行單句采集的話(huà),你需要需要根據歌詞里面的具體的長(cháng)度數據進(jìn)行定位,有人會(huì )說(shuō)這個(gè)也算是數據采集了,需要進(jìn)行統計,所以我的看法是這樣的,網(wǎng)頁(yè)采集你需要打算采集多少數據,這樣你才會(huì )根據你需要采集多少來(lái)做規劃,一個(gè)網(wǎng)頁(yè)的數據量大概是多少。只有規劃好了才知道你想采集的具體目標。 查看全部

  文章采集系統(快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞)
  文章采集系統是社交網(wǎng)絡(luò )最重要的傳播載體之一,其價(jià)值不言而喻。很多時(shí)候,傳播效果受多種因素的影響,每種因素也都有較好的和較差的結果。即使只采集互聯(lián)網(wǎng)搜索結果中比較相關(guān)的內容,也會(huì )有非常大的不同。因此,在選擇e2se2se采集系統時(shí),除了考慮采集網(wǎng)站的大量頁(yè)面等因素外,還要看采集效果指標和對應網(wǎng)站的表現指標之間的差異。
  快速采集目標網(wǎng)站的內容,目標指的是關(guān)鍵詞還是相關(guān)內容?前者是指用python來(lái)采集網(wǎng)頁(yè),相關(guān)內容指的是通過(guò)關(guān)鍵詞采集任何網(wǎng)站的內容?每個(gè)人做網(wǎng)站所面對的需求不同,python數據采集的方式肯定有很多種,
  樓主可以從兩方面判斷:1是可視化、2是簡(jiǎn)單易用
  確定要的方向,是從搜索引擎抓取,還是從百度seo抓取,或者是搜索網(wǎng)站全文檢索。不一樣的方向,所需要的爬蟲(chóng)語(yǔ)言也會(huì )有所不同。
  工欲善其事必先利其器
  采集數據樣式很重要有自定義框架的語(yǔ)言。如selenium什么的這類(lèi)工具。最后需要個(gè)采集軟件,解決網(wǎng)頁(yè)各種目錄,各種定位方式的問(wèn)題。
  看你用什么爬蟲(chóng)了,后期對接的方式。
  網(wǎng)頁(yè)數據采集并不難,難的是你需要采集多少數據,一個(gè)數據為基礎,其他的數據都是輔助。比如你有個(gè)歌詞網(wǎng)站,而你有采集歌詞功能,網(wǎng)頁(yè)為單行單句采集的話(huà),你需要需要根據歌詞里面的具體的長(cháng)度數據進(jìn)行定位,有人會(huì )說(shuō)這個(gè)也算是數據采集了,需要進(jìn)行統計,所以我的看法是這樣的,網(wǎng)頁(yè)采集你需要打算采集多少數據,這樣你才會(huì )根據你需要采集多少來(lái)做規劃,一個(gè)網(wǎng)頁(yè)的數據量大概是多少。只有規劃好了才知道你想采集的具體目標。

文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 225 次瀏覽 ? 2021-11-25 20:41 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦上的安卓模擬器。ios的微信客戶(hù)端在批處理采集過(guò)程中,經(jīng)實(shí)際測試,崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意一個(gè)公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到以/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  文章采集系統(一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址和采集方法)
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)完整的鏈接,可以正常顯示內容的樣子:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的類(lèi)似id的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、微信客戶(hù)端:可以是安裝了微信app的手機,也可以是電腦上的安卓模擬器。ios的微信客戶(hù)端在批處理采集過(guò)程中,經(jīng)實(shí)際測試,崩潰率高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到您的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)我就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、 生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意一個(gè)公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址localhost:8002就可以看到anyproxy的web界面了。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到以/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則說(shuō)明解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,以便獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,理解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);\r\n/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;\r\n/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  上面的代碼就是使用anyproxy修改了返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件的末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

文章采集系統(給出Elasticsearch+Logstash收集日志管理的第一件事,就是日志的收集)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2021-11-22 00:25 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(給出Elasticsearch+Logstash收集日志管理的第一件事,就是日志的收集)
  先給個(gè)人絕對最好的工具:ELK
  Elasticsearch+Logstash+Kibana
  采集日志
  日志管理的第一件事就是采集日志。日志采集是開(kāi)發(fā)者必備的技能。無(wú)論是哪種開(kāi)發(fā)語(yǔ)言或平臺,日志采集的插件都有很多選擇。例如:
  .net平臺上大家都喜歡的Log4net,支持多種存儲方式(文件、數據庫)、多種格式、多種日志拆分方式。
  java平臺主流的log4j、slf4j、logback有多種選擇。
  日志采集的組成部分這里不做說(shuō)明。用法非常簡(jiǎn)單。這里重點(diǎn)說(shuō)明一下,我們在采集日志時(shí)應該注意的幾點(diǎn):
  1. 日志級別必須標準化
  級別描述 debug 調試信息 info 用于采集感興趣的信息 warn 警告信息 error 錯誤信息
  許多開(kāi)發(fā)工程師總是喜歡使用 info 級別來(lái)記錄日志。通用組件的默認級別是info,默認會(huì )記錄所有信息。調試信息發(fā)布后,將不會(huì )被記錄。這是一種懶惰的做法,但也是一種非常普遍的做法。正確的做法是根據日志本身的特點(diǎn)設置日志級別。其實(shí)標準化的日志級別很重要:
  2. 錯誤日志的內容一定要詳細,信息日志要簡(jiǎn)潔易懂
  操作過(guò)大型系統的人都知道,除了數據庫存儲之外,日志、圖片、附件是存儲的三大債權人。它們占據了非常非常大的空間。所有記錄信息的日志都應該簡(jiǎn)潔易懂,以避免浪費空間。. 對于錯誤級別的錯誤,必須詳細記錄,因為所有錯誤的問(wèn)題都會(huì )在以后解決。
  為了對當時(shí)發(fā)生錯誤的場(chǎng)景有一個(gè)很好的反饋,上面的內容應該記錄下來(lái),越詳細越好。
  3. 錯誤日志必須全局采集
  前面說(shuō)過(guò),錯誤日志不僅是我們需要關(guān)注的,也是我需要解決的問(wèn)題。所有錯誤日志都非常重要。錯誤日志的采集必須全局采集。AOP 是您最好的合作伙伴。如果你發(fā)現你的errorr日志集合在每個(gè)類(lèi)別中,到處都有
  try
{
......
}
catch()
{
log.error("......")
}
  必須避免這種情況。無(wú)論使用哪種語(yǔ)言,錯誤處理都可以全局處理,錯誤日志也必須全局采集。
  管理日志
  每個(gè)開(kāi)發(fā)人員都非常熟悉日志的采集?;旧?,日志是根據日期存儲的。日常使用日志時(shí),還有一些要求:
  1. 需要控制單個(gè)文件的大小
  因為大家都是按日期保存的,但是因為有些人不注意日志,經(jīng)??吹接械南到y單個(gè)日志文件有幾百兆,有的甚至有幾千兆。其實(shí)大家都在關(guān)注最新的問(wèn)題。日志,所以控制單個(gè)日志文件的大小對于日志性能和后期運維非常方便。
  2. 日志應該易于瀏覽
  日志文件便于年輕人瀏覽。最好直接通過(guò)URL訪(fǎng)問(wèn)日志,而不是一波三折的登陸服務(wù)器。下載并再次分析需要10分鐘。
  3. 必須保證日志的安全
  日志內容有時(shí)收錄敏感信息,尤其是錯誤日志,直接拋出系統的具體錯誤。因此,除了方便查看日志之外,還要保證日志文件的安全性。如果日志文件是 html 或 txt,請記得修改您的日志文件權限,以便只有特定用戶(hù)可以訪(fǎng)問(wèn)它。不要隨便打開(kāi),每個(gè)人都可以訪(fǎng)問(wèn)。
  4. 應該定期清理日志
  日志占用大量的存儲空間,過(guò)大的日志也會(huì )對存儲性能產(chǎn)生一定的影響。應定期清理所有日志。
  當然,這個(gè)是不確定的,根據各個(gè)系統的情況制定一個(gè)清理計劃即可。
  如果你是一個(gè)小網(wǎng)站,一系統一服務(wù)器,日志管理就簡(jiǎn)單了。如果系統高可用,后端采用均衡負載,將日志存儲在當前服務(wù)器上是不明智的。日志必須統一存儲,因為均衡負載可能會(huì )隨時(shí)切換服務(wù)器。當發(fā)生故障時(shí),你需要找出日志存在于哪個(gè)服務(wù)器也是浪費時(shí)間。也可以傳遞日志文件:
  說(shuō)到日志同步,就不得不提到Logstash的日志組件。Logstash是目前使用最廣泛的日志采集組件,基于java平臺。其實(shí)java平臺的很多組件不需要懂java開(kāi)發(fā),只要簡(jiǎn)單配置一下就可以使用。
  Logstash 支持文件同步。也可以結合rsyslog進(jìn)行文件同步。當然,它也支持通過(guò)tcp協(xié)議與第三方連接。好的合作伙伴當然是 Elasticsearch。下面也會(huì )簡(jiǎn)單介紹一下Elasticsearch。
  Logstash中文手冊:點(diǎn)此
  分析日志
  日志分析也是一個(gè)大概念??赡苁窍到y的所有日志,包括訪(fǎng)問(wèn)日志、系統監控日志等,都是運維人員關(guān)心的,但是開(kāi)發(fā)者更關(guān)心的是日志:
  因此,開(kāi)發(fā)者對日志的要求比較簡(jiǎn)單,但處理不當也會(huì )面臨挑戰。如果你想根據某些關(guān)鍵字查找日志,又沒(méi)有可靠的系統進(jìn)行處理,那么你只能在ctrl+f或find命令中搜索你需要的信息。用過(guò)的人都知道,這絕對不是很好的體驗。那么有沒(méi)有好的工具來(lái)處理呢?是的,這里還有另外兩個(gè)工具:
  Kibana 界面預覽
  
  Elasticsearch+Logstash+Kibana是傳說(shuō)中的ELK,應該是現在最流行的日志處理平臺。
  Elasticsearch 中文文檔:點(diǎn)此 ELK 中文文檔:點(diǎn)此
  結尾
  下面簡(jiǎn)單介紹一下我心目中的日志管理系統。整體流程如圖:
  
  雖然推薦的工具是針對Java平臺的,但是無(wú)論平臺如何,日志處理的思路都是一樣的。如果ELK只作為日志管理工具,也可以應用到.net平臺,不用二次開(kāi)發(fā)也能很好用。ELK的使用有一定的學(xué)習成本。如果你有時(shí)間,你可以開(kāi)始單獨的文章來(lái)討論它。但是,這種學(xué)習成本可以忽略語(yǔ)言之間的差異。
  當然,如果你愿意使用腳本同步或者rsyn文件同步進(jìn)行日志處理,也是可以的。 查看全部

  文章采集系統(給出Elasticsearch+Logstash收集日志管理的第一件事,就是日志的收集)
  先給個(gè)人絕對最好的工具:ELK
  Elasticsearch+Logstash+Kibana
  采集日志
  日志管理的第一件事就是采集日志。日志采集是開(kāi)發(fā)者必備的技能。無(wú)論是哪種開(kāi)發(fā)語(yǔ)言或平臺,日志采集的插件都有很多選擇。例如:
  .net平臺上大家都喜歡的Log4net,支持多種存儲方式(文件、數據庫)、多種格式、多種日志拆分方式。
  java平臺主流的log4j、slf4j、logback有多種選擇。
  日志采集的組成部分這里不做說(shuō)明。用法非常簡(jiǎn)單。這里重點(diǎn)說(shuō)明一下,我們在采集日志時(shí)應該注意的幾點(diǎn):
  1. 日志級別必須標準化
  級別描述 debug 調試信息 info 用于采集感興趣的信息 warn 警告信息 error 錯誤信息
  許多開(kāi)發(fā)工程師總是喜歡使用 info 級別來(lái)記錄日志。通用組件的默認級別是info,默認會(huì )記錄所有信息。調試信息發(fā)布后,將不會(huì )被記錄。這是一種懶惰的做法,但也是一種非常普遍的做法。正確的做法是根據日志本身的特點(diǎn)設置日志級別。其實(shí)標準化的日志級別很重要:
  2. 錯誤日志的內容一定要詳細,信息日志要簡(jiǎn)潔易懂
  操作過(guò)大型系統的人都知道,除了數據庫存儲之外,日志、圖片、附件是存儲的三大債權人。它們占據了非常非常大的空間。所有記錄信息的日志都應該簡(jiǎn)潔易懂,以避免浪費空間。. 對于錯誤級別的錯誤,必須詳細記錄,因為所有錯誤的問(wèn)題都會(huì )在以后解決。
  為了對當時(shí)發(fā)生錯誤的場(chǎng)景有一個(gè)很好的反饋,上面的內容應該記錄下來(lái),越詳細越好。
  3. 錯誤日志必須全局采集
  前面說(shuō)過(guò),錯誤日志不僅是我們需要關(guān)注的,也是我需要解決的問(wèn)題。所有錯誤日志都非常重要。錯誤日志的采集必須全局采集。AOP 是您最好的合作伙伴。如果你發(fā)現你的errorr日志集合在每個(gè)類(lèi)別中,到處都有
  try
{
......
}
catch()
{
log.error("......")
}
  必須避免這種情況。無(wú)論使用哪種語(yǔ)言,錯誤處理都可以全局處理,錯誤日志也必須全局采集。
  管理日志
  每個(gè)開(kāi)發(fā)人員都非常熟悉日志的采集?;旧?,日志是根據日期存儲的。日常使用日志時(shí),還有一些要求:
  1. 需要控制單個(gè)文件的大小
  因為大家都是按日期保存的,但是因為有些人不注意日志,經(jīng)??吹接械南到y單個(gè)日志文件有幾百兆,有的甚至有幾千兆。其實(shí)大家都在關(guān)注最新的問(wèn)題。日志,所以控制單個(gè)日志文件的大小對于日志性能和后期運維非常方便。
  2. 日志應該易于瀏覽
  日志文件便于年輕人瀏覽。最好直接通過(guò)URL訪(fǎng)問(wèn)日志,而不是一波三折的登陸服務(wù)器。下載并再次分析需要10分鐘。
  3. 必須保證日志的安全
  日志內容有時(shí)收錄敏感信息,尤其是錯誤日志,直接拋出系統的具體錯誤。因此,除了方便查看日志之外,還要保證日志文件的安全性。如果日志文件是 html 或 txt,請記得修改您的日志文件權限,以便只有特定用戶(hù)可以訪(fǎng)問(wèn)它。不要隨便打開(kāi),每個(gè)人都可以訪(fǎng)問(wèn)。
  4. 應該定期清理日志
  日志占用大量的存儲空間,過(guò)大的日志也會(huì )對存儲性能產(chǎn)生一定的影響。應定期清理所有日志。
  當然,這個(gè)是不確定的,根據各個(gè)系統的情況制定一個(gè)清理計劃即可。
  如果你是一個(gè)小網(wǎng)站,一系統一服務(wù)器,日志管理就簡(jiǎn)單了。如果系統高可用,后端采用均衡負載,將日志存儲在當前服務(wù)器上是不明智的。日志必須統一存儲,因為均衡負載可能會(huì )隨時(shí)切換服務(wù)器。當發(fā)生故障時(shí),你需要找出日志存在于哪個(gè)服務(wù)器也是浪費時(shí)間。也可以傳遞日志文件:
  說(shuō)到日志同步,就不得不提到Logstash的日志組件。Logstash是目前使用最廣泛的日志采集組件,基于java平臺。其實(shí)java平臺的很多組件不需要懂java開(kāi)發(fā),只要簡(jiǎn)單配置一下就可以使用。
  Logstash 支持文件同步。也可以結合rsyslog進(jìn)行文件同步。當然,它也支持通過(guò)tcp協(xié)議與第三方連接。好的合作伙伴當然是 Elasticsearch。下面也會(huì )簡(jiǎn)單介紹一下Elasticsearch。
  Logstash中文手冊:點(diǎn)此
  分析日志
  日志分析也是一個(gè)大概念??赡苁窍到y的所有日志,包括訪(fǎng)問(wèn)日志、系統監控日志等,都是運維人員關(guān)心的,但是開(kāi)發(fā)者更關(guān)心的是日志:
  因此,開(kāi)發(fā)者對日志的要求比較簡(jiǎn)單,但處理不當也會(huì )面臨挑戰。如果你想根據某些關(guān)鍵字查找日志,又沒(méi)有可靠的系統進(jìn)行處理,那么你只能在ctrl+f或find命令中搜索你需要的信息。用過(guò)的人都知道,這絕對不是很好的體驗。那么有沒(méi)有好的工具來(lái)處理呢?是的,這里還有另外兩個(gè)工具:
  Kibana 界面預覽
  
  Elasticsearch+Logstash+Kibana是傳說(shuō)中的ELK,應該是現在最流行的日志處理平臺。
  Elasticsearch 中文文檔:點(diǎn)此 ELK 中文文檔:點(diǎn)此
  結尾
  下面簡(jiǎn)單介紹一下我心目中的日志管理系統。整體流程如圖:
  
  雖然推薦的工具是針對Java平臺的,但是無(wú)論平臺如何,日志處理的思路都是一樣的。如果ELK只作為日志管理工具,也可以應用到.net平臺,不用二次開(kāi)發(fā)也能很好用。ELK的使用有一定的學(xué)習成本。如果你有時(shí)間,你可以開(kāi)始單獨的文章來(lái)討論它。但是,這種學(xué)習成本可以忽略語(yǔ)言之間的差異。
  當然,如果你愿意使用腳本同步或者rsyn文件同步進(jìn)行日志處理,也是可以的。

文章采集系統(第一次使用springcloud架構來(lái)做爬蟲(chóng),歷時(shí)二十多天,終于搞定)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2021-11-20 13:12 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(第一次使用springcloud架構來(lái)做爬蟲(chóng),歷時(shí)二十多天,終于搞定)
  大家好,我是趣識網(wǎng)小柴,本文文章將與大家分享基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統。我希望它會(huì )對你有所幫助。
  前言
  因公司業(yè)務(wù)需要,需要獲取客戶(hù)提供的微信公眾號文章的歷史記錄,并每天更新。顯然,300多個(gè)公眾號無(wú)法每天手動(dòng)檢查,問(wèn)題提交給IT團隊。對于喜歡爬蟲(chóng)的人來(lái)說(shuō),我絕對想要他。之前做過(guò)搜狗的微信爬蟲(chóng),之后一直在做java web。這個(gè)項目重新點(diǎn)燃了我對爬蟲(chóng)的熱愛(ài)。首次使用spring cloud架構做爬蟲(chóng)。歷時(shí)20多天,終于搞定。接下來(lái)我將通過(guò)一系列文章分享項目經(jīng)驗,并提供源碼供大家指正!
  一、系統介紹
  本系統是基于Java開(kāi)發(fā)的。只需配置公眾號或微信公眾號,即可定時(shí)或即時(shí)(包括閱讀、點(diǎn)贊、觀(guān)看)抓取微信公眾號的文章。
  二、系統架構
  技術(shù)架構
  Spring Cloud、SpringBoot、Mybatis-Plus、Nacos、RocketMq、nginx
  貯存
  Mysql、MongoDB、Redis、Solr
  緩存
  Redis
  演戲
  提琴手
  三、系統優(yōu)缺點(diǎn)
  系統優(yōu)勢
  1、 配置公眾號后,可以使用Fiddler的JS注入功能和Websocket實(shí)現自動(dòng)爬??;2、 系統為分布式架構,高可用;3、RocketMq 消息隊列解決Coupling,可以解決采集由于網(wǎng)絡(luò )抖動(dòng)導致的失敗。3次消費不成功,會(huì )記錄日志到mysql,保證文章的完整性;4、可以添加任意數量的微信ID提高采集的效率,抵抗反攀登限制;5、Redis在24小時(shí)內緩存每個(gè)微信賬號的采集記錄,防止賬號被關(guān)閉;6、Nacos作為配置中心,可以通過(guò)熱配置調整采集的頻率 實(shí)時(shí); 7、將采集接收到的數據存儲在Solr集群中,提高檢索速度;8、 將捕獲返回的記錄存儲到MongoDB進(jìn)行歸檔查看錯誤日志。
  系統缺點(diǎn):
  1、通過(guò)真實(shí)手機真實(shí)賬號采集留言,如果你需要大量公眾號,需要有多個(gè)微信賬號作為支持(如果當天賬號達到上限,可以爬取微信官方平臺消息,可通過(guò)接口獲?。?;2、 不是發(fā)文就可以抓到的公眾號。采集的時(shí)間由系統設置,消息有一定的滯后性(如果公眾號不多的話(huà),微信信號數量就足夠了。通過(guò)增加采集頻率優(yōu)化)。
  四、模塊介紹
  由于后面會(huì )添加管理系統和API調用函數,所以提前封裝了一些函數。
  common-ws-starter
  公共模塊:存儲工具類(lèi)、實(shí)體類(lèi)等公共消息。
  redis-ws-starter
  Redis 模塊:是
  spring-boot-starter-data-redis的第二個(gè)包暴露了打包好的Redis工具類(lèi)和Redisson工具類(lèi)。
  RocketMQ-WS-啟動(dòng)器
  RocketMQ 模塊:是
  Rocketmq-spring-boot-starter 的二次封裝提供了消費重試和故障日志記錄功能。
  db-ws-starter
  mysql數據源模塊:封裝mysql數據源,支持多數據源,自定義注解實(shí)現數據源動(dòng)態(tài)切換。
  sql-wx-蜘蛛
  mysql數據庫模塊:提供mysql數據庫操作的所有功能。
  pc-wx-蜘蛛
  PC端采集模塊:收錄PC端采集公眾賬號歷史消息相關(guān)功能。
  java-wx-蜘蛛
  Java提取模塊:收錄Java程序提取文章內容相關(guān)的功能。
  移動(dòng)-wx-蜘蛛
  模擬器采集模塊:收錄與模擬器或手機采集消息交互量相關(guān)的功能。
  五、一般流程圖
  
  
  六、 運行截圖
  電腦和手機
  
  
  
  
  安慰
  
  
  
  
  
  
  運行結束
  
  
  總結
  親測項目現已上線(xiàn),項目開(kāi)發(fā)中解決了微信搜狗臨時(shí)鏈接永久鏈接問(wèn)題,希望能幫助到被同類(lèi)業(yè)務(wù)困擾的老鐵。如今,做java就像逆流而上。不前進(jìn)就會(huì )后退。我不知道你什么時(shí)候參與。我希望每個(gè)人都有自己的向日葵采集。如果你看到這個(gè),你不把它給一個(gè)采集嗎?
  以上是小柴分享的基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統的全部?jì)热?。我希望它?huì )對你有所幫助。 查看全部

  文章采集系統(第一次使用springcloud架構來(lái)做爬蟲(chóng),歷時(shí)二十多天,終于搞定)
  大家好,我是趣識網(wǎng)小柴,本文文章將與大家分享基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統。我希望它會(huì )對你有所幫助。
  前言
  因公司業(yè)務(wù)需要,需要獲取客戶(hù)提供的微信公眾號文章的歷史記錄,并每天更新。顯然,300多個(gè)公眾號無(wú)法每天手動(dòng)檢查,問(wèn)題提交給IT團隊。對于喜歡爬蟲(chóng)的人來(lái)說(shuō),我絕對想要他。之前做過(guò)搜狗的微信爬蟲(chóng),之后一直在做java web。這個(gè)項目重新點(diǎn)燃了我對爬蟲(chóng)的熱愛(ài)。首次使用spring cloud架構做爬蟲(chóng)。歷時(shí)20多天,終于搞定。接下來(lái)我將通過(guò)一系列文章分享項目經(jīng)驗,并提供源碼供大家指正!
  一、系統介紹
  本系統是基于Java開(kāi)發(fā)的。只需配置公眾號或微信公眾號,即可定時(shí)或即時(shí)(包括閱讀、點(diǎn)贊、觀(guān)看)抓取微信公眾號的文章。
  二、系統架構
  技術(shù)架構
  Spring Cloud、SpringBoot、Mybatis-Plus、Nacos、RocketMq、nginx
  貯存
  Mysql、MongoDB、Redis、Solr
  緩存
  Redis
  演戲
  提琴手
  三、系統優(yōu)缺點(diǎn)
  系統優(yōu)勢
  1、 配置公眾號后,可以使用Fiddler的JS注入功能和Websocket實(shí)現自動(dòng)爬??;2、 系統為分布式架構,高可用;3、RocketMq 消息隊列解決Coupling,可以解決采集由于網(wǎng)絡(luò )抖動(dòng)導致的失敗。3次消費不成功,會(huì )記錄日志到mysql,保證文章的完整性;4、可以添加任意數量的微信ID提高采集的效率,抵抗反攀登限制;5、Redis在24小時(shí)內緩存每個(gè)微信賬號的采集記錄,防止賬號被關(guān)閉;6、Nacos作為配置中心,可以通過(guò)熱配置調整采集的頻率 實(shí)時(shí); 7、將采集接收到的數據存儲在Solr集群中,提高檢索速度;8、 將捕獲返回的記錄存儲到MongoDB進(jìn)行歸檔查看錯誤日志。
  系統缺點(diǎn):
  1、通過(guò)真實(shí)手機真實(shí)賬號采集留言,如果你需要大量公眾號,需要有多個(gè)微信賬號作為支持(如果當天賬號達到上限,可以爬取微信官方平臺消息,可通過(guò)接口獲?。?;2、 不是發(fā)文就可以抓到的公眾號。采集的時(shí)間由系統設置,消息有一定的滯后性(如果公眾號不多的話(huà),微信信號數量就足夠了。通過(guò)增加采集頻率優(yōu)化)。
  四、模塊介紹
  由于后面會(huì )添加管理系統和API調用函數,所以提前封裝了一些函數。
  common-ws-starter
  公共模塊:存儲工具類(lèi)、實(shí)體類(lèi)等公共消息。
  redis-ws-starter
  Redis 模塊:是
  spring-boot-starter-data-redis的第二個(gè)包暴露了打包好的Redis工具類(lèi)和Redisson工具類(lèi)。
  RocketMQ-WS-啟動(dòng)器
  RocketMQ 模塊:是
  Rocketmq-spring-boot-starter 的二次封裝提供了消費重試和故障日志記錄功能。
  db-ws-starter
  mysql數據源模塊:封裝mysql數據源,支持多數據源,自定義注解實(shí)現數據源動(dòng)態(tài)切換。
  sql-wx-蜘蛛
  mysql數據庫模塊:提供mysql數據庫操作的所有功能。
  pc-wx-蜘蛛
  PC端采集模塊:收錄PC端采集公眾賬號歷史消息相關(guān)功能。
  java-wx-蜘蛛
  Java提取模塊:收錄Java程序提取文章內容相關(guān)的功能。
  移動(dòng)-wx-蜘蛛
  模擬器采集模塊:收錄與模擬器或手機采集消息交互量相關(guān)的功能。
  五、一般流程圖
  
  
  六、 運行截圖
  電腦和手機
  
  
  
  
  安慰
  
  
  
  
  
  
  運行結束
  
  
  總結
  親測項目現已上線(xiàn),項目開(kāi)發(fā)中解決了微信搜狗臨時(shí)鏈接永久鏈接問(wèn)題,希望能幫助到被同類(lèi)業(yè)務(wù)困擾的老鐵。如今,做java就像逆流而上。不前進(jìn)就會(huì )后退。我不知道你什么時(shí)候參與。我希望每個(gè)人都有自己的向日葵采集。如果你看到這個(gè),你不把它給一個(gè)采集嗎?
  以上是小柴分享的基于Spring Cloud的全自動(dòng)微信公眾號消息采集系統的全部?jì)热?。我希望它?huì )對你有所幫助。

文章采集系統(ok點(diǎn)擊排行榜排行榜統計代碼ok定時(shí)采集:ok數據庫)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 100 次瀏覽 ? 2021-11-20 01:16 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(ok點(diǎn)擊排行榜排行榜統計代碼ok定時(shí)采集:ok數據庫)
  #ebookapp 概述:新穎的采集系統基于bootstrap前端技術(shù),手機瀏覽效果更佳。演示 網(wǎng)站:
  我是小說(shuō)迷。在看小說(shuō)的過(guò)程中,遇到了n多個(gè)彈窗廣告,喜歡手機瀏覽。被無(wú)數彈窗廣告激怒后,我決定自己寫(xiě)小說(shuō)系統。
  因為一個(gè)人的開(kāi)發(fā)精力有限,非常歡迎對開(kāi)源軟件開(kāi)發(fā)有興趣、有分享精神的軟件開(kāi)發(fā)者和我一起開(kāi)發(fā)。
  聯(lián)系方式請加入QQ群:55614858 驗證信息:開(kāi)源愛(ài)好者
  發(fā)展清單:
  1.新分類(lèi)2.新種子3.采集文章4.采集目錄5.生成目錄6.采集 內容的基本思想是在cronjob定時(shí)采集生成種子,文章只有在讀取action時(shí)生成文章,而文章只有在讀取動(dòng)作時(shí)才會(huì )生成章節列表,章節列表只有在讀取動(dòng)作后才會(huì )生成章節內容。
  第一期:2013/08/24-2013/08/27 搜索==ok分頁(yè)==ok關(guān)鍵詞oktitleok點(diǎn)擊排行榜ok統計代碼ok計時(shí)采集:ok(每次找到,今天沒(méi)有更新過(guò)去的種子更新每10分鐘采集,一天24小時(shí),采集144次定期執行(admin/pick_seed.php)。
  第二段:定時(shí)刪除:刪除生成文件數最少的N個(gè)文章??梢栽O置最大存活文章數量。ok修改頁(yè)面301跳轉機制,301不好搜索引擎收錄 ok加入種子批量添加機制。好的
  第三期:
  文章在連載中,需要1小時(shí)加入緩存加入作者采集ok join文章圖片ok
  數據庫常用封裝支持,封裝為Model類(lèi),簡(jiǎn)化操作。好的
  采集 當你把文章的介紹加上圖片、作者??等采集時(shí),補充機制不再使用 ok 顯示用戶(hù)點(diǎn)擊列表,顯示最新更新,并生成 siteMap.xml.() ok 對于小站點(diǎn),php的并發(fā)進(jìn)程數是有限制的。比如進(jìn)程數限制為3個(gè),這時(shí)候如果訪(fǎng)問(wèn)的用戶(hù)比較多,經(jīng)常會(huì )出現508錯誤。為了解決這個(gè)問(wèn)題,可以使用完全靜態(tài)的方法。
  用戶(hù)中心,支持微博登錄,顯示最近閱讀文章,顯示采集文章
  文章采集 將文章的內容寫(xiě)入txt文件時(shí),不再支持生成現成的html文件,動(dòng)態(tài)生成html文件。為什么ajax不能動(dòng)態(tài)生成廣告頁(yè)面?去除cpm廣告,增加對cps和cpc廣告的支持,手機加載手機廣告,這是廣告生成模塊的職責。對于每次點(diǎn)擊費用廣告,javascript 可以模擬點(diǎn)擊添加種子。采集路由機制,根據不同的配置,不同的采集rule ok劃分頁(yè)面公共頁(yè)眉和公共頁(yè)腳頁(yè)面(目前只有一個(gè)首頁(yè),其他暫時(shí)做不到)
  自動(dòng)生成表的增刪改查等操作。添加文章介紹頁(yè)面,顯示最新章節
  定期生成站點(diǎn)地圖:
  自動(dòng)發(fā)布微博:
  自動(dòng)抓取文章列表為空的文章列表(原理:文章列表每天自動(dòng)更新,點(diǎn)擊時(shí)抓取章節,點(diǎn)擊時(shí)抓取內容點(diǎn)擊)
  定時(shí)任務(wù):wget -q -O /dev/null "" 查看全部

  文章采集系統(ok點(diǎn)擊排行榜排行榜統計代碼ok定時(shí)采集:ok數據庫)
  #ebookapp 概述:新穎的采集系統基于bootstrap前端技術(shù),手機瀏覽效果更佳。演示 網(wǎng)站:
  我是小說(shuō)迷。在看小說(shuō)的過(guò)程中,遇到了n多個(gè)彈窗廣告,喜歡手機瀏覽。被無(wú)數彈窗廣告激怒后,我決定自己寫(xiě)小說(shuō)系統。
  因為一個(gè)人的開(kāi)發(fā)精力有限,非常歡迎對開(kāi)源軟件開(kāi)發(fā)有興趣、有分享精神的軟件開(kāi)發(fā)者和我一起開(kāi)發(fā)。
  聯(lián)系方式請加入QQ群:55614858 驗證信息:開(kāi)源愛(ài)好者
  發(fā)展清單:
  1.新分類(lèi)2.新種子3.采集文章4.采集目錄5.生成目錄6.采集 內容的基本思想是在cronjob定時(shí)采集生成種子,文章只有在讀取action時(shí)生成文章,而文章只有在讀取動(dòng)作時(shí)才會(huì )生成章節列表,章節列表只有在讀取動(dòng)作后才會(huì )生成章節內容。
  第一期:2013/08/24-2013/08/27 搜索==ok分頁(yè)==ok關(guān)鍵詞oktitleok點(diǎn)擊排行榜ok統計代碼ok計時(shí)采集:ok(每次找到,今天沒(méi)有更新過(guò)去的種子更新每10分鐘采集,一天24小時(shí),采集144次定期執行(admin/pick_seed.php)。
  第二段:定時(shí)刪除:刪除生成文件數最少的N個(gè)文章??梢栽O置最大存活文章數量。ok修改頁(yè)面301跳轉機制,301不好搜索引擎收錄 ok加入種子批量添加機制。好的
  第三期:
  文章在連載中,需要1小時(shí)加入緩存加入作者采集ok join文章圖片ok
  數據庫常用封裝支持,封裝為Model類(lèi),簡(jiǎn)化操作。好的
  采集 當你把文章的介紹加上圖片、作者??等采集時(shí),補充機制不再使用 ok 顯示用戶(hù)點(diǎn)擊列表,顯示最新更新,并生成 siteMap.xml.() ok 對于小站點(diǎn),php的并發(fā)進(jìn)程數是有限制的。比如進(jìn)程數限制為3個(gè),這時(shí)候如果訪(fǎng)問(wèn)的用戶(hù)比較多,經(jīng)常會(huì )出現508錯誤。為了解決這個(gè)問(wèn)題,可以使用完全靜態(tài)的方法。
  用戶(hù)中心,支持微博登錄,顯示最近閱讀文章,顯示采集文章
  文章采集 將文章的內容寫(xiě)入txt文件時(shí),不再支持生成現成的html文件,動(dòng)態(tài)生成html文件。為什么ajax不能動(dòng)態(tài)生成廣告頁(yè)面?去除cpm廣告,增加對cps和cpc廣告的支持,手機加載手機廣告,這是廣告生成模塊的職責。對于每次點(diǎn)擊費用廣告,javascript 可以模擬點(diǎn)擊添加種子。采集路由機制,根據不同的配置,不同的采集rule ok劃分頁(yè)面公共頁(yè)眉和公共頁(yè)腳頁(yè)面(目前只有一個(gè)首頁(yè),其他暫時(shí)做不到)
  自動(dòng)生成表的增刪改查等操作。添加文章介紹頁(yè)面,顯示最新章節
  定期生成站點(diǎn)地圖:
  自動(dòng)發(fā)布微博:
  自動(dòng)抓取文章列表為空的文章列表(原理:文章列表每天自動(dòng)更新,點(diǎn)擊時(shí)抓取章節,點(diǎn)擊時(shí)抓取內容點(diǎn)擊)
  定時(shí)任務(wù):wget -q -O /dev/null ""

文章采集系統(戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器相關(guān)廠(chǎng)商的基本技術(shù)理念)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 143 次瀏覽 ? 2021-11-17 10:08 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器相關(guān)廠(chǎng)商的基本技術(shù)理念)
  文章采集系統作為企業(yè)it的核心技術(shù),其研發(fā)難度很大,市場(chǎng)較小。本文主要介紹了相關(guān)廠(chǎng)商的基本技術(shù)理念,供大家參考。traceanly,高效高質(zhì),20年專(zhuān)注:大數據采集系統開(kāi)發(fā)我們強調通過(guò)開(kāi)放接口、多流集成、高效率發(fā)展三大優(yōu)勢,幫助企業(yè)積極進(jìn)行創(chuàng )新,主要開(kāi)發(fā)平臺是java平臺和linux平臺。traceanly特色突出:1.前端接口流通,可以是saas,也可以是輕型網(wǎng)站,方便集中式集約化運營(yíng)管理。
  2.sdlietf作為語(yǔ)言開(kāi)發(fā)庫。3.純java語(yǔ)言架構。4.前端網(wǎng)絡(luò )支持以及系統啟動(dòng)后默認自帶路由。5.支持流量傳輸功能和二次封裝功能。6.支持跨地域或多系統集中管理。7.支持對象協(xié)議路由和基于jsonapi的網(wǎng)關(guān)。8.nginx/haproxy負載均衡。9.websocket。10.自研websocket內核。
  11.sls實(shí)現的簡(jiǎn)易服務(wù)器可以在線(xiàn)搭建。12.websocket/tcpapi接口方案可以在局域網(wǎng)或者廣域網(wǎng)部署。13.httpconnector支持tcp粘包/非粘包轉發(fā)、apache在線(xiàn)處理、java異步poller負載均衡等多種類(lèi)型。14.yaml格式靜態(tài)文件轉發(fā)以及binding。15.做客戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器。
  16.mysql:?jiǎn)我簧矸蒡炞C,單一服務(wù)的存儲同步,單一數據庫的關(guān)聯(lián)。17.websocket遠程多語(yǔ)言json實(shí)現,需要備份。18.數據整合(bitconnect/getfilter/postfilter/postmatte/heartbleed/tcp整合/ip整合/timestamp整合)。19.sls/websockethttpsemipolling/metaattribute/gzip/jsonapi/udp整合。
  20.websocket(onlinewebsocketengine,ow)/websocketserver,ssl/tls三種,需要插件做調試和負載均衡。百勝集團:(網(wǎng)絡(luò )集中化管理的平臺):1.客戶(hù)端驅動(dòng)網(wǎng)絡(luò )paas方案。2.連接池網(wǎng)絡(luò )架構。3.指揮平臺集中化。4.支持多個(gè)websocket負載均衡和ssl加密。
  5.圖片云服務(wù),可以綁定各種圖片,國內目前在進(jìn)行minidlc測試,db2也正在測試。6.支持異地圖,如武漢指揮中心。7.用戶(hù)管理。8.圖像重傳。9.客戶(hù)端萬(wàn)維網(wǎng)集中化集中管理。10.圖像重傳,抗tor瀏覽器漏洞。tannerimpl的誕生tannerimpl是阿里云強推的解決方案,它簡(jiǎn)化了無(wú)狀態(tài)無(wú)緩存的無(wú)ip推送,支持http6和post等各種類(lèi)型。
  chinatraceanly更主要側重于無(wú)狀態(tài)無(wú)緩存的網(wǎng)頁(yè)推送,其解決方案是利用現成代碼實(shí)現,支持無(wú)狀態(tài)無(wú)緩存的服務(wù)器進(jìn)行推送。 查看全部

  文章采集系統(戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器相關(guān)廠(chǎng)商的基本技術(shù)理念)
  文章采集系統作為企業(yè)it的核心技術(shù),其研發(fā)難度很大,市場(chǎng)較小。本文主要介紹了相關(guān)廠(chǎng)商的基本技術(shù)理念,供大家參考。traceanly,高效高質(zhì),20年專(zhuān)注:大數據采集系統開(kāi)發(fā)我們強調通過(guò)開(kāi)放接口、多流集成、高效率發(fā)展三大優(yōu)勢,幫助企業(yè)積極進(jìn)行創(chuàng )新,主要開(kāi)發(fā)平臺是java平臺和linux平臺。traceanly特色突出:1.前端接口流通,可以是saas,也可以是輕型網(wǎng)站,方便集中式集約化運營(yíng)管理。
  2.sdlietf作為語(yǔ)言開(kāi)發(fā)庫。3.純java語(yǔ)言架構。4.前端網(wǎng)絡(luò )支持以及系統啟動(dòng)后默認自帶路由。5.支持流量傳輸功能和二次封裝功能。6.支持跨地域或多系統集中管理。7.支持對象協(xié)議路由和基于jsonapi的網(wǎng)關(guān)。8.nginx/haproxy負載均衡。9.websocket。10.自研websocket內核。
  11.sls實(shí)現的簡(jiǎn)易服務(wù)器可以在線(xiàn)搭建。12.websocket/tcpapi接口方案可以在局域網(wǎng)或者廣域網(wǎng)部署。13.httpconnector支持tcp粘包/非粘包轉發(fā)、apache在線(xiàn)處理、java異步poller負載均衡等多種類(lèi)型。14.yaml格式靜態(tài)文件轉發(fā)以及binding。15.做客戶(hù)端萬(wàn)維網(wǎng)集中化服務(wù)器。
  16.mysql:?jiǎn)我簧矸蒡炞C,單一服務(wù)的存儲同步,單一數據庫的關(guān)聯(lián)。17.websocket遠程多語(yǔ)言json實(shí)現,需要備份。18.數據整合(bitconnect/getfilter/postfilter/postmatte/heartbleed/tcp整合/ip整合/timestamp整合)。19.sls/websockethttpsemipolling/metaattribute/gzip/jsonapi/udp整合。
  20.websocket(onlinewebsocketengine,ow)/websocketserver,ssl/tls三種,需要插件做調試和負載均衡。百勝集團:(網(wǎng)絡(luò )集中化管理的平臺):1.客戶(hù)端驅動(dòng)網(wǎng)絡(luò )paas方案。2.連接池網(wǎng)絡(luò )架構。3.指揮平臺集中化。4.支持多個(gè)websocket負載均衡和ssl加密。
  5.圖片云服務(wù),可以綁定各種圖片,國內目前在進(jìn)行minidlc測試,db2也正在測試。6.支持異地圖,如武漢指揮中心。7.用戶(hù)管理。8.圖像重傳。9.客戶(hù)端萬(wàn)維網(wǎng)集中化集中管理。10.圖像重傳,抗tor瀏覽器漏洞。tannerimpl的誕生tannerimpl是阿里云強推的解決方案,它簡(jiǎn)化了無(wú)狀態(tài)無(wú)緩存的無(wú)ip推送,支持http6和post等各種類(lèi)型。
  chinatraceanly更主要側重于無(wú)狀態(tài)無(wú)緩存的網(wǎng)頁(yè)推送,其解決方案是利用現成代碼實(shí)現,支持無(wú)狀態(tài)無(wú)緩存的服務(wù)器進(jìn)行推送。

文章采集系統(優(yōu)采云·萬(wàn)能文章采集器V1.22優(yōu)采云智能提取網(wǎng)頁(yè)正文的算法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 112 次瀏覽 ? 2021-11-14 22:21 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(優(yōu)采云·萬(wàn)能文章采集器V1.22優(yōu)采云智能提取網(wǎng)頁(yè)正文的算法)
  優(yōu)采云·Universal文章采集器V1.22破解版
  優(yōu)采云Universal文章采集器是一款讓您只需輸入關(guān)鍵詞即可采集各大搜索引擎新聞源和網(wǎng)頁(yè)的軟件。優(yōu)采云該軟件是首創(chuàng )的獨家智能算法,可以準確提取網(wǎng)頁(yè)正文部分并保存為文章。支持去除標簽、鏈接、郵箱等格式處理,插入關(guān)鍵詞的功能,可以識別標簽或標點(diǎn)的插入,可以識別英文空格的插入。還有文章的翻譯功能,可以將文章從一種語(yǔ)言如中文轉成英文或日文等另一種語(yǔ)言,再由英文或日文轉回中文,即是一個(gè)翻譯周期,
  優(yōu)采云Universal文章采集器 一種智能提取網(wǎng)頁(yè)正文的算法。百度新聞、谷歌新聞、搜搜新聞強聚合不時(shí)更新的新聞資源,取之不盡用之不竭的多語(yǔ)言翻譯偽原創(chuàng )。你,只要輸入關(guān)鍵詞
  優(yōu)采云通用文章采集器 應用領(lǐng)域:
  1、按關(guān)鍵詞采集互聯(lián)網(wǎng)文章翻譯偽原創(chuàng ),站長(cháng)朋友首選。
  2、適用于信息公關(guān)公司采集信息資料過(guò)濾提煉(軟件幾萬(wàn)專(zhuān)業(yè)公司,幾百塊錢(qián)我的)
  采集文章+Translation偽原創(chuàng )可以滿(mǎn)足廣大站長(cháng)和各領(lǐng)域朋友的文章需求。但是,一些公關(guān)處理和信息調查公司需要的專(zhuān)業(yè)公司開(kāi)發(fā)的信息采集系統往往售價(jià)幾萬(wàn)甚至更多,而優(yōu)采云的這個(gè)軟件也是一個(gè)信息采集系統的功能和市面上昂貴的軟件差不多,但是價(jià)格只有幾百元,你試一下就知道性?xún)r(jià)比了。
  
  軟件解壓密碼可以在密碼1.txt中找到
  優(yōu)歐營(yíng)銷(xiāo)官網(wǎng)【提供本站數據更新】一鍵授權更新服務(wù)器獨家發(fā)售【點(diǎn)擊加入我們】
  溫馨提示:本站軟件僅對注冊機的使用負責。軟件使用中出現的問(wèn)題請自行解決!
  注:由于本站軟件采用Zprotect或Winlicense加密授權保護,卡巴、金山毒霸、瑞星、360殺毒軟件均可能將此類(lèi)加殼程序視為木馬或病毒,但并非真正的病毒或木馬. 本站為正規軟件站,請放心使用。如有疑問(wèn),請咨詢(xún)客服。本軟件為VIP會(huì )員/代理軟件,請登錄后下載。如果您不是VIP會(huì )員/代理商,請注冊并聯(lián)系客服
  
  打開(kāi)VIP權限。 查看全部

  文章采集系統(優(yōu)采云·萬(wàn)能文章采集器V1.22優(yōu)采云智能提取網(wǎng)頁(yè)正文的算法)
  優(yōu)采云·Universal文章采集器V1.22破解版
  優(yōu)采云Universal文章采集器是一款讓您只需輸入關(guān)鍵詞即可采集各大搜索引擎新聞源和網(wǎng)頁(yè)的軟件。優(yōu)采云該軟件是首創(chuàng )的獨家智能算法,可以準確提取網(wǎng)頁(yè)正文部分并保存為文章。支持去除標簽、鏈接、郵箱等格式處理,插入關(guān)鍵詞的功能,可以識別標簽或標點(diǎn)的插入,可以識別英文空格的插入。還有文章的翻譯功能,可以將文章從一種語(yǔ)言如中文轉成英文或日文等另一種語(yǔ)言,再由英文或日文轉回中文,即是一個(gè)翻譯周期,
  優(yōu)采云Universal文章采集器 一種智能提取網(wǎng)頁(yè)正文的算法。百度新聞、谷歌新聞、搜搜新聞強聚合不時(shí)更新的新聞資源,取之不盡用之不竭的多語(yǔ)言翻譯偽原創(chuàng )。你,只要輸入關(guān)鍵詞
  優(yōu)采云通用文章采集器 應用領(lǐng)域:
  1、按關(guān)鍵詞采集互聯(lián)網(wǎng)文章翻譯偽原創(chuàng ),站長(cháng)朋友首選。
  2、適用于信息公關(guān)公司采集信息資料過(guò)濾提煉(軟件幾萬(wàn)專(zhuān)業(yè)公司,幾百塊錢(qián)我的)
  采集文章+Translation偽原創(chuàng )可以滿(mǎn)足廣大站長(cháng)和各領(lǐng)域朋友的文章需求。但是,一些公關(guān)處理和信息調查公司需要的專(zhuān)業(yè)公司開(kāi)發(fā)的信息采集系統往往售價(jià)幾萬(wàn)甚至更多,而優(yōu)采云的這個(gè)軟件也是一個(gè)信息采集系統的功能和市面上昂貴的軟件差不多,但是價(jià)格只有幾百元,你試一下就知道性?xún)r(jià)比了。
  
  軟件解壓密碼可以在密碼1.txt中找到
  優(yōu)歐營(yíng)銷(xiāo)官網(wǎng)【提供本站數據更新】一鍵授權更新服務(wù)器獨家發(fā)售【點(diǎn)擊加入我們】
  溫馨提示:本站軟件僅對注冊機的使用負責。軟件使用中出現的問(wèn)題請自行解決!
  注:由于本站軟件采用Zprotect或Winlicense加密授權保護,卡巴、金山毒霸、瑞星、360殺毒軟件均可能將此類(lèi)加殼程序視為木馬或病毒,但并非真正的病毒或木馬. 本站為正規軟件站,請放心使用。如有疑問(wèn),請咨詢(xún)客服。本軟件為VIP會(huì )員/代理軟件,請登錄后下載。如果您不是VIP會(huì )員/代理商,請注冊并聯(lián)系客服
  
  打開(kāi)VIP權限。

文章采集系統(excel看看需要打印多少打印文件,單價(jià)多少,試試插件/)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 153 次瀏覽 ? 2021-11-12 05:01 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(excel看看需要打印多少打印文件,單價(jià)多少,試試插件/)
  文章采集系統,您可以按照用戶(hù)所提供的商品信息的鏈接,生成一個(gè)網(wǎng)址,然后直接下載相應產(chǎn)品的打包數據包。該系統可以幫助企業(yè):展示其近期所有的采集行為,了解潛在的客戶(hù)和推銷(xiāo)產(chǎn)品;自動(dòng)分析自己的商品系列,并找到購買(mǎi)最頻繁的小類(lèi)和產(chǎn)品;自動(dòng)發(fā)送消息和短信,促進(jìn)與客戶(hù)的聯(lián)系和交流;以及,與第三方合作,打造一個(gè)銷(xiāo)售的穩定商品圖片列表。點(diǎn)擊下載。
  excel看看需要打印多少打印文件,單價(jià)多少,
  試試插件/
  可以考慮用excel也可以考慮用web采集器采集
  考慮用插件:有好心人告訴我,那款插件好用,可以生成瀏覽器下載鏈接,可以直接下載,但是沒(méi)有文件名或者數量限制。請幫忙指教,謝謝。
  如果你是想生成下載鏈接,可以找第三方工具:動(dòng)力采集工具fancymaker這個(gè)工具同時(shí)支持wordpress、facebook、twitter等,我們也有其他平臺的采集,如uc、百度網(wǎng)盤(pán)、facebook、youtube等,國內外應有盡有。
  在網(wǎng)上有種采集工具是云采集方式,如apiviz、scribbler、ucims等,
  可以采集一個(gè)商品所有的網(wǎng)址,但只能分開(kāi)下載。采集后的cvs工程文件里面有網(wǎng)址對應的css和js文件, 查看全部

  文章采集系統(excel看看需要打印多少打印文件,單價(jià)多少,試試插件/)
  文章采集系統,您可以按照用戶(hù)所提供的商品信息的鏈接,生成一個(gè)網(wǎng)址,然后直接下載相應產(chǎn)品的打包數據包。該系統可以幫助企業(yè):展示其近期所有的采集行為,了解潛在的客戶(hù)和推銷(xiāo)產(chǎn)品;自動(dòng)分析自己的商品系列,并找到購買(mǎi)最頻繁的小類(lèi)和產(chǎn)品;自動(dòng)發(fā)送消息和短信,促進(jìn)與客戶(hù)的聯(lián)系和交流;以及,與第三方合作,打造一個(gè)銷(xiāo)售的穩定商品圖片列表。點(diǎn)擊下載。
  excel看看需要打印多少打印文件,單價(jià)多少,
  試試插件/
  可以考慮用excel也可以考慮用web采集器采集
  考慮用插件:有好心人告訴我,那款插件好用,可以生成瀏覽器下載鏈接,可以直接下載,但是沒(méi)有文件名或者數量限制。請幫忙指教,謝謝。
  如果你是想生成下載鏈接,可以找第三方工具:動(dòng)力采集工具fancymaker這個(gè)工具同時(shí)支持wordpress、facebook、twitter等,我們也有其他平臺的采集,如uc、百度網(wǎng)盤(pán)、facebook、youtube等,國內外應有盡有。
  在網(wǎng)上有種采集工具是云采集方式,如apiviz、scribbler、ucims等,
  可以采集一個(gè)商品所有的網(wǎng)址,但只能分開(kāi)下載。采集后的cvs工程文件里面有網(wǎng)址對應的css和js文件,

文章采集系統(基于php/java+cli,有springmvc,)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 122 次瀏覽 ? 2021-11-08 16:03 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(基于php/java+cli,有springmvc,)
  文章采集系統一般由數據采集(訪(fǎng)問(wèn)器-post-header)、采集接收器(postbody)和渲染渲染器(renderer)組成。通過(guò)點(diǎn)擊圖片或html文件,對用戶(hù)發(fā)送的請求進(jìn)行處理,將可能的格式化數據,即網(wǎng)頁(yè)中傳遞給渲染渲染器,可使用webgl、physx、adpu等來(lái)查看模型信息,并渲染成圖片,生成全屏視圖。
  manual-renderer(直觀(guān)渲染器)生成全屏視圖。只支持自己設計渲染算法。printergenerator(高效渲染器)為第三方平臺提供圖片格式采集、合成和渲染處理的功能。支持自己設計渲染算法,并提供實(shí)例模式。適合中小型模型。codelite(crop-basedarchitecturelayoutpre-cad):針對矢量動(dòng)畫(huà)制作,可控性比較強,工作量也不小,適合大模型。
  ccbr(convertingcanvasbyresolution):一種新型的替換風(fēng)格的ui,類(lèi)似于圖片替換樣式的風(fēng)格,簡(jiǎn)單易用的替換技術(shù)。上面是我們使用的一些采集和渲染技術(shù),感興趣的話(huà)可以自己嘗試。
  用photoshop,
  可以從這個(gè)網(wǎng)站看一下希望對你有所幫助
  trello.io多平臺支持,
  為了實(shí)現精細化的采集,
  1、利用webgl、physx等現成的接口生成靜態(tài)網(wǎng)頁(yè)。
  2、內嵌到app中,app調用modernizr提供的接口來(lái)獲取模型信息。
  3、利用采集框架采集圖片,交給前端渲染到網(wǎng)頁(yè)里,這里可以用springmvc,image2image等。
  4、利用php或者java,通過(guò)開(kāi)發(fā)工具,生成modernizr控件來(lái)獲取圖片和其他信息?;趐hp/java的方案,有采集框架的,有java+cli,有springmvc,有ror,對于新手來(lái)說(shuō),第三種方案感覺(jué)比較符合我們的實(shí)際情況。 查看全部

  文章采集系統(基于php/java+cli,有springmvc,)
  文章采集系統一般由數據采集(訪(fǎng)問(wèn)器-post-header)、采集接收器(postbody)和渲染渲染器(renderer)組成。通過(guò)點(diǎn)擊圖片或html文件,對用戶(hù)發(fā)送的請求進(jìn)行處理,將可能的格式化數據,即網(wǎng)頁(yè)中傳遞給渲染渲染器,可使用webgl、physx、adpu等來(lái)查看模型信息,并渲染成圖片,生成全屏視圖。
  manual-renderer(直觀(guān)渲染器)生成全屏視圖。只支持自己設計渲染算法。printergenerator(高效渲染器)為第三方平臺提供圖片格式采集、合成和渲染處理的功能。支持自己設計渲染算法,并提供實(shí)例模式。適合中小型模型。codelite(crop-basedarchitecturelayoutpre-cad):針對矢量動(dòng)畫(huà)制作,可控性比較強,工作量也不小,適合大模型。
  ccbr(convertingcanvasbyresolution):一種新型的替換風(fēng)格的ui,類(lèi)似于圖片替換樣式的風(fēng)格,簡(jiǎn)單易用的替換技術(shù)。上面是我們使用的一些采集和渲染技術(shù),感興趣的話(huà)可以自己嘗試。
  用photoshop,
  可以從這個(gè)網(wǎng)站看一下希望對你有所幫助
  trello.io多平臺支持,
  為了實(shí)現精細化的采集,
  1、利用webgl、physx等現成的接口生成靜態(tài)網(wǎng)頁(yè)。
  2、內嵌到app中,app調用modernizr提供的接口來(lái)獲取模型信息。
  3、利用采集框架采集圖片,交給前端渲染到網(wǎng)頁(yè)里,這里可以用springmvc,image2image等。
  4、利用php或者java,通過(guò)開(kāi)發(fā)工具,生成modernizr控件來(lái)獲取圖片和其他信息?;趐hp/java的方案,有采集框架的,有java+cli,有springmvc,有ror,對于新手來(lái)說(shuō),第三種方案感覺(jué)比較符合我們的實(shí)際情況。

文章采集系統(文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據的真實(shí)性如何保證)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 124 次瀏覽 ? 2021-11-08 00:02 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據的真實(shí)性如何保證)
  文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據是很重要的內容,通常的數據采集系統如果缺少一些特殊的操作系統必要的操作接口或其它可能需要對用戶(hù)進(jìn)行權限控制的第三方客戶(hù)端或系統,這樣就存在一定的問(wèn)題。更有甚者發(fā)生網(wǎng)絡(luò )傳輸中出現外部進(jìn)程攻擊等意外因素,都會(huì )導致采集無(wú)法正常完成。下面給各位分享我經(jīng)過(guò)實(shí)戰總結的三種采集系統的方案選型。
  一、利用爬蟲(chóng)采集大家知道爬蟲(chóng)是軟件的一個(gè)重要的應用,現如今在網(wǎng)絡(luò )上隨處可見(jiàn)使用爬蟲(chóng)采集數據的地方,各大招聘網(wǎng)、爬蟲(chóng)網(wǎng)站、等..對于網(wǎng)站來(lái)說(shuō),爬蟲(chóng)就是針對每一條訪(fǎng)問(wèn)請求設定規則,然后一條一條重復的采集,這樣造成數據量極大增加。采集數據的方式有兩種:使用“深度搜索”api,和開(kāi)放自定義網(wǎng)址數據請求協(xié)議,利用該api,我們可以獲取標準的網(wǎng)頁(yè)搜索結果,然后再進(jìn)行采集。
  二、利用uml模型設計采集apiuml是類(lèi)圖、模型圖、圖表的統稱(chēng),后兩者是一種繪圖的分析方法。對于采集api,我們可以把其看作為一種專(zhuān)有的建模、設計、開(kāi)發(fā)和使用工具集合。我們可以把采集模型看作是一種數據采集方法、原理等思想,它是無(wú)法或難以把握的東西,我們要學(xué)習它。
  三、利用平臺開(kāi)放技術(shù),實(shí)現將采集api開(kāi)放給個(gè)人或小公司可以直接去利用如rmi框架搭建自己的采集api,很多手機平臺都是提供開(kāi)放的通用api的,像小米的小米采集助手,酷狗的音樂(lè )采集助手。這些都是個(gè)人想要采集數據時(shí)最為關(guān)注的問(wèn)題,用戶(hù)數據的真實(shí)性如何保證?對于采集api這個(gè)開(kāi)放標準化的采集采集平臺,我們必須要明確,一定要提供可靠的數據,可靠的第三方權限控制,并對代碼重構、數據容錯考慮周全,能夠提供一套采集圖形化交互性好的協(xié)議,如json(javascriptobjectnotation)數據協(xié)議。這樣才能在不侵犯用戶(hù)隱私的前提下,保證采集api能夠順利采集用戶(hù)數據。
  采集系統如何寫(xiě)1.用戶(hù)申請注冊
  1)在采集系統開(kāi)始動(dòng)手之前,你需要先注冊賬號,必須手機號注冊,
  2)注冊用戶(hù)后,登錄賬號,選擇爬蟲(chóng)(或采集)模式,并選擇想要進(jìn)行采集的站點(diǎn)或方法,如爬取天貓的數據,請選擇網(wǎng)站采集采集;選擇爬蟲(chóng)模式有哪些方法呢?簡(jiǎn)單來(lái)說(shuō),我們選擇爬蟲(chóng)模式有以下幾種,
  1)自己編寫(xiě)爬蟲(chóng)模型,自己發(fā)起請求,
  2)把爬蟲(chóng)模型放到公共的站點(diǎn)中,由爬蟲(chóng)自己發(fā)起請求,
  3)自己的網(wǎng)站進(jìn)行下單,同時(shí)向站點(diǎn)申請權限,
  4)采集數據后上傳到公共網(wǎng)站中;
  5)委托別人的爬蟲(chóng)采集。
  6) 查看全部

  文章采集系統(文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據的真實(shí)性如何保證)
  文章采集系統如何寫(xiě)在軟件開(kāi)發(fā)中,用戶(hù)數據是很重要的內容,通常的數據采集系統如果缺少一些特殊的操作系統必要的操作接口或其它可能需要對用戶(hù)進(jìn)行權限控制的第三方客戶(hù)端或系統,這樣就存在一定的問(wèn)題。更有甚者發(fā)生網(wǎng)絡(luò )傳輸中出現外部進(jìn)程攻擊等意外因素,都會(huì )導致采集無(wú)法正常完成。下面給各位分享我經(jīng)過(guò)實(shí)戰總結的三種采集系統的方案選型。
  一、利用爬蟲(chóng)采集大家知道爬蟲(chóng)是軟件的一個(gè)重要的應用,現如今在網(wǎng)絡(luò )上隨處可見(jiàn)使用爬蟲(chóng)采集數據的地方,各大招聘網(wǎng)、爬蟲(chóng)網(wǎng)站、等..對于網(wǎng)站來(lái)說(shuō),爬蟲(chóng)就是針對每一條訪(fǎng)問(wèn)請求設定規則,然后一條一條重復的采集,這樣造成數據量極大增加。采集數據的方式有兩種:使用“深度搜索”api,和開(kāi)放自定義網(wǎng)址數據請求協(xié)議,利用該api,我們可以獲取標準的網(wǎng)頁(yè)搜索結果,然后再進(jìn)行采集。
  二、利用uml模型設計采集apiuml是類(lèi)圖、模型圖、圖表的統稱(chēng),后兩者是一種繪圖的分析方法。對于采集api,我們可以把其看作為一種專(zhuān)有的建模、設計、開(kāi)發(fā)和使用工具集合。我們可以把采集模型看作是一種數據采集方法、原理等思想,它是無(wú)法或難以把握的東西,我們要學(xué)習它。
  三、利用平臺開(kāi)放技術(shù),實(shí)現將采集api開(kāi)放給個(gè)人或小公司可以直接去利用如rmi框架搭建自己的采集api,很多手機平臺都是提供開(kāi)放的通用api的,像小米的小米采集助手,酷狗的音樂(lè )采集助手。這些都是個(gè)人想要采集數據時(shí)最為關(guān)注的問(wèn)題,用戶(hù)數據的真實(shí)性如何保證?對于采集api這個(gè)開(kāi)放標準化的采集采集平臺,我們必須要明確,一定要提供可靠的數據,可靠的第三方權限控制,并對代碼重構、數據容錯考慮周全,能夠提供一套采集圖形化交互性好的協(xié)議,如json(javascriptobjectnotation)數據協(xié)議。這樣才能在不侵犯用戶(hù)隱私的前提下,保證采集api能夠順利采集用戶(hù)數據。
  采集系統如何寫(xiě)1.用戶(hù)申請注冊
  1)在采集系統開(kāi)始動(dòng)手之前,你需要先注冊賬號,必須手機號注冊,
  2)注冊用戶(hù)后,登錄賬號,選擇爬蟲(chóng)(或采集)模式,并選擇想要進(jìn)行采集的站點(diǎn)或方法,如爬取天貓的數據,請選擇網(wǎng)站采集采集;選擇爬蟲(chóng)模式有哪些方法呢?簡(jiǎn)單來(lái)說(shuō),我們選擇爬蟲(chóng)模式有以下幾種,
  1)自己編寫(xiě)爬蟲(chóng)模型,自己發(fā)起請求,
  2)把爬蟲(chóng)模型放到公共的站點(diǎn)中,由爬蟲(chóng)自己發(fā)起請求,
  3)自己的網(wǎng)站進(jìn)行下單,同時(shí)向站點(diǎn)申請權限,
  4)采集數據后上傳到公共網(wǎng)站中;
  5)委托別人的爬蟲(chóng)采集。
  6)

文章采集系統(編輯本段文章采集系統過(guò)程相關(guān)資料功能的開(kāi)發(fā)工具使用.Net)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 128 次瀏覽 ? 2021-11-06 20:20 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(編輯本段文章采集系統過(guò)程相關(guān)資料功能的開(kāi)發(fā)工具使用.Net)
  文章采集系統由(我的世界采集網(wǎng))歷時(shí)4年開(kāi)發(fā)。在線(xiàn)信息采集系統基于用戶(hù)自定義關(guān)鍵詞從互聯(lián)網(wǎng)檢索相關(guān)數據,對數據進(jìn)行合理截取、分類(lèi)、去重、過(guò)濾,以文件或數據庫的形式存儲.
  內容
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  編輯本段
  文章采集系統進(jìn)程
  系統開(kāi)發(fā)工具采用.Net的C#進(jìn)行系統開(kāi)發(fā),數據庫采用SQL Server 2000。
  一、軟件系統總體設計要求
  1.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據召回率達到98%。
  2.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據準確率大于97%。
  3.數據存儲容量:存儲容量≥100G。
  4.在單個(gè)網(wǎng)站中搜索時(shí),網(wǎng)站搜索深度:最大5級網(wǎng)頁(yè);網(wǎng)站 搜索廣度:最多搜索50個(gè)網(wǎng)頁(yè)。如果超過(guò) 60 秒沒(méi)有結果,搜索將自動(dòng)放棄。
  5. 并發(fā)搜索強度:10個(gè)線(xiàn)程可以同時(shí)并發(fā)搜索。
  6.5億漢字的平均查詢(xún)時(shí)間不到3秒。
  二、應用系統設計要求
  1.要求系統多線(xiàn)程采集信息;
  2. 可以自動(dòng)對記錄進(jìn)行分類(lèi)和索引;
  3. 自動(dòng)過(guò)濾重復項并自動(dòng)索引記錄;
  三、應用系統功能詳解
  實(shí)時(shí)在線(xiàn)采集(內容抓取模塊) Fast:網(wǎng)頁(yè)抓取采用多線(xiàn)程并發(fā)搜索技術(shù),可設置最大并發(fā)線(xiàn)程數。靈活:可以同時(shí)跟蹤捕獲多個(gè)網(wǎng)站,提供靈活的網(wǎng)站、欄目或頻道采集策略,利用邏輯關(guān)系定位采集內容。準確:多抓取少抓取,可以自定義需要抓取的文件格式,可以抓取圖片和表格信息,抓取過(guò)程成熟可靠,容錯性強,可以長(cháng)時(shí)間穩定運行完成初始設置后。高效的自動(dòng)分類(lèi) 支持機檢分類(lèi)——可以使用預定義的關(guān)鍵詞和規則方法來(lái)確定類(lèi)別;支持自動(dòng)分類(lèi)——通過(guò)機器自動(dòng)學(xué)習或預學(xué)習進(jìn)行自動(dòng)分類(lèi),準確率達到80%以上。(這個(gè)比較麻煩,可以考慮不做)支持多種分類(lèi)標準——比如按地區(華北、華南等)、內容(政治、科技、軍事、教育等) .)、來(lái)源(新華網(wǎng)、人民日報、新浪網(wǎng))等等。網(wǎng)頁(yè)自動(dòng)分析內容過(guò)濾——可以過(guò)濾掉廣告、導航信息、版權等無(wú)用信息,可以剔除反動(dòng)和色情內容。內容排序-不同網(wǎng)站相同或相似的內容可以自動(dòng)識別并標記為相似。識別方法可以由用戶(hù)定義的規則確定,并由內容的相似性自動(dòng)確定。格式轉換——自動(dòng)將 HTML 格式轉換為文本文件。自動(dòng)索引——自動(dòng)從網(wǎng)頁(yè)中提取標題、版本、日期、作者、欄目、分類(lèi)等信息。系統管理集成單一界面——系統提供基于Web的用戶(hù)界面和管理員界面,滿(mǎn)足系統管理員和用戶(hù)的雙重需求。瀏覽器可用于遠程管理分類(lèi)目錄、用戶(hù)權限,并對分類(lèi)結果進(jìn)行調整和強化。完善的目錄維護——對分類(lèi)目錄的添加、移動(dòng)、修改、刪除提供完善的管理和維護權限管理,并可設置管理目錄和單個(gè)文件使用權限,加強安全管理。實(shí)時(shí)文件管理——可以瀏覽各個(gè)目錄的分類(lèi)結果,并進(jìn)行移動(dòng)、重命名等實(shí)時(shí)調整。
  編輯本段
  相關(guān)數據功能解讀
  配合文章采集系統,整個(gè)系統可以在線(xiàn)自動(dòng)安裝,后臺有新版本可以自動(dòng)升級;系統文件損壞可自動(dòng)修復,站長(cháng)無(wú)后顧之憂(yōu)
  1、自動(dòng)構建功能
  強大的關(guān)鍵詞管理系統
  可自動(dòng)批量獲取指定關(guān)鍵詞的常用相關(guān)詞,輕松控制用戶(hù)搜索行為
  自動(dòng)文章采集系統四大類(lèi)內容
  文章采集 過(guò)程中自動(dòng)去除重復內容,各種內容的聚合量可自由設置
  三重過(guò)濾保證內容質(zhì)量
  特別是首創(chuàng )的任意詞密度判斷功能,為搜索引擎提供了強有力的保障收錄
  自動(dòng)生成原創(chuàng )主題
  文章采集第一個(gè)以話(huà)題組織內容,這是門(mén)戶(hù)網(wǎng)站網(wǎng)站內容制勝的法寶
  專(zhuān)題內容自動(dòng)更新
  不僅可以自動(dòng)創(chuàng )建話(huà)題還可以自動(dòng)更新,并且可以單獨設置各類(lèi)內容的更新周期
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  2、個(gè)性化定制功能
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  兼容多種靜態(tài)模式
  不僅能有效保障收錄搜索引擎,還能增加網(wǎng)站的持續訪(fǎng)問(wèn)量
  任何頂部導航欄設置
  頂部導航欄可隨意添加或刪除,使網(wǎng)站高度可定制
  任意 URL 連接地址名稱(chēng)
  不僅讓你的網(wǎng)站獨一無(wú)二,還能在一定程度上提升搜索引擎排名
  支持多個(gè)模板集
  采用模板編譯替代技術(shù),即使只改動(dòng)一個(gè)文件,也能做出個(gè)性化的界面
  任意顯示數量控制
  可以設置話(huà)題頁(yè)面各種內容的數量,也可以設置每個(gè)列表頁(yè)面的顯示數量
  3、內置站長(cháng)工具
  全程記錄蜘蛛訪(fǎng)問(wèn)
  智能識別搜索引擎蜘蛛99%的訪(fǎng)問(wèn),全程控制蜘蛛的爬取記錄
  自動(dòng)站點(diǎn)地圖創(chuàng )建
  自動(dòng)生成百度和谷歌地圖,并可分類(lèi)設置,有效提升網(wǎng)站收錄的內容
  一鍵查看排名和收錄
  不僅可以查看Alexa排名,還可以準確掌握網(wǎng)站最近收錄,還可以添加網(wǎng)站外部鏈接
  檢查網(wǎng)站中非法的關(guān)鍵詞
  可自動(dòng)批量查詢(xún)網(wǎng)站中是否存在國家禁止的違法內容
  在線(xiàn)自動(dòng)安裝和文件修復
  setup.php工具不僅可以自動(dòng)獲取授權,自動(dòng)在線(xiàn)安裝系統,還具有系統修復功能
  后臺智能自動(dòng)升級
  可自動(dòng)判斷當前需要升級的版本,并自動(dòng)下載升級,讓站長(cháng)免去更新的煩惱
  4、高效性能
  超高效的自動(dòng)分詞技術(shù)
  率先采用數字化詞匯和雙向分詞驗證,大大提高了中文分詞的效率和準確率
  高效的動(dòng)態(tài)頁(yè)面緩存
  采用子模塊頁(yè)面緩存技術(shù),有效保證系統負載能力和網(wǎng)站的動(dòng)態(tài)
  代碼分段調用技術(shù)
  使系統每次調用最少的程序代碼,減少分析時(shí)間,有效提高系統執行效率
  編譯模板技術(shù)
  所有未改變的模板只需編譯一次,減少模板解析時(shí)間,提高訪(fǎng)問(wèn)速度
  最小化數據讀取設計
  大大降低數據庫資源消耗,可支持更多用戶(hù)快速訪(fǎng)問(wèn)
  圖片縮略圖保存
  默認生成圖片文件縮略圖并保存在本地,大大降低服務(wù)器空間和帶寬壓力
  5、全站互動(dòng)功能
  個(gè)性組功能
  話(huà)題可以轉成群組,比論壇有更多的權限控制自由
  外部個(gè)人主頁(yè)
  個(gè)人頁(yè)面可以看到發(fā)起的話(huà)題、訂閱的話(huà)題、好友
  我的私人家
  通過(guò)SNS功能,您可以跟蹤我的話(huà)題動(dòng)態(tài)和朋友的站點(diǎn)動(dòng)態(tài)
  站內好友系統
  可以自由添加好友,還可以查看好友動(dòng)態(tài)信息 查看全部

  文章采集系統(編輯本段文章采集系統過(guò)程相關(guān)資料功能的開(kāi)發(fā)工具使用.Net)
  文章采集系統由(我的世界采集網(wǎng))歷時(shí)4年開(kāi)發(fā)。在線(xiàn)信息采集系統基于用戶(hù)自定義關(guān)鍵詞從互聯(lián)網(wǎng)檢索相關(guān)數據,對數據進(jìn)行合理截取、分類(lèi)、去重、過(guò)濾,以文件或數據庫的形式存儲.
  內容
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  文章采集系統進(jìn)程
  相關(guān)數據功能解讀
  展開(kāi)
  編輯本段
  文章采集系統進(jìn)程
  系統開(kāi)發(fā)工具采用.Net的C#進(jìn)行系統開(kāi)發(fā),數據庫采用SQL Server 2000。
  一、軟件系統總體設計要求
  1.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據召回率達到98%。
  2.當網(wǎng)站搜索深度為5層,網(wǎng)站搜索寬度為50個(gè)網(wǎng)頁(yè)時(shí),數據準確率大于97%。
  3.數據存儲容量:存儲容量≥100G。
  4.在單個(gè)網(wǎng)站中搜索時(shí),網(wǎng)站搜索深度:最大5級網(wǎng)頁(yè);網(wǎng)站 搜索廣度:最多搜索50個(gè)網(wǎng)頁(yè)。如果超過(guò) 60 秒沒(méi)有結果,搜索將自動(dòng)放棄。
  5. 并發(fā)搜索強度:10個(gè)線(xiàn)程可以同時(shí)并發(fā)搜索。
  6.5億漢字的平均查詢(xún)時(shí)間不到3秒。
  二、應用系統設計要求
  1.要求系統多線(xiàn)程采集信息;
  2. 可以自動(dòng)對記錄進(jìn)行分類(lèi)和索引;
  3. 自動(dòng)過(guò)濾重復項并自動(dòng)索引記錄;
  三、應用系統功能詳解
  實(shí)時(shí)在線(xiàn)采集(內容抓取模塊) Fast:網(wǎng)頁(yè)抓取采用多線(xiàn)程并發(fā)搜索技術(shù),可設置最大并發(fā)線(xiàn)程數。靈活:可以同時(shí)跟蹤捕獲多個(gè)網(wǎng)站,提供靈活的網(wǎng)站、欄目或頻道采集策略,利用邏輯關(guān)系定位采集內容。準確:多抓取少抓取,可以自定義需要抓取的文件格式,可以抓取圖片和表格信息,抓取過(guò)程成熟可靠,容錯性強,可以長(cháng)時(shí)間穩定運行完成初始設置后。高效的自動(dòng)分類(lèi) 支持機檢分類(lèi)——可以使用預定義的關(guān)鍵詞和規則方法來(lái)確定類(lèi)別;支持自動(dòng)分類(lèi)——通過(guò)機器自動(dòng)學(xué)習或預學(xué)習進(jìn)行自動(dòng)分類(lèi),準確率達到80%以上。(這個(gè)比較麻煩,可以考慮不做)支持多種分類(lèi)標準——比如按地區(華北、華南等)、內容(政治、科技、軍事、教育等) .)、來(lái)源(新華網(wǎng)、人民日報、新浪網(wǎng))等等。網(wǎng)頁(yè)自動(dòng)分析內容過(guò)濾——可以過(guò)濾掉廣告、導航信息、版權等無(wú)用信息,可以剔除反動(dòng)和色情內容。內容排序-不同網(wǎng)站相同或相似的內容可以自動(dòng)識別并標記為相似。識別方法可以由用戶(hù)定義的規則確定,并由內容的相似性自動(dòng)確定。格式轉換——自動(dòng)將 HTML 格式轉換為文本文件。自動(dòng)索引——自動(dòng)從網(wǎng)頁(yè)中提取標題、版本、日期、作者、欄目、分類(lèi)等信息。系統管理集成單一界面——系統提供基于Web的用戶(hù)界面和管理員界面,滿(mǎn)足系統管理員和用戶(hù)的雙重需求。瀏覽器可用于遠程管理分類(lèi)目錄、用戶(hù)權限,并對分類(lèi)結果進(jìn)行調整和強化。完善的目錄維護——對分類(lèi)目錄的添加、移動(dòng)、修改、刪除提供完善的管理和維護權限管理,并可設置管理目錄和單個(gè)文件使用權限,加強安全管理。實(shí)時(shí)文件管理——可以瀏覽各個(gè)目錄的分類(lèi)結果,并進(jìn)行移動(dòng)、重命名等實(shí)時(shí)調整。
  編輯本段
  相關(guān)數據功能解讀
  配合文章采集系統,整個(gè)系統可以在線(xiàn)自動(dòng)安裝,后臺有新版本可以自動(dòng)升級;系統文件損壞可自動(dòng)修復,站長(cháng)無(wú)后顧之憂(yōu)
  1、自動(dòng)構建功能
  強大的關(guān)鍵詞管理系統
  可自動(dòng)批量獲取指定關(guān)鍵詞的常用相關(guān)詞,輕松控制用戶(hù)搜索行為
  自動(dòng)文章采集系統四大類(lèi)內容
  文章采集 過(guò)程中自動(dòng)去除重復內容,各種內容的聚合量可自由設置
  三重過(guò)濾保證內容質(zhì)量
  特別是首創(chuàng )的任意詞密度判斷功能,為搜索引擎提供了強有力的保障收錄
  自動(dòng)生成原創(chuàng )主題
  文章采集第一個(gè)以話(huà)題組織內容,這是門(mén)戶(hù)網(wǎng)站網(wǎng)站內容制勝的法寶
  專(zhuān)題內容自動(dòng)更新
  不僅可以自動(dòng)創(chuàng )建話(huà)題還可以自動(dòng)更新,并且可以單獨設置各類(lèi)內容的更新周期
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  2、個(gè)性化定制功能
  原創(chuàng ) 標簽綜合頁(yè)
  整個(gè)網(wǎng)站集成了統一通用的分類(lèi)標簽系統,不僅讓內容關(guān)聯(lián),還讓原創(chuàng )內容頁(yè)面
  兼容多種靜態(tài)模式
  不僅能有效保障收錄搜索引擎,還能增加網(wǎng)站的持續訪(fǎng)問(wèn)量
  任何頂部導航欄設置
  頂部導航欄可隨意添加或刪除,使網(wǎng)站高度可定制
  任意 URL 連接地址名稱(chēng)
  不僅讓你的網(wǎng)站獨一無(wú)二,還能在一定程度上提升搜索引擎排名
  支持多個(gè)模板集
  采用模板編譯替代技術(shù),即使只改動(dòng)一個(gè)文件,也能做出個(gè)性化的界面
  任意顯示數量控制
  可以設置話(huà)題頁(yè)面各種內容的數量,也可以設置每個(gè)列表頁(yè)面的顯示數量
  3、內置站長(cháng)工具
  全程記錄蜘蛛訪(fǎng)問(wèn)
  智能識別搜索引擎蜘蛛99%的訪(fǎng)問(wèn),全程控制蜘蛛的爬取記錄
  自動(dòng)站點(diǎn)地圖創(chuàng )建
  自動(dòng)生成百度和谷歌地圖,并可分類(lèi)設置,有效提升網(wǎng)站收錄的內容
  一鍵查看排名和收錄
  不僅可以查看Alexa排名,還可以準確掌握網(wǎng)站最近收錄,還可以添加網(wǎng)站外部鏈接
  檢查網(wǎng)站中非法的關(guān)鍵詞
  可自動(dòng)批量查詢(xún)網(wǎng)站中是否存在國家禁止的違法內容
  在線(xiàn)自動(dòng)安裝和文件修復
  setup.php工具不僅可以自動(dòng)獲取授權,自動(dòng)在線(xiàn)安裝系統,還具有系統修復功能
  后臺智能自動(dòng)升級
  可自動(dòng)判斷當前需要升級的版本,并自動(dòng)下載升級,讓站長(cháng)免去更新的煩惱
  4、高效性能
  超高效的自動(dòng)分詞技術(shù)
  率先采用數字化詞匯和雙向分詞驗證,大大提高了中文分詞的效率和準確率
  高效的動(dòng)態(tài)頁(yè)面緩存
  采用子模塊頁(yè)面緩存技術(shù),有效保證系統負載能力和網(wǎng)站的動(dòng)態(tài)
  代碼分段調用技術(shù)
  使系統每次調用最少的程序代碼,減少分析時(shí)間,有效提高系統執行效率
  編譯模板技術(shù)
  所有未改變的模板只需編譯一次,減少模板解析時(shí)間,提高訪(fǎng)問(wèn)速度
  最小化數據讀取設計
  大大降低數據庫資源消耗,可支持更多用戶(hù)快速訪(fǎng)問(wèn)
  圖片縮略圖保存
  默認生成圖片文件縮略圖并保存在本地,大大降低服務(wù)器空間和帶寬壓力
  5、全站互動(dòng)功能
  個(gè)性組功能
  話(huà)題可以轉成群組,比論壇有更多的權限控制自由
  外部個(gè)人主頁(yè)
  個(gè)人頁(yè)面可以看到發(fā)起的話(huà)題、訂閱的話(huà)題、好友
  我的私人家
  通過(guò)SNS功能,您可以跟蹤我的話(huà)題動(dòng)態(tài)和朋友的站點(diǎn)動(dòng)態(tài)
  站內好友系統
  可以自由添加好友,還可以查看好友動(dòng)態(tài)信息

文章采集系統(微信公眾號文章采集器的用處在哪里?值得參考!)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 129 次瀏覽 ? 2021-11-05 21:23 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(微信公眾號文章采集器的用處在哪里?值得參考!)
  簡(jiǎn)介 本文章主要介紹微信公眾號文章采集器(示例代碼)及相關(guān)經(jīng)驗和技巧,文章約2279字,368頁(yè)瀏覽量,點(diǎn)贊數為2,值得參考!
  今天求教,告訴你什么是微信公眾號文章采集器?微信公眾號文章采集器有什么用?
  首先簡(jiǎn)單介紹一下微信公眾號文章采集器:是本平臺開(kāi)發(fā)的一個(gè)內容價(jià)值輸出系統,專(zhuān)門(mén)服務(wù)于中小互聯(lián)網(wǎng)公司。幫助中小企業(yè)發(fā)布文章,內容輸出大大提高了員工的工作效率和企業(yè)的運營(yíng)成本。
  在采集系統中,我們可以放所有微信公眾號,你只需要在采集系統中手動(dòng)輸入你想要的公眾號名稱(chēng)采集,即可可以快速幫你完成本公眾號的所有內容采集。 采集來(lái)這里文章,可以選擇修改標題和內容,過(guò)濾垃圾郵件文章。
  
  我們已經(jīng)測試了咨詢(xún)平臺:一個(gè)員工可以在一個(gè)小時(shí)內完成采集的工作,并且可以采集 80到100條內容。包括修改文章和過(guò)濾垃圾郵件文章。這大大提高了我們員工的效率和成本。
  微信公眾號采集器有什么用?在哪里可以得到它的價(jià)值體現?
  問(wèn)叔的回答:網(wǎng)站誰(shuí)可以快速幫助你,網(wǎng)站你負責構建內容和參與搜索引擎排名。
  一、SEO:搜索引擎要注意什么原創(chuàng )不是沒(méi)有道理。但是您認為公司員工每天都會(huì )更新 原創(chuàng ) 的 文章。這樣高效的老板和領(lǐng)導會(huì )同意嗎? 偽原創(chuàng )的10條文章一天最多可以更新,發(fā)布到平臺,使用采集系統一小時(shí)發(fā)布文章100篇,價(jià)值更大嗎?
  微信采集器不同于市面上各種網(wǎng)站文章采集器,它避開(kāi)了相關(guān)搜索引擎的采集規則。在百度的各種Pala Pala算法中可以看到,搜索引擎對采集系統軟件的攻擊主要針對網(wǎng)站和網(wǎng)站之間的采集。公眾號的內容價(jià)值來(lái)源于許多大咖發(fā)布的原創(chuàng )內容。我們可以進(jìn)行相關(guān)的采集工作。
  市場(chǎng)上的垃圾采集器在采集文章的時(shí)候,連圖片都是別人的地址網(wǎng)站,這是為了促進(jìn)別人發(fā)鏈接 NS?
  二、 快速打造線(xiàn)上品牌:在采集系統中,您只需在采集公眾號的內容標題上注明您的品牌關(guān)鍵詞,即可可以快速創(chuàng )建內容輸出和創(chuàng )作。以及大量的搜索引擎收錄。
  三、采集 系統是如何實(shí)現其功能的:下面是介紹。
  1.公眾號抓取通過(guò)微信公眾號用戶(hù)在微信上的登錄信息在微信系統中抓取
  2.在微信公眾號系統中設置微信公眾號登錄信息到我們系統
  3.使用設置的登錄信息進(jìn)行微信搜索和微信文章抓取
  4.將抓到的公眾號設置為系統中的普通用戶(hù)
  5.在系統中編輯、審核并發(fā)布抓獲的文章,并與對應的用戶(hù)關(guān)聯(lián)
  6.發(fā)布后的文章與普通用戶(hù)發(fā)布的文章沒(méi)有區別,可以直接按照之前的管理方式進(jìn)行管理。 查看全部

  文章采集系統(微信公眾號文章采集器的用處在哪里?值得參考!)
  簡(jiǎn)介 本文章主要介紹微信公眾號文章采集器(示例代碼)及相關(guān)經(jīng)驗和技巧,文章約2279字,368頁(yè)瀏覽量,點(diǎn)贊數為2,值得參考!
  今天求教,告訴你什么是微信公眾號文章采集器?微信公眾號文章采集器有什么用?
  首先簡(jiǎn)單介紹一下微信公眾號文章采集器:是本平臺開(kāi)發(fā)的一個(gè)內容價(jià)值輸出系統,專(zhuān)門(mén)服務(wù)于中小互聯(lián)網(wǎng)公司。幫助中小企業(yè)發(fā)布文章,內容輸出大大提高了員工的工作效率和企業(yè)的運營(yíng)成本。
  在采集系統中,我們可以放所有微信公眾號,你只需要在采集系統中手動(dòng)輸入你想要的公眾號名稱(chēng)采集,即可可以快速幫你完成本公眾號的所有內容采集。 采集來(lái)這里文章,可以選擇修改標題和內容,過(guò)濾垃圾郵件文章。
  
  我們已經(jīng)測試了咨詢(xún)平臺:一個(gè)員工可以在一個(gè)小時(shí)內完成采集的工作,并且可以采集 80到100條內容。包括修改文章和過(guò)濾垃圾郵件文章。這大大提高了我們員工的效率和成本。
  微信公眾號采集器有什么用?在哪里可以得到它的價(jià)值體現?
  問(wèn)叔的回答:網(wǎng)站誰(shuí)可以快速幫助你,網(wǎng)站你負責構建內容和參與搜索引擎排名。
  一、SEO:搜索引擎要注意什么原創(chuàng )不是沒(méi)有道理。但是您認為公司員工每天都會(huì )更新 原創(chuàng ) 的 文章。這樣高效的老板和領(lǐng)導會(huì )同意嗎? 偽原創(chuàng )的10條文章一天最多可以更新,發(fā)布到平臺,使用采集系統一小時(shí)發(fā)布文章100篇,價(jià)值更大嗎?
  微信采集器不同于市面上各種網(wǎng)站文章采集器,它避開(kāi)了相關(guān)搜索引擎的采集規則。在百度的各種Pala Pala算法中可以看到,搜索引擎對采集系統軟件的攻擊主要針對網(wǎng)站和網(wǎng)站之間的采集。公眾號的內容價(jià)值來(lái)源于許多大咖發(fā)布的原創(chuàng )內容。我們可以進(jìn)行相關(guān)的采集工作。
  市場(chǎng)上的垃圾采集器在采集文章的時(shí)候,連圖片都是別人的地址網(wǎng)站,這是為了促進(jìn)別人發(fā)鏈接 NS?
  二、 快速打造線(xiàn)上品牌:在采集系統中,您只需在采集公眾號的內容標題上注明您的品牌關(guān)鍵詞,即可可以快速創(chuàng )建內容輸出和創(chuàng )作。以及大量的搜索引擎收錄。
  三、采集 系統是如何實(shí)現其功能的:下面是介紹。
  1.公眾號抓取通過(guò)微信公眾號用戶(hù)在微信上的登錄信息在微信系統中抓取
  2.在微信公眾號系統中設置微信公眾號登錄信息到我們系統
  3.使用設置的登錄信息進(jìn)行微信搜索和微信文章抓取
  4.將抓到的公眾號設置為系統中的普通用戶(hù)
  5.在系統中編輯、審核并發(fā)布抓獲的文章,并與對應的用戶(hù)關(guān)聯(lián)
  6.發(fā)布后的文章與普通用戶(hù)發(fā)布的文章沒(méi)有區別,可以直接按照之前的管理方式進(jìn)行管理。

文章采集系統(本發(fā)明針對各式各樣的網(wǎng)站文章進(jìn)行自動(dòng)采集的方法-專(zhuān)利)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2021-11-05 21:22 ? 來(lái)自相關(guān)話(huà)題

  文章采集系統(本發(fā)明針對各式各樣的網(wǎng)站文章進(jìn)行自動(dòng)采集的方法-專(zhuān)利)
  專(zhuān)利名稱(chēng):文章采集的一種方法
  技術(shù)領(lǐng)域:
  本發(fā)明涉及一種對各種網(wǎng)站文章進(jìn)行自動(dòng)采集的方法。
  背景技術(shù):
  文章采集基于用戶(hù)自定義的關(guān)鍵詞字符,從各類(lèi)網(wǎng)站中檢索相關(guān)數據,對數據進(jìn)行合理的截取、分類(lèi)、歸類(lèi)。刪除和過(guò)濾,然后將其保存為文件或數據庫。文章采集 應用的關(guān)鍵是如何從眾多的網(wǎng)站中獲取所需的準確內容到預期的中央資源庫,然后快速使用。文章 采集 的核心技術(shù)是模式定義和模式匹配。模型屬于人工智能的術(shù)語(yǔ),是前人積累經(jīng)驗的抽象和升華。簡(jiǎn)單的說(shuō)就是從反復發(fā)生的事件中發(fā)現和抽象出來(lái)的規律,是解決問(wèn)題的經(jīng)驗總結。只要是反復出現的東西,就可能有一定的規律。文章采集 的大多數模式不會(huì )被程序自動(dòng)發(fā)現。目前幾乎所有的文章采集產(chǎn)品都需要手動(dòng)定義。但是模型本身是一個(gè)非常復雜和抽象的內容,所以開(kāi)發(fā)者的所有精力都花在了如何讓模型定義更簡(jiǎn)單、更準確上。這也是衡量文章采集技術(shù)競爭力的一個(gè)指標。. 目前使用最多的是正則表達式定義和文檔結構定義。傳統的文章采集有幾個(gè)問(wèn)題。1、采集是整篇文章文章,需要手動(dòng)頁(yè)面處理才能使用;&lt;
  發(fā)明內容
  本發(fā)明的目的是提供一種文章采集的方法,支持網(wǎng)站組采集的多個(gè)站點(diǎn),并且可以對文章進(jìn)行分段采集和采集的子列采集、文章可以自動(dòng)應用自己的網(wǎng)站格式進(jìn)行發(fā)布,無(wú)需人工處理。文章采集的一種方法,具體包括以下步驟:首先選擇采集的來(lái)源,使用正則表達式制定采集規則,使用關(guān)鍵信息處理方法確定采集內容范圍,將采集的內容綁定到目標站點(diǎn)的欄目;啟動(dòng)采集文章時(shí),先搜索采集的源碼,采用多線(xiàn)程技術(shù),多站點(diǎn)采集 網(wǎng)站 組的;根據采集的設置規則,將采集的內容存放在對應的欄目下;如果需要自動(dòng)發(fā)布,則調用文章合并模板發(fā)布。使用正則表達式制定采集的規則是指輸入需要采集的靜態(tài)頁(yè)面地址,并確定地址中第N個(gè)“/”為靜態(tài)文件,需要&lt; @采集 內容地址,自動(dòng)轉換成正則表達式規則。關(guān)鍵信息處理方法是指確定文章標題或需要采集內容的關(guān)鍵信息串的位置。本發(fā)明采用正則表達式定義方式,根據用戶(hù)自定義任務(wù)配置,批量準確提取目標網(wǎng)絡(luò )媒體欄目中的新聞或文章,并轉換為結構化記錄(標題、作者、內容、采集時(shí)間、來(lái)源、分類(lèi)、相關(guān)圖片等),存儲在本地數據庫中,用于內部使用或外部網(wǎng)絡(luò )發(fā)布,快速實(shí)現外部信息的獲取,對于各種網(wǎng)站新聞采集具有更快的速度和更高的準確率。本發(fā)明可以自動(dòng)和手動(dòng)兩種模式運行。系統定時(shí)自動(dòng)更新指定站點(diǎn)的最新信息,手動(dòng)提供及時(shí)觸發(fā)機制;支持使用不同模式的不同信息采集。本發(fā)明改進(jìn)了傳統的文章采集技術(shù),真正滿(mǎn)足了用戶(hù)的應用需求。您需要的內容;2、每一列可以自定義對應的采集任務(wù),文章 采集然后自動(dòng)存入對應的列;3、采用多線(xiàn)程技術(shù),支持網(wǎng)站組多站點(diǎn)采集;4、結合模板引擎技術(shù),文章采集可以自動(dòng)應用網(wǎng)站模板進(jìn)行自動(dòng)發(fā)布。
  圖1是本發(fā)明的邏輯流程圖。
  圖2為本發(fā)明實(shí)施例中采集內容的字符串位置示意圖。下面結合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細說(shuō)明。
<p>具體實(shí)施方式如圖1所示,本發(fā)明的一種文章采集的方法,具體包括:首先選擇采集的來(lái)源,制定 查看全部

  文章采集系統(本發(fā)明針對各式各樣的網(wǎng)站文章進(jìn)行自動(dòng)采集的方法-專(zhuān)利)
  專(zhuān)利名稱(chēng):文章采集的一種方法
  技術(shù)領(lǐng)域:
  本發(fā)明涉及一種對各種網(wǎng)站文章進(jìn)行自動(dòng)采集的方法。
  背景技術(shù):
  文章采集基于用戶(hù)自定義的關(guān)鍵詞字符,從各類(lèi)網(wǎng)站中檢索相關(guān)數據,對數據進(jìn)行合理的截取、分類(lèi)、歸類(lèi)。刪除和過(guò)濾,然后將其保存為文件或數據庫。文章采集 應用的關(guān)鍵是如何從眾多的網(wǎng)站中獲取所需的準確內容到預期的中央資源庫,然后快速使用。文章 采集 的核心技術(shù)是模式定義和模式匹配。模型屬于人工智能的術(shù)語(yǔ),是前人積累經(jīng)驗的抽象和升華。簡(jiǎn)單的說(shuō)就是從反復發(fā)生的事件中發(fā)現和抽象出來(lái)的規律,是解決問(wèn)題的經(jīng)驗總結。只要是反復出現的東西,就可能有一定的規律。文章采集 的大多數模式不會(huì )被程序自動(dòng)發(fā)現。目前幾乎所有的文章采集產(chǎn)品都需要手動(dòng)定義。但是模型本身是一個(gè)非常復雜和抽象的內容,所以開(kāi)發(fā)者的所有精力都花在了如何讓模型定義更簡(jiǎn)單、更準確上。這也是衡量文章采集技術(shù)競爭力的一個(gè)指標。. 目前使用最多的是正則表達式定義和文檔結構定義。傳統的文章采集有幾個(gè)問(wèn)題。1、采集是整篇文章文章,需要手動(dòng)頁(yè)面處理才能使用;&lt;
  發(fā)明內容
  本發(fā)明的目的是提供一種文章采集的方法,支持網(wǎng)站組采集的多個(gè)站點(diǎn),并且可以對文章進(jìn)行分段采集和采集的子列采集、文章可以自動(dòng)應用自己的網(wǎng)站格式進(jìn)行發(fā)布,無(wú)需人工處理。文章采集的一種方法,具體包括以下步驟:首先選擇采集的來(lái)源,使用正則表達式制定采集規則,使用關(guān)鍵信息處理方法確定采集內容范圍,將采集的內容綁定到目標站點(diǎn)的欄目;啟動(dòng)采集文章時(shí),先搜索采集的源碼,采用多線(xiàn)程技術(shù),多站點(diǎn)采集 網(wǎng)站 組的;根據采集的設置規則,將采集的內容存放在對應的欄目下;如果需要自動(dòng)發(fā)布,則調用文章合并模板發(fā)布。使用正則表達式制定采集的規則是指輸入需要采集的靜態(tài)頁(yè)面地址,并確定地址中第N個(gè)“/”為靜態(tài)文件,需要&lt; @采集 內容地址,自動(dòng)轉換成正則表達式規則。關(guān)鍵信息處理方法是指確定文章標題或需要采集內容的關(guān)鍵信息串的位置。本發(fā)明采用正則表達式定義方式,根據用戶(hù)自定義任務(wù)配置,批量準確提取目標網(wǎng)絡(luò )媒體欄目中的新聞或文章,并轉換為結構化記錄(標題、作者、內容、采集時(shí)間、來(lái)源、分類(lèi)、相關(guān)圖片等),存儲在本地數據庫中,用于內部使用或外部網(wǎng)絡(luò )發(fā)布,快速實(shí)現外部信息的獲取,對于各種網(wǎng)站新聞采集具有更快的速度和更高的準確率。本發(fā)明可以自動(dòng)和手動(dòng)兩種模式運行。系統定時(shí)自動(dòng)更新指定站點(diǎn)的最新信息,手動(dòng)提供及時(shí)觸發(fā)機制;支持使用不同模式的不同信息采集。本發(fā)明改進(jìn)了傳統的文章采集技術(shù),真正滿(mǎn)足了用戶(hù)的應用需求。您需要的內容;2、每一列可以自定義對應的采集任務(wù),文章 采集然后自動(dòng)存入對應的列;3、采用多線(xiàn)程技術(shù),支持網(wǎng)站組多站點(diǎn)采集;4、結合模板引擎技術(shù),文章采集可以自動(dòng)應用網(wǎng)站模板進(jìn)行自動(dòng)發(fā)布。
  圖1是本發(fā)明的邏輯流程圖。
  圖2為本發(fā)明實(shí)施例中采集內容的字符串位置示意圖。下面結合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細說(shuō)明。
<p>具體實(shí)施方式如圖1所示,本發(fā)明的一種文章采集的方法,具體包括:首先選擇采集的來(lái)源,制定

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久