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

文章采集api

文章采集api

一篇文章教會(huì )你用Python多線(xiàn)程獲取小米應用商店App

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

  一篇文章教會(huì )你用Python多線(xiàn)程獲取小米應用商店App
  【一、項目背景】
  小米應用商店給用戶(hù)發(fā)覺(jué)最好的安卓應用和游戲,安全可靠,可是要下載東西要一個(gè)一個(gè)的搜索太麻煩了。而已速率不是很快。
  今天用多線(xiàn)程爬取小米應用商店的游戲模塊??焖佾@取。
  
  【二、項目目標】
  目標 :應用分類(lèi) - 聊天社交 應用名稱(chēng), 應用鏈接,顯示在控制臺供用戶(hù)下載。
  【三、涉及的庫和網(wǎng)站】
  1、網(wǎng)址:百度搜 - 小米應用商店,進(jìn)入官網(wǎng)。
  2、涉及的庫:reques****ts、threading 、queue 、json、time
  3、軟件:PyCharm
  【四、項目剖析】
  1、確認是否為動(dòng)態(tài)加載。
  通過(guò)頁(yè)面局部刷新, 右鍵查看網(wǎng)頁(yè)源代碼,搜索關(guān)鍵字未搜到 。斷定此網(wǎng)站為動(dòng)態(tài)加載網(wǎng)站,需要抓取網(wǎng)路數據包剖析。
  2、使用chrome瀏覽器,F12抓取網(wǎng)路數據包。
  1)抓取返回json數據的URL地址(Headers中的Request URL)。
  http://app.mi.com/categotyAllListApi?page={}&categoryId=2&pageSize=30
  2)查看并剖析查詢(xún)參數(headers中的Query String Parameters)。
  page: 1
categoryId: 2
pageSize: 30
  發(fā)現只有page再變,0 1 2 3 ... ... ,這樣我們就可以通過(guò)控制page的直拼接多個(gè)返回json數據的URL地址。
  【五、項目施行】
  1、我們定義一個(gè)class類(lèi)承繼object,然后定義init方式承繼self,再定義一個(gè)主函數main承繼self。準備導出庫,url地址和懇求頭headers。
  import requests
from threading import Thread
from queue import Queue
import json
import time
class XiaomiSpider(object):
def __init__(self):
self.headers = {'User-Agent':'Mozilla/5.0'}
self.url = 'http://app.mi.com/categotyAllListApi?page={}&categoryId=15&pageSize=30'
def main(self):
pass
if __name__ == '__main__':
imageSpider = XiaomiSpider()
imageSpider.main()
  2、定義隊列,用來(lái)儲存URL地址
  self.url_queue = Queue()
  3、URL入隊列
  def url_in(self):
# 拼接多個(gè)URL地址,然后put()到隊列中
for i in range(67):
self.url.format((str(i)))
self.url_queue.put(self.url)
  4、定義線(xiàn)程風(fēng)波函數get_page(請求數據)
  def get_page(self):
# 先get()URL地址,發(fā)請求
while True:
# 當隊列不為空時(shí),獲取url地址
if not self.url_queue.empty():
url = self.url_queue.get()
html = requests.get(url,headers=self.headers).text
self.parse_page(html)
else:
break
  5、定義函數parse_page 解析json模塊,提取應用名稱(chēng),應用鏈接內容。
   # 解析函數
def parse_page(self,html):
app_json = json.loads(html)
for app in app_json['data']:
# 應用名稱(chēng)
name = app['displayName']
# 應用鏈接
link = 'http://app.mi.com/details?id={}'.format(app['packageName'])
d = { '名稱(chēng)' : name,'鏈接' : link }
print(d)
  6、main方式, 定義t_list = [] 存放所有線(xiàn)程的列表。調用get_page多線(xiàn)程爬取。
  def main(self):
self.url_in()
# 存放所有線(xiàn)程的列表
t_list = []
for i in range(10):
t = Thread(target=self.get_page)
t.start()
t_list.append(t)
  7、for循環(huán)遍歷列表,統一回收線(xiàn)程。
  # 統一回收線(xiàn)程
for p in t_list:
p.join()
  8、統計一下執行時(shí)間。
  start = time.time()
spider = XiaomiSpider()
spider.main()
end = time.time()
print('執行時(shí)間:%.2f' % (end-start))
  【六、效果展示】
  1、運行程序。點(diǎn)擊運行,將游戲名稱(chēng),下載鏈接,執行時(shí)間,顯示在控制臺。
  
  2、點(diǎn)擊紅色的網(wǎng)址可以直接去到下載頁(yè)面下載應用,如下圖所示。
  
  【七、總結】
  1、不建議抓取太多數據,容易對服務(wù)器導致負載,淺嘗輒止即可。
  2、Python多線(xiàn)程優(yōu)點(diǎn)。使用線(xiàn)程可以把搶占長(cháng)時(shí)間的程序中的任務(wù)放在后臺去處,程序的運行速率可能推動(dòng)。
  3、單線(xiàn)程可以被占領(lǐng)(中斷),而已多線(xiàn)程就有了更多的選擇。而已在其他線(xiàn)程正在運行時(shí),線(xiàn)程可以暫時(shí)擱置(也稱(chēng)為睡眠)??梢葬尫乓恍┱湎〉馁Y源如顯存占用。
  4、大家也可以嘗試在爬取其他分類(lèi),按照操作步驟,自己嘗試去做。自己實(shí)現的時(shí)侯,總會(huì )有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的愈發(fā)深刻。 查看全部

  一篇文章教會(huì )你用Python多線(xiàn)程獲取小米應用商店App
  【一、項目背景】
  小米應用商店給用戶(hù)發(fā)覺(jué)最好的安卓應用和游戲,安全可靠,可是要下載東西要一個(gè)一個(gè)的搜索太麻煩了。而已速率不是很快。
  今天用多線(xiàn)程爬取小米應用商店的游戲模塊??焖佾@取。
  
  【二、項目目標】
  目標 :應用分類(lèi) - 聊天社交 應用名稱(chēng), 應用鏈接,顯示在控制臺供用戶(hù)下載。
  【三、涉及的庫和網(wǎng)站】
  1、網(wǎng)址:百度搜 - 小米應用商店,進(jìn)入官網(wǎng)。
  2、涉及的庫:reques****ts、threading 、queue 、json、time
  3、軟件:PyCharm
  【四、項目剖析】
  1、確認是否為動(dòng)態(tài)加載。
  通過(guò)頁(yè)面局部刷新, 右鍵查看網(wǎng)頁(yè)源代碼,搜索關(guān)鍵字未搜到 。斷定此網(wǎng)站為動(dòng)態(tài)加載網(wǎng)站,需要抓取網(wǎng)路數據包剖析。
  2、使用chrome瀏覽器,F12抓取網(wǎng)路數據包。
  1)抓取返回json數據的URL地址(Headers中的Request URL)。
  http://app.mi.com/categotyAllListApi?page={}&categoryId=2&pageSize=30
  2)查看并剖析查詢(xún)參數(headers中的Query String Parameters)。
  page: 1
categoryId: 2
pageSize: 30
  發(fā)現只有page再變,0 1 2 3 ... ... ,這樣我們就可以通過(guò)控制page的直拼接多個(gè)返回json數據的URL地址。
  【五、項目施行】
  1、我們定義一個(gè)class類(lèi)承繼object,然后定義init方式承繼self,再定義一個(gè)主函數main承繼self。準備導出庫,url地址和懇求頭headers。
  import requests
from threading import Thread
from queue import Queue
import json
import time
class XiaomiSpider(object):
def __init__(self):
self.headers = {'User-Agent':'Mozilla/5.0'}
self.url = 'http://app.mi.com/categotyAllListApi?page={}&categoryId=15&pageSize=30'
def main(self):
pass
if __name__ == '__main__':
imageSpider = XiaomiSpider()
imageSpider.main()
  2、定義隊列,用來(lái)儲存URL地址
  self.url_queue = Queue()
  3、URL入隊列
  def url_in(self):
# 拼接多個(gè)URL地址,然后put()到隊列中
for i in range(67):
self.url.format((str(i)))
self.url_queue.put(self.url)
  4、定義線(xiàn)程風(fēng)波函數get_page(請求數據)
  def get_page(self):
# 先get()URL地址,發(fā)請求
while True:
# 當隊列不為空時(shí),獲取url地址
if not self.url_queue.empty():
url = self.url_queue.get()
html = requests.get(url,headers=self.headers).text
self.parse_page(html)
else:
break
  5、定義函數parse_page 解析json模塊,提取應用名稱(chēng),應用鏈接內容。
   # 解析函數
def parse_page(self,html):
app_json = json.loads(html)
for app in app_json['data']:
# 應用名稱(chēng)
name = app['displayName']
# 應用鏈接
link = 'http://app.mi.com/details?id={}'.format(app['packageName'])
d = { '名稱(chēng)' : name,'鏈接' : link }
print(d)
  6、main方式, 定義t_list = [] 存放所有線(xiàn)程的列表。調用get_page多線(xiàn)程爬取。
  def main(self):
self.url_in()
# 存放所有線(xiàn)程的列表
t_list = []
for i in range(10):
t = Thread(target=self.get_page)
t.start()
t_list.append(t)
  7、for循環(huán)遍歷列表,統一回收線(xiàn)程。
  # 統一回收線(xiàn)程
for p in t_list:
p.join()
  8、統計一下執行時(shí)間。
  start = time.time()
spider = XiaomiSpider()
spider.main()
end = time.time()
print('執行時(shí)間:%.2f' % (end-start))
  【六、效果展示】
  1、運行程序。點(diǎn)擊運行,將游戲名稱(chēng),下載鏈接,執行時(shí)間,顯示在控制臺。
  
  2、點(diǎn)擊紅色的網(wǎng)址可以直接去到下載頁(yè)面下載應用,如下圖所示。
  
  【七、總結】
  1、不建議抓取太多數據,容易對服務(wù)器導致負載,淺嘗輒止即可。
  2、Python多線(xiàn)程優(yōu)點(diǎn)。使用線(xiàn)程可以把搶占長(cháng)時(shí)間的程序中的任務(wù)放在后臺去處,程序的運行速率可能推動(dòng)。
  3、單線(xiàn)程可以被占領(lǐng)(中斷),而已多線(xiàn)程就有了更多的選擇。而已在其他線(xiàn)程正在運行時(shí),線(xiàn)程可以暫時(shí)擱置(也稱(chēng)為睡眠)??梢葬尫乓恍┱湎〉馁Y源如顯存占用。
  4、大家也可以嘗試在爬取其他分類(lèi),按照操作步驟,自己嘗試去做。自己實(shí)現的時(shí)侯,總會(huì )有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的愈發(fā)深刻。

文章采集api 4.5.2 奶盤(pán)API

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

  文章采集api 4.5.2 奶盤(pán)API
  接入奶盤(pán)API教程
  優(yōu)采云采集支持調用奶盤(pán)API接口,處理采集的數據標題和內容等;
  提示:第三方API接入功能須要優(yōu)采云旗艦版套餐才支持使用,用戶(hù)需自提供第三方插口賬號信息(即用戶(hù)需注冊第三方插口,調用第三方插口形成的一切費用,由用戶(hù)自己承當);
  詳細使用步驟1. 奶盤(pán)API接口配置I、API配置入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》點(diǎn)擊【第三方API配置管理】 ==》 最后點(diǎn)擊【+奶盤(pán)API】創(chuàng )建插口配置;
  
  II、配置API插口信息:
  【購買(mǎi)的授權用戶(hù)】、【購買(mǎi)的授權碼】是從奶盤(pán)網(wǎng)后臺獲取API授權信息;
  【API版本】是對應奶盤(pán)網(wǎng)訂購的套餐:百度優(yōu)化版,AI智能版;
  注意:因奶盤(pán)限制每次調用最長(cháng)65000字符(包括html代碼),所以當內容厚度超過(guò)時(shí),優(yōu)采云會(huì )分割并分多次調用,此操作會(huì )導致api調用次數的降低,費用也會(huì )相應降低,這是用戶(hù)自己須要承當的費用,使用前一定要注意?。?!
  
  
  2. 創(chuàng )建API處理規則
  API處理規則,可設置調用API接口處理什么數組的內容;
  I、API處理規則入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》進(jìn)入【API處理規則管理】頁(yè)面,最后點(diǎn)擊【+添加API處理規則】創(chuàng )建API處理規則;
  
  II、API處理規則配置:
  
  注意:API處理1個(gè)主鍵時(shí),會(huì )調用一次API接口,因此不需要的數組建議不要加!
  3. API處理規則使用
  API處理規則使用方法有兩種:手動(dòng)執行和手動(dòng)執行:
  I、手動(dòng)執行API處理規則:
  在采集任務(wù)的 【結果數據&發(fā)布】 選項卡內點(diǎn)擊【 SEO&API&翻譯等工具】按鈕==》選擇【第三方API執行】欄==》選擇相應的API處理規則 ==》執行(數據范圍有兩種執行方法,批量按發(fā)布狀態(tài)執行和按列表所選數據執行);
  
  II、自動(dòng)執行API處理規則:
  啟用API處理手動(dòng)執行,任務(wù)完成采集后會(huì )手動(dòng)執行API處理,一般配合定時(shí)采集和手動(dòng)發(fā)布功能使用,十分便捷;
  在任務(wù)的 【自動(dòng)化:發(fā)布&SEO&翻譯】選項卡里【自動(dòng)執行第三方API配置】處==》勾選上【采集后,自動(dòng)執行API】選項==》選擇執行的API處理規則 ==》選擇API接口處理的數據范圍(一般選擇 ‘待發(fā)布’ 即可,全部會(huì )導致所有數據反復執行多次),最后點(diǎn)擊保存即可;
  
  4. API處理后的結果及發(fā)布I、查看API插口處理后的結果:
  API接口處理后的內容會(huì )保存為新數組,如:title處理后新增數組:title_奶盤(pán),content處理后新增數組:content_奶盤(pán),在【結果數據&發(fā)布】與數據預覽界面都可查看。
  提示:API處理規則執行須要一點(diǎn)時(shí)間,執行完成后會(huì )手動(dòng)刷新頁(yè)面出現API接口處理后的新數組;
  
  II、發(fā)布API接口處理后內容:
  發(fā)布文章前,修改發(fā)布目標第二步映射字段處,標題和內容選舉為API接口處理后新增的對應數組title_奶盤(pán)和content_奶盤(pán);
  提示:如果發(fā)布目標內難以選擇新增數組,請在該任務(wù)下復制或新建發(fā)布目標后,在新發(fā)布目標中即可選擇到新增數組,詳細教程可查看;
  
  優(yōu)采云導航:優(yōu)采云采集 優(yōu)采云控制臺 如何使用優(yōu)采云SEO工具 微信公眾號文章采集 今日頭條采集 查看全部

  文章采集api 4.5.2 奶盤(pán)API
  接入奶盤(pán)API教程
  優(yōu)采云采集支持調用奶盤(pán)API接口,處理采集的數據標題和內容等;
  提示:第三方API接入功能須要優(yōu)采云旗艦版套餐才支持使用,用戶(hù)需自提供第三方插口賬號信息(即用戶(hù)需注冊第三方插口,調用第三方插口形成的一切費用,由用戶(hù)自己承當);
  詳細使用步驟1. 奶盤(pán)API接口配置I、API配置入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》點(diǎn)擊【第三方API配置管理】 ==》 最后點(diǎn)擊【+奶盤(pán)API】創(chuàng )建插口配置;
  
  II、配置API插口信息:
  【購買(mǎi)的授權用戶(hù)】、【購買(mǎi)的授權碼】是從奶盤(pán)網(wǎng)后臺獲取API授權信息;
  【API版本】是對應奶盤(pán)網(wǎng)訂購的套餐:百度優(yōu)化版,AI智能版;
  注意:因奶盤(pán)限制每次調用最長(cháng)65000字符(包括html代碼),所以當內容厚度超過(guò)時(shí),優(yōu)采云會(huì )分割并分多次調用,此操作會(huì )導致api調用次數的降低,費用也會(huì )相應降低,這是用戶(hù)自己須要承當的費用,使用前一定要注意?。?!
  
  
  2. 創(chuàng )建API處理規則
  API處理規則,可設置調用API接口處理什么數組的內容;
  I、API處理規則入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》進(jìn)入【API處理規則管理】頁(yè)面,最后點(diǎn)擊【+添加API處理規則】創(chuàng )建API處理規則;
  
  II、API處理規則配置:
  
  注意:API處理1個(gè)主鍵時(shí),會(huì )調用一次API接口,因此不需要的數組建議不要加!
  3. API處理規則使用
  API處理規則使用方法有兩種:手動(dòng)執行和手動(dòng)執行:
  I、手動(dòng)執行API處理規則:
  在采集任務(wù)的 【結果數據&發(fā)布】 選項卡內點(diǎn)擊【 SEO&API&翻譯等工具】按鈕==》選擇【第三方API執行】欄==》選擇相應的API處理規則 ==》執行(數據范圍有兩種執行方法,批量按發(fā)布狀態(tài)執行和按列表所選數據執行);
  
  II、自動(dòng)執行API處理規則:
  啟用API處理手動(dòng)執行,任務(wù)完成采集后會(huì )手動(dòng)執行API處理,一般配合定時(shí)采集和手動(dòng)發(fā)布功能使用,十分便捷;
  在任務(wù)的 【自動(dòng)化:發(fā)布&SEO&翻譯】選項卡里【自動(dòng)執行第三方API配置】處==》勾選上【采集后,自動(dòng)執行API】選項==》選擇執行的API處理規則 ==》選擇API接口處理的數據范圍(一般選擇 ‘待發(fā)布’ 即可,全部會(huì )導致所有數據反復執行多次),最后點(diǎn)擊保存即可;
  
  4. API處理后的結果及發(fā)布I、查看API插口處理后的結果:
  API接口處理后的內容會(huì )保存為新數組,如:title處理后新增數組:title_奶盤(pán),content處理后新增數組:content_奶盤(pán),在【結果數據&發(fā)布】與數據預覽界面都可查看。
  提示:API處理規則執行須要一點(diǎn)時(shí)間,執行完成后會(huì )手動(dòng)刷新頁(yè)面出現API接口處理后的新數組;
  
  II、發(fā)布API接口處理后內容:
  發(fā)布文章前,修改發(fā)布目標第二步映射字段處,標題和內容選舉為API接口處理后新增的對應數組title_奶盤(pán)和content_奶盤(pán);
  提示:如果發(fā)布目標內難以選擇新增數組,請在該任務(wù)下復制或新建發(fā)布目標后,在新發(fā)布目標中即可選擇到新增數組,詳細教程可查看;
  
  優(yōu)采云導航:優(yōu)采云采集 優(yōu)采云控制臺 如何使用優(yōu)采云SEO工具 微信公眾號文章采集 今日頭條采集

數據搜集

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

  數據搜集
  數據的科學(xué)處理流程
  數據搜集網(wǎng)路數據采集
  通過(guò)網(wǎng)路爬蟲(chóng)或網(wǎng)站的API插口獲取網(wǎng)路公開(kāi)數據,獲取的數據大部分為非結構化數據,數據源十分豐富,不過(guò)采集的數據并不規范,需要進(jìn)一步處理。
  系統日志采集
  通過(guò)企業(yè)業(yè)務(wù)平臺日志系統手機業(yè)務(wù)日志數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的可靠性和可用性。目前常用的日志搜集系統主要有Scribe、Chukwa、Kkafka、Flume等
  數據庫采集
  通過(guò)企業(yè)的數據庫系統搜集企業(yè)的業(yè)務(wù)數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的規范性、可靠性和可用性。目前企業(yè)常用的關(guān)系型數據庫系統主要包括SOLite、SqlSever、MySql、Oracle。除此之外,目前越來(lái)越多的企業(yè)也開(kāi)始采用Redis和MongoDB這也的Nosql數據庫系統。
  數據處理
  對采集到的數據進(jìn)行必要的加工整理(清洗、集成、變換、規約),以達到數據剖析的規范要求。這個(gè)步驟一般是“數據科學(xué)”任務(wù)周期中最歷時(shí)、最乏味的階段,但也是至關(guān)重要的一個(gè)環(huán)節。
  數據儲存文本文件(txt、excel、dat等)關(guān)系型數據庫(SOLite、SqlSever、MySql、Oracle等)非關(guān)系型數據庫(MongoDb、Redis、Hbase等)數據剖析
  根據實(shí)際的任務(wù)需求,基于搜集并進(jìn)行加工處理后的數據,采用統計、機器學(xué)習或深度學(xué)習的方式構建、訓練并優(yōu)化模型,并應用模型解決實(shí)際任務(wù)中的問(wèn)題。 查看全部

  數據搜集
  數據的科學(xué)處理流程
  數據搜集網(wǎng)路數據采集
  通過(guò)網(wǎng)路爬蟲(chóng)或網(wǎng)站的API插口獲取網(wǎng)路公開(kāi)數據,獲取的數據大部分為非結構化數據,數據源十分豐富,不過(guò)采集的數據并不規范,需要進(jìn)一步處理。
  系統日志采集
  通過(guò)企業(yè)業(yè)務(wù)平臺日志系統手機業(yè)務(wù)日志數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的可靠性和可用性。目前常用的日志搜集系統主要有Scribe、Chukwa、Kkafka、Flume等
  數據庫采集
  通過(guò)企業(yè)的數據庫系統搜集企業(yè)的業(yè)務(wù)數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的規范性、可靠性和可用性。目前企業(yè)常用的關(guān)系型數據庫系統主要包括SOLite、SqlSever、MySql、Oracle。除此之外,目前越來(lái)越多的企業(yè)也開(kāi)始采用Redis和MongoDB這也的Nosql數據庫系統。
  數據處理
  對采集到的數據進(jìn)行必要的加工整理(清洗、集成、變換、規約),以達到數據剖析的規范要求。這個(gè)步驟一般是“數據科學(xué)”任務(wù)周期中最歷時(shí)、最乏味的階段,但也是至關(guān)重要的一個(gè)環(huán)節。
  數據儲存文本文件(txt、excel、dat等)關(guān)系型數據庫(SOLite、SqlSever、MySql、Oracle等)非關(guān)系型數據庫(MongoDb、Redis、Hbase等)數據剖析
  根據實(shí)際的任務(wù)需求,基于搜集并進(jìn)行加工處理后的數據,采用統計、機器學(xué)習或深度學(xué)習的方式構建、訓練并優(yōu)化模型,并應用模型解決實(shí)際任務(wù)中的問(wèn)題。

微服務(wù)下的信息采集(II)

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

  微服務(wù)下的信息采集(II)
  我是掌控安全的咸魚(yú)-魔術(shù)手,上次講了 微服務(wù)下的信息搜集(一),這次來(lái)水一下 微服務(wù)下的信息搜集(II)。
  上次介紹了一個(gè)公司的站點(diǎn)可能由各個(gè)獨立在不同服務(wù)器上的服務(wù)組成,所以我們須要想盡辦法找到更多的域名;為了更好的測試我們也須要找到更多的目錄和參數。上次介紹可以從目標的陌陌小程序采集域名,也介紹了一款可以幫助我們搜集目標js里子域名和url的工具JSFinder。這次我們繼續介紹怎么搜集更多的資料,以下所有內容都是圍繞同一個(gè)站點(diǎn)進(jìn)行,目標域名,但是由于一些緣由,真實(shí)站點(diǎn)截圖未能放出,部分截圖為某公益src項目信息搜集截圖。
  相關(guān)域名發(fā)覺(jué)備案查詢(xún)
  絕大多數網(wǎng)站都是有備案信息的,可以通過(guò)備案信息查詢(xún)。如下圖,通過(guò)備案查詢(xún),我們找到另一個(gè)站點(diǎn)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)。
  
  證書(shū)透明度公開(kāi)日志枚舉
  證書(shū)透明度(Certificate Transparency,CT)是證書(shū)授權機構(CA)的一個(gè)項目,證書(shū)授權機構CA會(huì )將她們發(fā)布的每位SSL/TLS證書(shū)發(fā)布到公共日志中。一個(gè)SSL/TLS證書(shū)一般收錄域名、子域名和電郵地址,它們也常常成為攻擊者十分希望獲得的有用信息。因為目標是個(gè)小型站點(diǎn),用這些方式找到的機率比較大。如下圖,在crt.sh/中查詢(xún)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標):
  
  dns等
  這里還有好多方式,太過(guò)冗長(cháng),直接上工具,這次用的工具是oneforall,功能好多,各位感興趣可以自己研究。(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)
  
  通過(guò)前面的搜集,除了發(fā)覺(jué)好多有意思的子域名,而且搜索到了如和等和目標相關(guān)的域名。
  服務(wù)界定
  對里面找到的域名挨個(gè)訪(fǎng)問(wèn),對得到的內容進(jìn)行簡(jiǎn)單處理,發(fā)現目前采集到的服務(wù)(能訪(fǎng)問(wèn)的域名)主要有展示站,綜合營(yíng)運管理平臺和廣告服務(wù)。找到她們所對應的服務(wù)器,發(fā)現每位服務(wù)都起碼都收錄2臺服務(wù)器,如圖:
  
  在里面的所有域名和IP中,有兩個(gè)很有趣的,一個(gè)是,一個(gè)是,為什么有趣呢,一是因為名稱(chēng)office聽(tīng)上去如同是辦公服務(wù),另一個(gè)是IP,其余的服務(wù)器IP都是11*.*.*.*或者是14*.*.*.*,就他倆特殊,所以這倆待會(huì )要重點(diǎn)關(guān)照。
  在下篇文章中說(shuō)過(guò),微服務(wù)是由好多個(gè)獨立的服務(wù)組合而成的,而里面搜集到的服務(wù)看起來(lái)不象是所有的服務(wù),畢竟里面是被動(dòng)的信息搜集,搜集的內容有限。假設前面采集到的服務(wù)器是目標的大部分服務(wù)器,那么假如目標還有其它服務(wù),我們該如何辦呢?答案是掃描端口。
  端口掃描
  在端口掃描時(shí)須要注意的是,因為一臺服務(wù)器上可能有好多服務(wù),所以這兒在掃描的時(shí)侯須要掃描全部端口,這里使用nmap -sC -T4 -p 1-65535重點(diǎn)掃描了那兩臺服務(wù)器,發(fā)現了兩個(gè)有意思的地方,如下:
  
  第二個(gè)是一個(gè)很厲害的服務(wù),估計是處于開(kāi)發(fā)中,訪(fǎng)問(wèn)頁(yè)面默認填充帳戶(hù)密碼,所以這兒不放圖了(認慫保平安)。
  
  隱私文件偵測 查看全部

  微服務(wù)下的信息采集(II)
  我是掌控安全的咸魚(yú)-魔術(shù)手,上次講了 微服務(wù)下的信息搜集(一),這次來(lái)水一下 微服務(wù)下的信息搜集(II)。
  上次介紹了一個(gè)公司的站點(diǎn)可能由各個(gè)獨立在不同服務(wù)器上的服務(wù)組成,所以我們須要想盡辦法找到更多的域名;為了更好的測試我們也須要找到更多的目錄和參數。上次介紹可以從目標的陌陌小程序采集域名,也介紹了一款可以幫助我們搜集目標js里子域名和url的工具JSFinder。這次我們繼續介紹怎么搜集更多的資料,以下所有內容都是圍繞同一個(gè)站點(diǎn)進(jìn)行,目標域名,但是由于一些緣由,真實(shí)站點(diǎn)截圖未能放出,部分截圖為某公益src項目信息搜集截圖。
  相關(guān)域名發(fā)覺(jué)備案查詢(xún)
  絕大多數網(wǎng)站都是有備案信息的,可以通過(guò)備案信息查詢(xún)。如下圖,通過(guò)備案查詢(xún),我們找到另一個(gè)站點(diǎn)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)。
  
  證書(shū)透明度公開(kāi)日志枚舉
  證書(shū)透明度(Certificate Transparency,CT)是證書(shū)授權機構(CA)的一個(gè)項目,證書(shū)授權機構CA會(huì )將她們發(fā)布的每位SSL/TLS證書(shū)發(fā)布到公共日志中。一個(gè)SSL/TLS證書(shū)一般收錄域名、子域名和電郵地址,它們也常常成為攻擊者十分希望獲得的有用信息。因為目標是個(gè)小型站點(diǎn),用這些方式找到的機率比較大。如下圖,在crt.sh/中查詢(xún)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標):
  
  dns等
  這里還有好多方式,太過(guò)冗長(cháng),直接上工具,這次用的工具是oneforall,功能好多,各位感興趣可以自己研究。(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)
  
  通過(guò)前面的搜集,除了發(fā)覺(jué)好多有意思的子域名,而且搜索到了如和等和目標相關(guān)的域名。
  服務(wù)界定
  對里面找到的域名挨個(gè)訪(fǎng)問(wèn),對得到的內容進(jìn)行簡(jiǎn)單處理,發(fā)現目前采集到的服務(wù)(能訪(fǎng)問(wèn)的域名)主要有展示站,綜合營(yíng)運管理平臺和廣告服務(wù)。找到她們所對應的服務(wù)器,發(fā)現每位服務(wù)都起碼都收錄2臺服務(wù)器,如圖:
  
  在里面的所有域名和IP中,有兩個(gè)很有趣的,一個(gè)是,一個(gè)是,為什么有趣呢,一是因為名稱(chēng)office聽(tīng)上去如同是辦公服務(wù),另一個(gè)是IP,其余的服務(wù)器IP都是11*.*.*.*或者是14*.*.*.*,就他倆特殊,所以這倆待會(huì )要重點(diǎn)關(guān)照。
  在下篇文章中說(shuō)過(guò),微服務(wù)是由好多個(gè)獨立的服務(wù)組合而成的,而里面搜集到的服務(wù)看起來(lái)不象是所有的服務(wù),畢竟里面是被動(dòng)的信息搜集,搜集的內容有限。假設前面采集到的服務(wù)器是目標的大部分服務(wù)器,那么假如目標還有其它服務(wù),我們該如何辦呢?答案是掃描端口。
  端口掃描
  在端口掃描時(shí)須要注意的是,因為一臺服務(wù)器上可能有好多服務(wù),所以這兒在掃描的時(shí)侯須要掃描全部端口,這里使用nmap -sC -T4 -p 1-65535重點(diǎn)掃描了那兩臺服務(wù)器,發(fā)現了兩個(gè)有意思的地方,如下:
  
  第二個(gè)是一個(gè)很厲害的服務(wù),估計是處于開(kāi)發(fā)中,訪(fǎng)問(wèn)頁(yè)面默認填充帳戶(hù)密碼,所以這兒不放圖了(認慫保平安)。
  
  隱私文件偵測

HTML5 存儲API介紹(采集)

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

  相應的路徑均與用戶(hù)正在訪(fǎng)問(wèn)的HTML頁(yè)面相關(guān)。 當創(chuàng )建高速緩存manifest文件時(shí),你必須了解一些其它選項。 其中一個(gè)選項是絕不能高速緩存的文件的情形。 也許只有就能在線(xiàn)獲得的動(dòng)態(tài)腳本或個(gè)別內容才是有意義的。 高速緩存manifest文件才能界定為告知瀏覽器怎樣對個(gè)別內容進(jìn)行響應的區段(section)。 通過(guò)創(chuàng )建一個(gè) NETWORK和列舉這些絕不能高速緩存的文件,瀏覽器一定就能忽視那些文件而且使人們決不能離線(xiàn)獲得它們。
  另一個(gè)情形是當用戶(hù)企圖訪(fǎng)問(wèn)一個(gè)沒(méi)有高速緩存的頁(yè)面或個(gè)別應當高速緩存但卻沒(méi)有正確保存的內容時(shí)的情形。 高速緩存 manifest API 能夠提供一個(gè)FALLBACK 區段(section),它指向一個(gè)在上述用例中加載的頁(yè)面。 因此,當用戶(hù)企圖訪(fǎng)問(wèn)沒(méi)有保存的個(gè)別內容時(shí),他們將見(jiàn)到一條關(guān)于離線(xiàn)提示的消息。 下面是一個(gè)理論上的收錄那些區段(section)的高速緩存Manifest文件的大約構架:
  CACHE MANIFEST NETWORK: my_dynamic_script.cgi FALLBACK: my_offline_message.html CACHE: style.css offlinescript.js images/dreamweaver_logo.png images/edge_logo.png
  在本例中,我提供了一個(gè)帶有一個(gè)外部JavaScript 頁(yè)面和外部 CSS頁(yè)面的HTML頁(yè)面。 該HTML頁(yè)面就能顯示一些描述一個(gè)Adobe徽標的文本,并且當你點(diǎn)擊相應的圖象時(shí),JavaScript 將會(huì )為另一個(gè)徽標換出相應的圖象和文本。 下面是相應的HTML代碼,緊跟其后的是JavaScript函數:
  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT ... %3Bbr /><br /><br /> <br /> Adobe Logos<br /> <br /> <br /><br /><br /> <br /> This is the Edge logo:<br /> <br /> <br /> <br /> Click on the logo to swap it out.<br /><br /><br />
  所有那些代碼的關(guān)鍵部份是帶有 manifest 屬性的HTML標簽。 它是指向我在里面引用的我的cache.manifest 文件。 該manifest文件才能指示瀏覽器下載列表中給出的所有文件。 不管用戶(hù)在瀏覽那些文件時(shí)是否下載它們,相應的瀏覽器將手動(dòng)下載manifest文件中收錄的所有文件。 這意味著(zhù)兩個(gè)圖象都將被保存便于離線(xiàn)訪(fǎng)問(wèn),即使第二個(gè)圖象直至我與相應內容互動(dòng)時(shí)才加載到頁(yè)面。 因此,只需加載該頁(yè)面一次,我即可以在離線(xiàn)情形下完全與它進(jìn)行互動(dòng),并且兩個(gè)圖象均會(huì )旋轉。 查看全部

  相應的路徑均與用戶(hù)正在訪(fǎng)問(wèn)的HTML頁(yè)面相關(guān)。 當創(chuàng )建高速緩存manifest文件時(shí),你必須了解一些其它選項。 其中一個(gè)選項是絕不能高速緩存的文件的情形。 也許只有就能在線(xiàn)獲得的動(dòng)態(tài)腳本或個(gè)別內容才是有意義的。 高速緩存manifest文件才能界定為告知瀏覽器怎樣對個(gè)別內容進(jìn)行響應的區段(section)。 通過(guò)創(chuàng )建一個(gè) NETWORK和列舉這些絕不能高速緩存的文件,瀏覽器一定就能忽視那些文件而且使人們決不能離線(xiàn)獲得它們。
  另一個(gè)情形是當用戶(hù)企圖訪(fǎng)問(wèn)一個(gè)沒(méi)有高速緩存的頁(yè)面或個(gè)別應當高速緩存但卻沒(méi)有正確保存的內容時(shí)的情形。 高速緩存 manifest API 能夠提供一個(gè)FALLBACK 區段(section),它指向一個(gè)在上述用例中加載的頁(yè)面。 因此,當用戶(hù)企圖訪(fǎng)問(wèn)沒(méi)有保存的個(gè)別內容時(shí),他們將見(jiàn)到一條關(guān)于離線(xiàn)提示的消息。 下面是一個(gè)理論上的收錄那些區段(section)的高速緩存Manifest文件的大約構架:
  CACHE MANIFEST NETWORK: my_dynamic_script.cgi FALLBACK: my_offline_message.html CACHE: style.css offlinescript.js images/dreamweaver_logo.png images/edge_logo.png
  在本例中,我提供了一個(gè)帶有一個(gè)外部JavaScript 頁(yè)面和外部 CSS頁(yè)面的HTML頁(yè)面。 該HTML頁(yè)面就能顯示一些描述一個(gè)Adobe徽標的文本,并且當你點(diǎn)擊相應的圖象時(shí),JavaScript 將會(huì )為另一個(gè)徽標換出相應的圖象和文本。 下面是相應的HTML代碼,緊跟其后的是JavaScript函數:
  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT ... %3Bbr /><br /><br /> <br /> Adobe Logos<br /> <br /> <br /><br /><br /> <br /> This is the Edge logo:<br /> <br /> <br /> <br /> Click on the logo to swap it out.<br /><br /><br />
  所有那些代碼的關(guān)鍵部份是帶有 manifest 屬性的HTML標簽。 它是指向我在里面引用的我的cache.manifest 文件。 該manifest文件才能指示瀏覽器下載列表中給出的所有文件。 不管用戶(hù)在瀏覽那些文件時(shí)是否下載它們,相應的瀏覽器將手動(dòng)下載manifest文件中收錄的所有文件。 這意味著(zhù)兩個(gè)圖象都將被保存便于離線(xiàn)訪(fǎng)問(wèn),即使第二個(gè)圖象直至我與相應內容互動(dòng)時(shí)才加載到頁(yè)面。 因此,只需加載該頁(yè)面一次,我即可以在離線(xiàn)情形下完全與它進(jìn)行互動(dòng),并且兩個(gè)圖象均會(huì )旋轉。

QuicklibTrade A股行情采集API方案2.5即將發(fā)布

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

  
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  
  
  
  QuicklibTrade簡(jiǎn)介
  QuicklibTrade是一套簡(jiǎn)單易行的藍籌股程序化交易方案,主要采用對股票軟件客戶(hù)端(如大智慧、同花順、東方財富、通達信)數據的采集,提供給多種插口。支持直接調用公式編輯器的數據,大大簡(jiǎn)化了策略開(kāi)發(fā)。很多精典指標公式可以直接使用。
  關(guān)鍵是可以免費使用
  QuicklibTrade行情數據采集視頻教學(xué)
  采集和API調用講解
  /x/page/y0842b72xbh.html?pcsharecode=Y0h4qOSw&amp;sf=uri
  含借助虛擬機采集行情講解
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  QuicklibTrade 免費的藍籌股Level2行情插口
  /
  注冊
  /register.html
  下載
  /mdapi.asp
  其它相關(guān)問(wèn)題請瀏覽
  /comm/category/20/
  第1期僅發(fā)布行情采集和插口,第2期發(fā)布交易插口和行情的局域網(wǎng)網(wǎng)路插口
  用于每臺主機僅能運行1個(gè)DataUpdate.exe,為了采用多個(gè)DataUpdate.exe來(lái)采集通過(guò)局域網(wǎng)網(wǎng)路插口共享數據來(lái)推動(dòng)更新速率,所以采用虛擬機形式。
  已經(jīng)提供了虛擬機鏡像云盤(pán)下載,主要用于行情的局域網(wǎng)網(wǎng)路插口,每個(gè)虛擬機可開(kāi)啟1份大智慧和DataUpdate.exe推動(dòng)數據更新速率
  QuicklibTrade構架如下圖所示:
  分為行情插口和交易插口,本文只講解行情插口,交易插口計劃2019年初發(fā)布。
  第一期行情插口2.1版支持大智慧的分隔線(xiàn)模式,字體選擇精典字體。開(kāi)始菜單預留了同花順、東方財富、通達信的數據采集方案菜單。
  1)支持行情數據采集
  2)支持指標數據采集
  3)支持交易訊號,交易策略可以使用大智慧公式編輯器開(kāi)發(fā),用特定的熟知表示買(mǎi)和賣(mài),將指標加載到大智慧的列中,接口辨識數據的數值,直接通過(guò)插口判定熟知來(lái)決定交易。
  每次采集支持12個(gè)數組同時(shí)采集,這12個(gè)數組可以是行情,可以是指標,可以是交易訊號。
  **運行平臺:**Windows7、Windows78、Windows10、WindowsServer2008、WindowsServer2012、WindowsServer2016等各個(gè)版本
  運行虛擬機的網(wǎng)路插口必須是64位操作系統
  其他插口32位和64位Windows操作系統均可。
  **硬件配置:**請使用單屏顯示器,使用2個(gè)及以上屏幕會(huì )導致數據錯亂
  支持的插口包括了Python插口和C++插口。
  **Python插口:**可直接被Python調用,
  從/mdapi.asp下載的事例(即.py文件)是Python2.7的事例,理論上也支持Python3.x的。
  Python插口中的.dll文件理論適宜任何Python版本
  **C++插口:**支持所有支持調用DLL的語(yǔ)言,包括C++、Java、C#、VB.NET、易語(yǔ)言等。
  第1期發(fā)布的
  (1)Dataupdate主程序
  (2)A股類(lèi)CTP插口C++接口 (適合運行DataUpdate的同一臺機)
  (3)A股類(lèi)CTP插口C++插口的Demo 類(lèi)證券CTP插口的Demo
  (4)Dataupdate分布式程序 等待發(fā)布 行情數據更新分布式程序
  (5)Python MSSQL插口 適宜局域網(wǎng),多個(gè)DataUpdate采集共享
  (6)Python Access插口適宜運行DataUpdate的同一臺機
  Python ShareMemory插口 Python 共享顯存數據插口,適合運行DataUpdate的同一臺機
  同時(shí)提供了虛擬機環(huán)境,主要用于MSSQL數據庫插口和未來(lái)的 LocalNetwork插口(局域網(wǎng)網(wǎng)路數據插口)
  第2期發(fā)布內容,新增插口 ,2.2版
  (1)Python LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  (2)C++ LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  使用步驟(以大智慧為例):
  1)下載大智慧,并安裝大智慧程序
  收費版Level2版和免費版均可。
  大智慧官方下載:
  /detail/function_365.jsp?product=116
  2)安裝大智慧
  安裝大智慧,安裝完成,大智慧在桌面上。
  如果在虛擬機運行,對虛擬機由于路徑過(guò)長(cháng)問(wèn)題,可能不能直接安裝,可以在物理機安裝后,拷貝磁盤(pán)下的“dzh365”目錄
  
  安裝目錄到虛擬機運行大智慧程序
  
  3)注冊,并登陸大智慧
  
  也可使用QQ和陌陌登陸
  4)進(jìn)入大智慧股票排序模式
  
  點(diǎn)擊上圖中大智慧界面的黃色按紐,進(jìn)入”行情報價(jià)列表“
  
  5)在標題欄調出行列分隔線(xiàn)
  在大智慧中我們采用分隔線(xiàn)模式采集數據,所以須要調出分隔線(xiàn)
  右鍵選中列菜單的“列分隔線(xiàn)”和“行分隔線(xiàn)”
  對辨識的列從左至右進(jìn)行依次操作,2.1版本是12列
  也可以將全部列和行都設置分隔線(xiàn)。
  
  設置完成后,如下圖所示
  
  6)在大智慧菜單設置精典字體,字體大小和風(fēng)格顏色不要改動(dòng)
  
  
  7)啟動(dòng)采集程序,采集程序會(huì )手動(dòng)激活早已打開(kāi)的大智慧程序,并辨識標出第一行的數據,可以人工檢測辨識的數據是否正確。
 ?。ㄈ绻孀R錯誤,一般是因為字體沒(méi)有設置為精典字體造成的,請勿必選用精典字體重試)
  從下述網(wǎng)址下載
  
  解壓后,運行DataUpdate.exe
  
  8)若人工觀(guān)察辨識第一行的數字正確,即按DdtaUpdate.exe程序的按鍵開(kāi)啟辨識,大智慧在窗口后置手動(dòng)滾動(dòng),并辨識。
  通過(guò)API即可獲得行情的股票代碼的12個(gè)數據數組。
  目前只能辨識數字,無(wú)法辨識英文,所以大智慧中的“億”這類(lèi)英文字符難以辨識,請不要對非純數字的指標進(jìn)行辨識。
  
  仔細核實(shí)黃框的數字是否正確辨識,如果錯誤,可能是因為字體設置錯誤,請重新設置字體后重試
  
  如果正確,則激活DataUpdate.exe程序,并點(diǎn)擊按鍵
  DataUpdate.exe手動(dòng)最小化,并開(kāi)始滾動(dòng)窗口進(jìn)行辨識
  如果點(diǎn)擊任務(wù)欄圖標,即可最大化DataUpdate.exe,識別也i手動(dòng)停止,或者點(diǎn)擊按鍵停止。
  打開(kāi)C++和Python的API,即可獲得行情
  其中C++插口提供了和證券CTP插口一樣的方式,熟悉C++和CTP的同學(xué)更快上手
  1)共享顯存插口和Access插口只能在運行DataUpdate.exe的本機運行
  2)MSSQL插口可以寫(xiě)入MSSQL數據庫,被別的PC主機調用MSSQL數據庫獲得數據。
  3)局域網(wǎng)數據插口(2.2版之后發(fā)布)將發(fā)布到整個(gè)局域網(wǎng)路,局域網(wǎng)中的所有主機,通過(guò)API即可獲得行情信息。也可以在多個(gè)主機上運行DataUpdate.exe
  這樣數據更新速率都將推動(dòng)數倍。
  在證券開(kāi)戶(hù),綁定帳戶(hù)后即可手動(dòng)激活DataUpdate.exe的功能
  免費激活方式
  1.按步驟開(kāi)辦證券帳戶(hù),綁定證券帳戶(hù)激活
  宏源期貨是上市公司,屬于申萬(wàn)宏源
  網(wǎng)絡(luò )開(kāi)戶(hù)選擇宏源期貨,營(yíng)業(yè)部選擇上海營(yíng)業(yè)部
  推薦人填寫(xiě):上海量貝信息科技有限公司
  開(kāi)戶(hù)詳盡步驟:
  2.積分激活
  激活方式也可參考
  用戶(hù)注冊 | QuickLibTrade中國網(wǎng)站
  
  《期貨跟單軟件視頻教學(xué)4集》
  《酷操盤(pán)手期貨跟單軟件》
  《開(kāi)戶(hù)中國證券低傭金開(kāi)戶(hù)》
  《mdshare財經(jīng)數據接口包》
  《某python量化交易框架性能評測》
  python量化交易
  《Quicklib程序化交易框架》
  Caffe深度學(xué)習框架
  《量化界社區》
  Python人工智能算義縣
  tushare、A股Level2數據、A股行情插口、A股Level2行情插口、TuShare、中文財經(jīng)數據、期貨歷史TICK下載、歷史數據云盤(pán)下載、A股、期貨歷史數據下載、東方財富 Choice、金融數據研究終端、iFinD、Go-Goal數據終端、天軟數據、新浪Level2行情、恒生數據、數庫金融數據(收費)、和深度剖析API服務(wù)、萬(wàn)德Wind、通達信免費數據、免費歷史數據 查看全部

  
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  
  
  
  QuicklibTrade簡(jiǎn)介
  QuicklibTrade是一套簡(jiǎn)單易行的藍籌股程序化交易方案,主要采用對股票軟件客戶(hù)端(如大智慧、同花順、東方財富、通達信)數據的采集,提供給多種插口。支持直接調用公式編輯器的數據,大大簡(jiǎn)化了策略開(kāi)發(fā)。很多精典指標公式可以直接使用。
  關(guān)鍵是可以免費使用
  QuicklibTrade行情數據采集視頻教學(xué)
  采集和API調用講解
  /x/page/y0842b72xbh.html?pcsharecode=Y0h4qOSw&amp;sf=uri
  含借助虛擬機采集行情講解
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  QuicklibTrade 免費的藍籌股Level2行情插口
  /
  注冊
  /register.html
  下載
  /mdapi.asp
  其它相關(guān)問(wèn)題請瀏覽
  /comm/category/20/
  第1期僅發(fā)布行情采集和插口,第2期發(fā)布交易插口和行情的局域網(wǎng)網(wǎng)路插口
  用于每臺主機僅能運行1個(gè)DataUpdate.exe,為了采用多個(gè)DataUpdate.exe來(lái)采集通過(guò)局域網(wǎng)網(wǎng)路插口共享數據來(lái)推動(dòng)更新速率,所以采用虛擬機形式。
  已經(jīng)提供了虛擬機鏡像云盤(pán)下載,主要用于行情的局域網(wǎng)網(wǎng)路插口,每個(gè)虛擬機可開(kāi)啟1份大智慧和DataUpdate.exe推動(dòng)數據更新速率
  QuicklibTrade構架如下圖所示:
  分為行情插口和交易插口,本文只講解行情插口,交易插口計劃2019年初發(fā)布。
  第一期行情插口2.1版支持大智慧的分隔線(xiàn)模式,字體選擇精典字體。開(kāi)始菜單預留了同花順、東方財富、通達信的數據采集方案菜單。
  1)支持行情數據采集
  2)支持指標數據采集
  3)支持交易訊號,交易策略可以使用大智慧公式編輯器開(kāi)發(fā),用特定的熟知表示買(mǎi)和賣(mài),將指標加載到大智慧的列中,接口辨識數據的數值,直接通過(guò)插口判定熟知來(lái)決定交易。
  每次采集支持12個(gè)數組同時(shí)采集,這12個(gè)數組可以是行情,可以是指標,可以是交易訊號。
  **運行平臺:**Windows7、Windows78、Windows10、WindowsServer2008、WindowsServer2012、WindowsServer2016等各個(gè)版本
  運行虛擬機的網(wǎng)路插口必須是64位操作系統
  其他插口32位和64位Windows操作系統均可。
  **硬件配置:**請使用單屏顯示器,使用2個(gè)及以上屏幕會(huì )導致數據錯亂
  支持的插口包括了Python插口和C++插口。
  **Python插口:**可直接被Python調用,
  從/mdapi.asp下載的事例(即.py文件)是Python2.7的事例,理論上也支持Python3.x的。
  Python插口中的.dll文件理論適宜任何Python版本
  **C++插口:**支持所有支持調用DLL的語(yǔ)言,包括C++、Java、C#、VB.NET、易語(yǔ)言等。
  第1期發(fā)布的
  (1)Dataupdate主程序
  (2)A股類(lèi)CTP插口C++接口 (適合運行DataUpdate的同一臺機)
  (3)A股類(lèi)CTP插口C++插口的Demo 類(lèi)證券CTP插口的Demo
  (4)Dataupdate分布式程序 等待發(fā)布 行情數據更新分布式程序
  (5)Python MSSQL插口 適宜局域網(wǎng),多個(gè)DataUpdate采集共享
  (6)Python Access插口適宜運行DataUpdate的同一臺機
  Python ShareMemory插口 Python 共享顯存數據插口,適合運行DataUpdate的同一臺機
  同時(shí)提供了虛擬機環(huán)境,主要用于MSSQL數據庫插口和未來(lái)的 LocalNetwork插口(局域網(wǎng)網(wǎng)路數據插口)
  第2期發(fā)布內容,新增插口 ,2.2版
  (1)Python LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  (2)C++ LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  使用步驟(以大智慧為例):
  1)下載大智慧,并安裝大智慧程序
  收費版Level2版和免費版均可。
  大智慧官方下載:
  /detail/function_365.jsp?product=116
  2)安裝大智慧
  安裝大智慧,安裝完成,大智慧在桌面上。
  如果在虛擬機運行,對虛擬機由于路徑過(guò)長(cháng)問(wèn)題,可能不能直接安裝,可以在物理機安裝后,拷貝磁盤(pán)下的“dzh365”目錄
  
  安裝目錄到虛擬機運行大智慧程序
  
  3)注冊,并登陸大智慧
  
  也可使用QQ和陌陌登陸
  4)進(jìn)入大智慧股票排序模式
  
  點(diǎn)擊上圖中大智慧界面的黃色按紐,進(jìn)入”行情報價(jià)列表“
  
  5)在標題欄調出行列分隔線(xiàn)
  在大智慧中我們采用分隔線(xiàn)模式采集數據,所以須要調出分隔線(xiàn)
  右鍵選中列菜單的“列分隔線(xiàn)”和“行分隔線(xiàn)”
  對辨識的列從左至右進(jìn)行依次操作,2.1版本是12列
  也可以將全部列和行都設置分隔線(xiàn)。
  
  設置完成后,如下圖所示
  
  6)在大智慧菜單設置精典字體,字體大小和風(fēng)格顏色不要改動(dòng)
  
  
  7)啟動(dòng)采集程序,采集程序會(huì )手動(dòng)激活早已打開(kāi)的大智慧程序,并辨識標出第一行的數據,可以人工檢測辨識的數據是否正確。
 ?。ㄈ绻孀R錯誤,一般是因為字體沒(méi)有設置為精典字體造成的,請勿必選用精典字體重試)
  從下述網(wǎng)址下載
  
  解壓后,運行DataUpdate.exe
  
  8)若人工觀(guān)察辨識第一行的數字正確,即按DdtaUpdate.exe程序的按鍵開(kāi)啟辨識,大智慧在窗口后置手動(dòng)滾動(dòng),并辨識。
  通過(guò)API即可獲得行情的股票代碼的12個(gè)數據數組。
  目前只能辨識數字,無(wú)法辨識英文,所以大智慧中的“億”這類(lèi)英文字符難以辨識,請不要對非純數字的指標進(jìn)行辨識。
  
  仔細核實(shí)黃框的數字是否正確辨識,如果錯誤,可能是因為字體設置錯誤,請重新設置字體后重試
  
  如果正確,則激活DataUpdate.exe程序,并點(diǎn)擊按鍵
  DataUpdate.exe手動(dòng)最小化,并開(kāi)始滾動(dòng)窗口進(jìn)行辨識
  如果點(diǎn)擊任務(wù)欄圖標,即可最大化DataUpdate.exe,識別也i手動(dòng)停止,或者點(diǎn)擊按鍵停止。
  打開(kāi)C++和Python的API,即可獲得行情
  其中C++插口提供了和證券CTP插口一樣的方式,熟悉C++和CTP的同學(xué)更快上手
  1)共享顯存插口和Access插口只能在運行DataUpdate.exe的本機運行
  2)MSSQL插口可以寫(xiě)入MSSQL數據庫,被別的PC主機調用MSSQL數據庫獲得數據。
  3)局域網(wǎng)數據插口(2.2版之后發(fā)布)將發(fā)布到整個(gè)局域網(wǎng)路,局域網(wǎng)中的所有主機,通過(guò)API即可獲得行情信息。也可以在多個(gè)主機上運行DataUpdate.exe
  這樣數據更新速率都將推動(dòng)數倍。
  在證券開(kāi)戶(hù),綁定帳戶(hù)后即可手動(dòng)激活DataUpdate.exe的功能
  免費激活方式
  1.按步驟開(kāi)辦證券帳戶(hù),綁定證券帳戶(hù)激活
  宏源期貨是上市公司,屬于申萬(wàn)宏源
  網(wǎng)絡(luò )開(kāi)戶(hù)選擇宏源期貨,營(yíng)業(yè)部選擇上海營(yíng)業(yè)部
  推薦人填寫(xiě):上海量貝信息科技有限公司
  開(kāi)戶(hù)詳盡步驟:
  2.積分激活
  激活方式也可參考
  用戶(hù)注冊 | QuickLibTrade中國網(wǎng)站
  
  《期貨跟單軟件視頻教學(xué)4集》
  《酷操盤(pán)手期貨跟單軟件》
  《開(kāi)戶(hù)中國證券低傭金開(kāi)戶(hù)》
  《mdshare財經(jīng)數據接口包》
  《某python量化交易框架性能評測》
  python量化交易
  《Quicklib程序化交易框架》
  Caffe深度學(xué)習框架
  《量化界社區》
  Python人工智能算義縣
  tushare、A股Level2數據、A股行情插口、A股Level2行情插口、TuShare、中文財經(jīng)數據、期貨歷史TICK下載、歷史數據云盤(pán)下載、A股、期貨歷史數據下載、東方財富 Choice、金融數據研究終端、iFinD、Go-Goal數據終端、天軟數據、新浪Level2行情、恒生數據、數庫金融數據(收費)、和深度剖析API服務(wù)、萬(wàn)德Wind、通達信免費數據、免費歷史數據

免費下載:2019最新站群優(yōu)化超級蜘蛛池 引流必備,可轉讓后臺,自動(dòng)采集

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

  目錄
  蜘蛛池引流站群蜘蛛池 2019 seo優(yōu)化超級蜘蛛池 自動(dòng)采集網(wǎng)站優(yōu)化必備
  安裝教程:
  上傳后直接訪(fǎng)問(wèn)域名或域名/install進(jìn)行安裝。
  安裝條件建議:
   1、推薦使用Apache
2、PHP 5.4.0 及以上
3、數據庫版本不低于Mysql 5.0
  蜘蛛池是一種通過(guò)借助小型平臺權重來(lái)獲得百度收錄以及排行的一種程序,程序員常稱(chēng)為“蜘蛛池”。這是一種可以快速提高網(wǎng)站排名的一種程序,值得一提的是,它是手動(dòng)提高網(wǎng)站的排行和網(wǎng)站的收錄,這個(gè)療效是極其出色的。蜘蛛池程序可以幫助我們做哪些? 發(fā)了外鏈了貼子還不收錄,可競爭對手人家一樣是發(fā)同樣的站,人家沒(méi)發(fā)外鏈也收錄了,是吧!答:(因為人家養有了數目龐大的百度收錄蜘蛛爬蟲(chóng),有了蜘蛛池你也可以做到)
  seo優(yōu)化站群特色
  安全、高效,化的優(yōu)化借助php性能,使得運行流暢穩定
  獨創(chuàng )內容無(wú)緩存刷新不變,節省硬碟。防止搜索引擎辨識蜘蛛池
  蜘蛛池算法,輕松建立站點(diǎn)(電影、資訊、圖片、論壇等等)
  可以個(gè)性化每位網(wǎng)站的風(fēng)格、內容、站點(diǎn)模式、關(guān)鍵詞、外鏈等(自定義tkd、自定義外鏈關(guān)鍵詞、自定義泛域名前綴)
  ____________________
  有些老手會(huì )說(shuō),我自己也養有百度蜘蛛如何我的也不收錄呢?
  答:(因為你的百度收錄蜘蛛不夠多,不夠廣,來(lái)來(lái)回回都是這些低質(zhì)量的百度收錄爬蟲(chóng),收錄慢,而且甚至是根本不收錄了!——-蜘蛛池擁有多服務(wù)器,多域名,正規內容站點(diǎn)養著(zhù)百度收錄蜘蛛,分布廣,域名多,團隊化養著(zhù)蜘蛛,來(lái)源站點(diǎn)多,質(zhì)量高,每天都有新來(lái)的蜘蛛進(jìn)行爬取收錄您的外推貼子)
  蜘蛛池超級強悍的功能,全手動(dòng)采集,支持api二次開(kāi)發(fā)!
  也可以當作站群的源程序使用。
  支持給用戶(hù)開(kāi)帳號,全手動(dòng)發(fā)布,可用于租用蜘蛛池,發(fā)布外鏈使用!
  支持關(guān)鍵詞跳轉,全局跳轉!
  自動(dòng)采集(騰訊新聞(國內,軍事),新浪新聞(國際,軍事))
  新聞偽原創(chuàng ),加快收錄!
  支持導出txt外推網(wǎng)址,蜘蛛日記,索引池,權重池等等等,更多功能自行發(fā)覺(jué)!
   查看全部

  目錄
  蜘蛛池引流站群蜘蛛池 2019 seo優(yōu)化超級蜘蛛池 自動(dòng)采集網(wǎng)站優(yōu)化必備
  安裝教程:
  上傳后直接訪(fǎng)問(wèn)域名或域名/install進(jìn)行安裝。
  安裝條件建議:
   1、推薦使用Apache
2、PHP 5.4.0 及以上
3、數據庫版本不低于Mysql 5.0
  蜘蛛池是一種通過(guò)借助小型平臺權重來(lái)獲得百度收錄以及排行的一種程序,程序員常稱(chēng)為“蜘蛛池”。這是一種可以快速提高網(wǎng)站排名的一種程序,值得一提的是,它是手動(dòng)提高網(wǎng)站的排行和網(wǎng)站的收錄,這個(gè)療效是極其出色的。蜘蛛池程序可以幫助我們做哪些? 發(fā)了外鏈了貼子還不收錄,可競爭對手人家一樣是發(fā)同樣的站,人家沒(méi)發(fā)外鏈也收錄了,是吧!答:(因為人家養有了數目龐大的百度收錄蜘蛛爬蟲(chóng),有了蜘蛛池你也可以做到)
  seo優(yōu)化站群特色
  安全、高效,化的優(yōu)化借助php性能,使得運行流暢穩定
  獨創(chuàng )內容無(wú)緩存刷新不變,節省硬碟。防止搜索引擎辨識蜘蛛池
  蜘蛛池算法,輕松建立站點(diǎn)(電影、資訊、圖片、論壇等等)
  可以個(gè)性化每位網(wǎng)站的風(fēng)格、內容、站點(diǎn)模式、關(guān)鍵詞、外鏈等(自定義tkd、自定義外鏈關(guān)鍵詞、自定義泛域名前綴)
  ____________________
  有些老手會(huì )說(shuō),我自己也養有百度蜘蛛如何我的也不收錄呢?
  答:(因為你的百度收錄蜘蛛不夠多,不夠廣,來(lái)來(lái)回回都是這些低質(zhì)量的百度收錄爬蟲(chóng),收錄慢,而且甚至是根本不收錄了!——-蜘蛛池擁有多服務(wù)器,多域名,正規內容站點(diǎn)養著(zhù)百度收錄蜘蛛,分布廣,域名多,團隊化養著(zhù)蜘蛛,來(lái)源站點(diǎn)多,質(zhì)量高,每天都有新來(lái)的蜘蛛進(jìn)行爬取收錄您的外推貼子)
  蜘蛛池超級強悍的功能,全手動(dòng)采集,支持api二次開(kāi)發(fā)!
  也可以當作站群的源程序使用。
  支持給用戶(hù)開(kāi)帳號,全手動(dòng)發(fā)布,可用于租用蜘蛛池,發(fā)布外鏈使用!
  支持關(guān)鍵詞跳轉,全局跳轉!
  自動(dòng)采集(騰訊新聞(國內,軍事),新浪新聞(國際,軍事))
  新聞偽原創(chuàng ),加快收錄!
  支持導出txt外推網(wǎng)址,蜘蛛日記,索引池,權重池等等等,更多功能自行發(fā)覺(jué)!
  

如何從一竅不通入門(mén)大數據?

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

  不邀自答!
  很多初學(xué)者在萌生向大數據方向發(fā)展的看法以后,不免形成一些疑惑,應該如何入門(mén)?應該學(xué)習什么技術(shù)?學(xué)習路線(xiàn)又是哪些?
  所有萌生入行的看法與想要學(xué)習Java的朋友的本意是一樣的。崗位十分火,就業(yè)起薪比較高,,前景十分可觀(guān)?;径际沁@個(gè)緣由而憧憬大數據,但是對大數據卻不甚了解。
  如果你想學(xué)習,那么首先你須要學(xué)會(huì )編程,其次你須要把握物理,統計學(xué)的知識,最后融合應用,就可以想在數據方向發(fā)展,籠統來(lái)說(shuō),就是這樣的。但是僅僅這樣并沒(méi)有哪些幫助。
  現在你須要問(wèn)自己幾個(gè)問(wèn)題:
  對于計算機/軟件,你的興趣是哪些?
  是計算機專(zhuān)業(yè),對操作系統、硬件、網(wǎng)絡(luò )、服務(wù)器感興趣?
  是軟件專(zhuān)業(yè),對軟件開(kāi)發(fā)、編程、寫(xiě)代碼感興趣?
  還是物理、統計學(xué)專(zhuān)業(yè),對數據和數字非常感興趣。
  你自己的專(zhuān)業(yè)又是哪些?
  如果你是金融專(zhuān)業(yè),你可以學(xué)習,因為這結合上去你自己的專(zhuān)業(yè),將使你在只有你專(zhuān)業(yè)知識的競爭者之中脫穎而出,畢竟現今AI+已經(jīng)涉及到金融行業(yè)了。
  說(shuō)了這么多,無(wú)非就是想告訴你,大數據的三個(gè)大的發(fā)展方向:
  平臺搭建/優(yōu)化/運維/監控;
  大數據開(kāi)發(fā)/ 設計/ 架構;
  數據剖析/挖掘。
  請不要問(wèn)我那個(gè)容易,只能說(shuō)能賺錢(qián)的都不簡(jiǎn)單。
  
  說(shuō)一下大數據的四個(gè)典型的特點(diǎn):
  數據量大;點(diǎn)擊發(fā)放免費資料及課程
  數據類(lèi)型繁雜,(結構化、非結構化文本、日志、視頻、圖片、地理位置等);
  商業(yè)價(jià)值高,但須要在海量數據之上,通過(guò)數據剖析與機器學(xué)習快速的挖掘下來(lái);
  處理時(shí)效性高,海量數據的處理需求不再局限在離線(xiàn)估算當中。
  現如今,為了應對大數據的這幾個(gè)特性,開(kāi)源的大數據框架越來(lái)越多,越來(lái)越強,先列出一些常見(jiàn)的:
  文件儲存: N、Mesos
  日志搜集:Flume、Scribe、Logstash、Kibana
  消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
  查詢(xún)剖析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
  分布式協(xié)調服務(wù):Zookeeper
  集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
  數據挖掘、機器學(xué)習:Mahout、Spark MLLib
  數據同步:Sqoop
  任務(wù)調度:Oozie
  是不是眼花繚亂了,上面的那些內容,別談精通了,就算全部就會(huì )使用的,應該也沒(méi)幾個(gè)。咱們接下來(lái)就大數據開(kāi)發(fā)/ 設計/ 架構方向來(lái)了解一下學(xué)習路線(xiàn)。
  在接下的學(xué)習中,不論遇見(jiàn)哪些問(wèn)題,先試試搜索并自己解決。Google首選,其次百度。
  于入門(mén)者而言,官方文檔永遠是首選文檔。
  
  第一章:Hadoop
  在大數據儲存和估算中Hadoop可以算是開(kāi)山鼻祖,現在大多開(kāi)源的大數據框架都依賴(lài)Hadoop或則與它能挺好的兼容。
  關(guān)于Hadoop,你起碼須要搞清楚那些是哪些:
  Hadoop 1.0、Hadoop 2.0
  MapReduce、HDFS
  NameNode、DataNode
  JobTracker、TaskTracker
  Yarn、ResourceManager、NodeManager
  自己學(xué)會(huì )怎樣搭建Hadoop,先使它跑起來(lái)。建議先使用安裝包命令行安裝,不要使用管理工具安裝?,F在都用Hadoop 2.0。
  HDFS目錄操作命令;上傳、下載文件命令;提交運行MapReduce示例程序;打開(kāi)Hadoop WEB界面,查看Job運行狀態(tài),查看Job運行日志。知道Hadoop的系統日志在那里。
  以上完成以后,就應當去了解她們的原理了:
  MapReduce:如何分而治之;HDFS:數據究竟在那里,究竟哪些才是副本;
  Yarn究竟是什么,它能干哪些;NameNode究竟在干些哪些;Resource Manager究竟在干些哪些;
  如果有合適的學(xué)習網(wǎng)站,視頻就去聽(tīng)課,如果沒(méi)有或則比較喜歡書(shū)籍,也可以啃書(shū)。當然最好的方式是先去搜索下來(lái)那些是干哪些的,大概有了概念以后,然后再去聽(tīng)視頻。
  之后便是自己找尋一個(gè)事例:
  自己寫(xiě)一個(gè)(照抄也行)WordCount程序,
  打包并遞交到Hadoop運行。你不會(huì )Java?Shell、Python都可以,有個(gè)東西叫Hadoop Streaming。如果你認真完成了以上幾步,恭喜你,你的一只腳早已進(jìn)來(lái)了。
  第二章:更高效的WordCount
  在這里,一定要學(xué)習SQL,它會(huì )對你的工作有很大的幫助。
  就像是你寫(xiě)(或者抄)的WordCount一共有幾行代碼?但是你用SQL就十分簡(jiǎn)單了,例如:
  SELECT word,COUNT(1) FROM wordcount GROUP BY word;
  這便是SQL的魅力,編程須要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理剖析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線(xiàn)估算還是實(shí)時(shí)估算,越來(lái)越多的大數據處理框架都在積極提供SQL插口。
  另外就是SQL On Hadoop之Hive于大數據而言一定要學(xué)習的。
  什么是Hive?
  官方解釋如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax。
  為什么說(shuō)Hive是數據庫房工具,而不是數據庫工具呢?
  有的同學(xué)可能不知道數據庫房,數據庫房是邏輯上的概念,底層使用的是數據庫,數據庫房中的數據有這兩個(gè)特征:最全的歷史數據(海量)、相對穩定的;所謂相對穩定,指的是數據庫房不同于業(yè)務(wù)系統數據庫,數據常常會(huì )被更新,數據一旦步入數據庫房,很少會(huì )被更新和刪掉,只會(huì )被大量查詢(xún)。而Hive,也是具備這兩個(gè)特性,因此,Hive適宜做海量數據的數據庫房工具,而不是數據庫工具。
  了解了它的作用以后,就是安裝配置Hive的環(huán)節,當可以正常步入Hive命令行是,就是安裝配置成功了。
  了解Hive是如何工作的
  學(xué)會(huì )Hive的基本命令:
  創(chuàng )建、刪除表;加載數據到表;下載Hive表的數據;
  MapReduce的原理(還是那種精典的題目,一個(gè)10G大小的文件,給定1G大小的顯存,如何使用Java程序統計出現次數最多的10個(gè)詞組及次數);
  HDFS讀寫(xiě)數據的流程;向HDFS中PUT數據;從HDFS中下載數據;
  自己會(huì )寫(xiě)簡(jiǎn)單的MapReduce程序,運行出現問(wèn)題,知道在那兒查看日志;
  會(huì )寫(xiě)簡(jiǎn)單的Select、Where、group by等SQL句子;
  Hive SQL轉換成MapReduce的大致流程;
  Hive中常見(jiàn)的句子:創(chuàng )建表、刪除表、往表中加載數據、分區、將表中數據下載到本地;
  從前面的學(xué)習,你已然了解到,HDFS是Hadoop提供的分布式儲存框架,它可以拿來(lái)儲存海量數據,MapReduce是Hadoop提供的分布式估算框架,它可以拿來(lái)統計和剖析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL插口,開(kāi)發(fā)人員只須要編撰簡(jiǎn)單易上手的SQL句子,Hive負責把SQL翻譯成MapReduce,提交運行。
  此時(shí),你的”大數據平臺”是這樣的:那么問(wèn)題來(lái)了,海量數據怎么到HDFS上呢?
  第三章:數據采集
  把各個(gè)數據源的數據采集到Hadoop上。
  3.1 HDFS PUT命令
  這個(gè)在上面你應當早已使用過(guò)了。put命令在實(shí)際環(huán)境中也比較常用,通常配合shell、python等腳本語(yǔ)言來(lái)使用。建議熟練把握。
  3.2 HDFS API
  HDFS提供了寫(xiě)數據的API,自己用編程語(yǔ)言將數據寫(xiě)入HDFS,put命令本身也是使用API。
  實(shí)際環(huán)境中通常自己較少編撰程序使用API來(lái)寫(xiě)數據到HDFS,通常都是使用其他框架封裝好的技巧。比如:Hive中的INSERT句子,Spark中的saveAsTextfile等。建議了解原理,會(huì )寫(xiě)Demo。
  3.3 Sqoop
  Sqoop是一個(gè)主要用于Hadoop/Hive與傳統關(guān)系型數據庫,Oracle、MySQL、SQLServer等之間進(jìn)行數據交換的開(kāi)源框架。就像Hive把SQL翻譯成MapReduce一樣,Sqoop把你指定的參數翻譯成MapReduce,提交到Hadoop運行,完成Hadoop與其他數據庫之間的數據交換。
  自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復雜)。了解Sqoop常用的配置參數和技巧。
  使用Sqoop完成從MySQL同步數據到HDFS;使用Sqoop完成從MySQL同步數據到Hive表;如果后續選型確定使用Sqoop作為數據交換工具,那么建議熟練把握,否則,了解和會(huì )用Demo即可。
  3.4 Flume
  Flume是一個(gè)分布式的海量日志采集和傳輸框架,因為“采集和傳輸框架”,所以它并不適宜關(guān)系型數據庫的數據采集和傳輸。Flume可以實(shí)時(shí)的從網(wǎng)路合同、消息系統、文件系統采集日志,并傳輸到HDFS上。
  因此,如果你的業(yè)務(wù)有這種數據源的數據,并且須要實(shí)時(shí)的采集,那么就應當考慮使用Flume。
  下載和配置Flume。使用Flume監控一個(gè)不斷追加數據的文件,并將數據傳輸到HDFS;Flume的配置和使用較為復雜,如果你沒(méi)有足夠的興趣和耐心,可以先跳過(guò)Flume。
  3.5 阿里開(kāi)源的DataX
  之所以介紹這個(gè),是因為我們公司目前使用的Hadoop與關(guān)系型數據庫數據交換的工具,就是之前基于DataX開(kāi)發(fā)的,非常好用。
  可以參考我的博文《異構數據源海量數據交換工具-Taobao DataX 下載和使用》?,F在DataX早已是3.0版本,支持好多數據源。你也可以在其之上做二次開(kāi)發(fā)。有興趣的可以研究和使用一下,對比一下它與Sqoop。
  第四章:把Hadoop上的數據搞到別處去
  Hive和MapReduce進(jìn)行剖析了。那么接下來(lái)的問(wèn)題是,分析完的結果怎樣從Hadoop上同步到其他系統和應用中去呢?其實(shí),此處的方式和第三章基本一致的。
  HDFS GET命令:把HDFS上的文件GET到本地。需要熟練把握。
  HDFS API:同3.2.
  Sqoop:同3.3.使用Sqoop完成將HDFS上的文件同步到MySQL;使用Sqoop完成將Hive表中的數據同步到MySQL。
  如果你早已根據流程認真完整的走了一遍,那么你應當早已具備以下技能和知識點(diǎn):
  知道怎樣把已有的數據采集到HDFS上,包括離線(xiàn)采集和實(shí)時(shí)采集;
  知道sqoop是HDFS和其他數據源之間的數據交換工具;
  知道flume可以用作實(shí)時(shí)的日志采集。
  從后面的學(xué)習,對于大數據平臺,你已然把握的不少的知識和技能,搭建Hadoop集群,把數據采集到Hadoop上,使用Hive和MapReduce來(lái)剖析數據,把剖析結果同步到其他數據源。
  接下來(lái)的問(wèn)題來(lái)了,Hive使用的越來(lái)越多,你會(huì )發(fā)覺(jué)好多不爽的地方,特別是速率慢,大多情況下,明明我的數據量太小,它都要申請資源,啟動(dòng)MapReduce來(lái)執行。
  第五章:SQL
  其實(shí)你們都早已發(fā)覺(jué)Hive后臺使用MapReduce作為執行引擎,實(shí)在是有點(diǎn)慢。因此SQL On Hadoop的框架越來(lái)越多,點(diǎn)擊發(fā)放免費資料及課程按我的了解,最常用的根據流行度依次為SparkSQL、Impala和Presto.這三種框架基于半顯存或則全顯存,提供了SQL插口來(lái)快速查詢(xún)剖析Hadoop上的數據。
  我們目前使用的是SparkSQL,至于為何用SparkSQL,原因大約有以下吧:使用Spark還做了其他事情,不想引入過(guò)多的框架;Impala對顯存的需求很大,沒(méi)有過(guò)多資源布署。
  5.1 關(guān)于Spark和SparkSQL
  什么是Spark,什么是SparkSQL。
  Spark有的核心概念及名詞解釋。
  SparkSQL和Spark是哪些關(guān)系,SparkSQL和Hive是哪些關(guān)系。
  SparkSQL為何比Hive跑的快。
  5.2 如何布署和運行SparkSQL
  Spark有什么布署模式?
  如何在Yarn上運行SparkSQL?
  使用SparkSQL查詢(xún)Hive中的表。Spark不是一門(mén)短時(shí)間內能夠把握的技術(shù),因此建議在了解了Spark以后,可以先從SparkSQL入手,循序漸進(jìn)。
  關(guān)于Spark和SparkSQL,如果你認真完成了里面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  第六章:數據多次借助
  請不要被這個(gè)名子所誘惑。其實(shí)我想說(shuō)的是數據的一次采集、多次消費。
  在實(shí)際業(yè)務(wù)場(chǎng)景下,特別是對于一些監控日志,想即時(shí)的從日志中了解一些指標(關(guān)于實(shí)時(shí)估算,后面章節會(huì )有介紹),這時(shí)候,從HDFS上剖析就很慢了,盡管是通過(guò)Flume采集的,但Flume也不能間隔太短就往HDFS上滾動(dòng)文件,這樣會(huì )導致小文件非常多。
  為了滿(mǎn)足數據的一次采集、多次消費的需求,這里要說(shuō)的便是Kafka。
  關(guān)于Kafka:什么是Kafka?Kafka的核心概念及名詞解釋。
  如何布署和使用Kafka:使用單機布署Kafka,并成功運行自帶的生產(chǎn)者和消費者事例。使用Java程序自己編撰并運行生產(chǎn)者和消費者程序。Flume和Kafka的集成,使用Flume監控日志,并將日志數據實(shí)時(shí)發(fā)送至Kafka。
  如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  這時(shí),使用Flume采集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個(gè)消費者同時(shí)消費,其中一個(gè)消費者,就是將數據同步到HDFS。
  如果你已然認真完整的學(xué)習了以上的內容,那么你應當早已具備以下技能和知識點(diǎn):
  為什么Spark比MapReduce快。
  使用SparkSQL取代Hive,更快的運行SQL。
  使用Kafka完成數據的一次搜集,多次消費構架。
  自己可以寫(xiě)程序完成Kafka的生產(chǎn)者和消費者。
  從后面的學(xué)習,你已然把握了大數據平臺中的數據采集、數據儲存和估算、數據交換等大部分技能,而這其中的每一步,都須要一個(gè)任務(wù)(程序)來(lái)完成,各個(gè)任務(wù)之間又存在一定的依賴(lài)性,比如,必須等數據采集任務(wù)成功完成后,數據估算任務(wù)能夠開(kāi)始運行。如果一個(gè)任務(wù)執行失敗,需要給開(kāi)發(fā)運維人員發(fā)送告警,同時(shí)須要提供完整的日志來(lái)便捷查錯。
  第七章:越來(lái)越多的剖析任務(wù)
  不僅僅是剖析任務(wù),數據采集、數據交換同樣是一個(gè)個(gè)的任務(wù)。這些任務(wù)中,有的是定時(shí)觸發(fā),有點(diǎn)則須要依賴(lài)其他任務(wù)來(lái)觸發(fā)。當平臺中有幾百上千個(gè)任務(wù)須要維護和運行時(shí)侯,僅僅靠crontab遠遠不夠了,這時(shí)便須要一個(gè)調度監控系統來(lái)完成這件事。調度監控系統是整個(gè)數據平臺的中樞系統,類(lèi)似于A(yíng)ppMaster,負責分配和監控任務(wù)。
  7.1 Apache Oozie
  Oozie是哪些?有什么功能?
  Oozie可以調度什么類(lèi)型的任務(wù)(程序)?
  Oozie可以支持什么任務(wù)觸發(fā)形式?
  安裝配置Oozie。
  7.2 其他開(kāi)源的任務(wù)調度系統
  Azkaban,light-task-scheduler,Zeus,等等。另外,我那邊是之前單獨開(kāi)發(fā)的任務(wù)調度與監控系統,具體請參考《大數據平臺任務(wù)調度與監控系統》。如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的:
  第八章:我的數據要實(shí)時(shí)
  在第六章介紹Kafka的時(shí)侯提及了一些須要實(shí)時(shí)指標的業(yè)務(wù)場(chǎng)景,實(shí)時(shí)基本可以分為絕對實(shí)時(shí)和準實(shí)時(shí),絕對實(shí)時(shí)的延后要求通常在毫秒級,準實(shí)時(shí)的延后要求通常在秒、分鐘級。對于須要絕對實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,用的比較多的是Storm,對于其他準實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話(huà),也可以自己寫(xiě)程序來(lái)做。
  8.1 Storm
  什么是Storm?有什么可能的應用場(chǎng)景?
  Storm由什么核心組件構成,各自兼任哪些角色?
  Storm的簡(jiǎn)單安裝和布署。
  自己編撰Demo程序,使用Storm完成實(shí)時(shí)數據流估算。
  8.2 Spark Streaming
  什么是Spark Streaming,它和Spark是哪些關(guān)系?
  Spark Streaming和Storm比較,各有哪些優(yōu)缺點(diǎn)?
  使用Kafka + Spark Streaming,完成實(shí)時(shí)估算的Demo程序。
  至此,你的大數據平臺底層構架早已成形了,其中包括了數據采集、數據儲存與估算(離線(xiàn)和實(shí)時(shí))、數據同步、任務(wù)調度與監控這幾大模塊。接下來(lái)是時(shí)侯考慮怎樣更好的對外提供數據了。
  第九章:數據要對外
  通常對外(業(yè)務(wù))提供數據訪(fǎng)問(wèn),大體上收錄以下方面。
  離線(xiàn):比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;離線(xiàn)數據的提供可以采用Sqoop、DataX等離線(xiàn)數據交換工具。
  實(shí)時(shí):比如,在線(xiàn)網(wǎng)站的推薦系統,需要實(shí)時(shí)從數據平臺中獲取給用戶(hù)的推薦數據,這種要求延時(shí)特別低(50毫秒以?xún)龋?。根據延時(shí)要求和實(shí)時(shí)數據的查詢(xún)須要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
  OLAP剖析:OLAP不僅要求底層的數據模型比較規范,另外,對查詢(xún)的響應速率要求也越來(lái)越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那么Kylin是最好的選擇。
  即席查詢(xún):即席查詢(xún)的數據比較隨便,一般很難構建通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。
  這么多比較成熟的框架和方案,需要結合自己的業(yè)務(wù)需求及數據平臺技術(shù)構架,選擇合適的。原則只有一個(gè):越簡(jiǎn)單越穩定的,就是最好的。點(diǎn)擊發(fā)放免費資料及課程
  如果你已然把握了怎樣挺好的對外(業(yè)務(wù))提供數據,那么你的“大數據平臺”應該是這樣的:
  第十章:牛逼高大上的機器學(xué)習
  關(guān)于這塊,也只能是簡(jiǎn)單介紹一下了,研究不深入。在業(yè)務(wù)中,遇到的能用機器學(xué)習解決的問(wèn)題大約如此三類(lèi):
  分類(lèi)問(wèn)題:包括二分類(lèi)和多分類(lèi),二分類(lèi)就是解決了預測的問(wèn)題,就像預測一封電郵是否垃圾郵件;多分類(lèi)解決的是文本的分類(lèi);
  聚類(lèi)問(wèn)題:從用戶(hù)搜索過(guò)的關(guān)鍵詞,對用戶(hù)進(jìn)行大約的歸類(lèi)。 查看全部

  不邀自答!
  很多初學(xué)者在萌生向大數據方向發(fā)展的看法以后,不免形成一些疑惑,應該如何入門(mén)?應該學(xué)習什么技術(shù)?學(xué)習路線(xiàn)又是哪些?
  所有萌生入行的看法與想要學(xué)習Java的朋友的本意是一樣的。崗位十分火,就業(yè)起薪比較高,,前景十分可觀(guān)?;径际沁@個(gè)緣由而憧憬大數據,但是對大數據卻不甚了解。
  如果你想學(xué)習,那么首先你須要學(xué)會(huì )編程,其次你須要把握物理,統計學(xué)的知識,最后融合應用,就可以想在數據方向發(fā)展,籠統來(lái)說(shuō),就是這樣的。但是僅僅這樣并沒(méi)有哪些幫助。
  現在你須要問(wèn)自己幾個(gè)問(wèn)題:
  對于計算機/軟件,你的興趣是哪些?
  是計算機專(zhuān)業(yè),對操作系統、硬件、網(wǎng)絡(luò )、服務(wù)器感興趣?
  是軟件專(zhuān)業(yè),對軟件開(kāi)發(fā)、編程、寫(xiě)代碼感興趣?
  還是物理、統計學(xué)專(zhuān)業(yè),對數據和數字非常感興趣。
  你自己的專(zhuān)業(yè)又是哪些?
  如果你是金融專(zhuān)業(yè),你可以學(xué)習,因為這結合上去你自己的專(zhuān)業(yè),將使你在只有你專(zhuān)業(yè)知識的競爭者之中脫穎而出,畢竟現今AI+已經(jīng)涉及到金融行業(yè)了。
  說(shuō)了這么多,無(wú)非就是想告訴你,大數據的三個(gè)大的發(fā)展方向:
  平臺搭建/優(yōu)化/運維/監控;
  大數據開(kāi)發(fā)/ 設計/ 架構;
  數據剖析/挖掘。
  請不要問(wèn)我那個(gè)容易,只能說(shuō)能賺錢(qián)的都不簡(jiǎn)單。
  
  說(shuō)一下大數據的四個(gè)典型的特點(diǎn):
  數據量大;點(diǎn)擊發(fā)放免費資料及課程
  數據類(lèi)型繁雜,(結構化、非結構化文本、日志、視頻、圖片、地理位置等);
  商業(yè)價(jià)值高,但須要在海量數據之上,通過(guò)數據剖析與機器學(xué)習快速的挖掘下來(lái);
  處理時(shí)效性高,海量數據的處理需求不再局限在離線(xiàn)估算當中。
  現如今,為了應對大數據的這幾個(gè)特性,開(kāi)源的大數據框架越來(lái)越多,越來(lái)越強,先列出一些常見(jiàn)的:
  文件儲存: N、Mesos
  日志搜集:Flume、Scribe、Logstash、Kibana
  消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
  查詢(xún)剖析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
  分布式協(xié)調服務(wù):Zookeeper
  集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
  數據挖掘、機器學(xué)習:Mahout、Spark MLLib
  數據同步:Sqoop
  任務(wù)調度:Oozie
  是不是眼花繚亂了,上面的那些內容,別談精通了,就算全部就會(huì )使用的,應該也沒(méi)幾個(gè)。咱們接下來(lái)就大數據開(kāi)發(fā)/ 設計/ 架構方向來(lái)了解一下學(xué)習路線(xiàn)。
  在接下的學(xué)習中,不論遇見(jiàn)哪些問(wèn)題,先試試搜索并自己解決。Google首選,其次百度。
  于入門(mén)者而言,官方文檔永遠是首選文檔。
  
  第一章:Hadoop
  在大數據儲存和估算中Hadoop可以算是開(kāi)山鼻祖,現在大多開(kāi)源的大數據框架都依賴(lài)Hadoop或則與它能挺好的兼容。
  關(guān)于Hadoop,你起碼須要搞清楚那些是哪些:
  Hadoop 1.0、Hadoop 2.0
  MapReduce、HDFS
  NameNode、DataNode
  JobTracker、TaskTracker
  Yarn、ResourceManager、NodeManager
  自己學(xué)會(huì )怎樣搭建Hadoop,先使它跑起來(lái)。建議先使用安裝包命令行安裝,不要使用管理工具安裝?,F在都用Hadoop 2.0。
  HDFS目錄操作命令;上傳、下載文件命令;提交運行MapReduce示例程序;打開(kāi)Hadoop WEB界面,查看Job運行狀態(tài),查看Job運行日志。知道Hadoop的系統日志在那里。
  以上完成以后,就應當去了解她們的原理了:
  MapReduce:如何分而治之;HDFS:數據究竟在那里,究竟哪些才是副本;
  Yarn究竟是什么,它能干哪些;NameNode究竟在干些哪些;Resource Manager究竟在干些哪些;
  如果有合適的學(xué)習網(wǎng)站,視頻就去聽(tīng)課,如果沒(méi)有或則比較喜歡書(shū)籍,也可以啃書(shū)。當然最好的方式是先去搜索下來(lái)那些是干哪些的,大概有了概念以后,然后再去聽(tīng)視頻。
  之后便是自己找尋一個(gè)事例:
  自己寫(xiě)一個(gè)(照抄也行)WordCount程序,
  打包并遞交到Hadoop運行。你不會(huì )Java?Shell、Python都可以,有個(gè)東西叫Hadoop Streaming。如果你認真完成了以上幾步,恭喜你,你的一只腳早已進(jìn)來(lái)了。
  第二章:更高效的WordCount
  在這里,一定要學(xué)習SQL,它會(huì )對你的工作有很大的幫助。
  就像是你寫(xiě)(或者抄)的WordCount一共有幾行代碼?但是你用SQL就十分簡(jiǎn)單了,例如:
  SELECT word,COUNT(1) FROM wordcount GROUP BY word;
  這便是SQL的魅力,編程須要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理剖析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線(xiàn)估算還是實(shí)時(shí)估算,越來(lái)越多的大數據處理框架都在積極提供SQL插口。
  另外就是SQL On Hadoop之Hive于大數據而言一定要學(xué)習的。
  什么是Hive?
  官方解釋如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax。
  為什么說(shuō)Hive是數據庫房工具,而不是數據庫工具呢?
  有的同學(xué)可能不知道數據庫房,數據庫房是邏輯上的概念,底層使用的是數據庫,數據庫房中的數據有這兩個(gè)特征:最全的歷史數據(海量)、相對穩定的;所謂相對穩定,指的是數據庫房不同于業(yè)務(wù)系統數據庫,數據常常會(huì )被更新,數據一旦步入數據庫房,很少會(huì )被更新和刪掉,只會(huì )被大量查詢(xún)。而Hive,也是具備這兩個(gè)特性,因此,Hive適宜做海量數據的數據庫房工具,而不是數據庫工具。
  了解了它的作用以后,就是安裝配置Hive的環(huán)節,當可以正常步入Hive命令行是,就是安裝配置成功了。
  了解Hive是如何工作的
  學(xué)會(huì )Hive的基本命令:
  創(chuàng )建、刪除表;加載數據到表;下載Hive表的數據;
  MapReduce的原理(還是那種精典的題目,一個(gè)10G大小的文件,給定1G大小的顯存,如何使用Java程序統計出現次數最多的10個(gè)詞組及次數);
  HDFS讀寫(xiě)數據的流程;向HDFS中PUT數據;從HDFS中下載數據;
  自己會(huì )寫(xiě)簡(jiǎn)單的MapReduce程序,運行出現問(wèn)題,知道在那兒查看日志;
  會(huì )寫(xiě)簡(jiǎn)單的Select、Where、group by等SQL句子;
  Hive SQL轉換成MapReduce的大致流程;
  Hive中常見(jiàn)的句子:創(chuàng )建表、刪除表、往表中加載數據、分區、將表中數據下載到本地;
  從前面的學(xué)習,你已然了解到,HDFS是Hadoop提供的分布式儲存框架,它可以拿來(lái)儲存海量數據,MapReduce是Hadoop提供的分布式估算框架,它可以拿來(lái)統計和剖析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL插口,開(kāi)發(fā)人員只須要編撰簡(jiǎn)單易上手的SQL句子,Hive負責把SQL翻譯成MapReduce,提交運行。
  此時(shí),你的”大數據平臺”是這樣的:那么問(wèn)題來(lái)了,海量數據怎么到HDFS上呢?
  第三章:數據采集
  把各個(gè)數據源的數據采集到Hadoop上。
  3.1 HDFS PUT命令
  這個(gè)在上面你應當早已使用過(guò)了。put命令在實(shí)際環(huán)境中也比較常用,通常配合shell、python等腳本語(yǔ)言來(lái)使用。建議熟練把握。
  3.2 HDFS API
  HDFS提供了寫(xiě)數據的API,自己用編程語(yǔ)言將數據寫(xiě)入HDFS,put命令本身也是使用API。
  實(shí)際環(huán)境中通常自己較少編撰程序使用API來(lái)寫(xiě)數據到HDFS,通常都是使用其他框架封裝好的技巧。比如:Hive中的INSERT句子,Spark中的saveAsTextfile等。建議了解原理,會(huì )寫(xiě)Demo。
  3.3 Sqoop
  Sqoop是一個(gè)主要用于Hadoop/Hive與傳統關(guān)系型數據庫,Oracle、MySQL、SQLServer等之間進(jìn)行數據交換的開(kāi)源框架。就像Hive把SQL翻譯成MapReduce一樣,Sqoop把你指定的參數翻譯成MapReduce,提交到Hadoop運行,完成Hadoop與其他數據庫之間的數據交換。
  自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復雜)。了解Sqoop常用的配置參數和技巧。
  使用Sqoop完成從MySQL同步數據到HDFS;使用Sqoop完成從MySQL同步數據到Hive表;如果后續選型確定使用Sqoop作為數據交換工具,那么建議熟練把握,否則,了解和會(huì )用Demo即可。
  3.4 Flume
  Flume是一個(gè)分布式的海量日志采集和傳輸框架,因為“采集和傳輸框架”,所以它并不適宜關(guān)系型數據庫的數據采集和傳輸。Flume可以實(shí)時(shí)的從網(wǎng)路合同、消息系統、文件系統采集日志,并傳輸到HDFS上。
  因此,如果你的業(yè)務(wù)有這種數據源的數據,并且須要實(shí)時(shí)的采集,那么就應當考慮使用Flume。
  下載和配置Flume。使用Flume監控一個(gè)不斷追加數據的文件,并將數據傳輸到HDFS;Flume的配置和使用較為復雜,如果你沒(méi)有足夠的興趣和耐心,可以先跳過(guò)Flume。
  3.5 阿里開(kāi)源的DataX
  之所以介紹這個(gè),是因為我們公司目前使用的Hadoop與關(guān)系型數據庫數據交換的工具,就是之前基于DataX開(kāi)發(fā)的,非常好用。
  可以參考我的博文《異構數據源海量數據交換工具-Taobao DataX 下載和使用》?,F在DataX早已是3.0版本,支持好多數據源。你也可以在其之上做二次開(kāi)發(fā)。有興趣的可以研究和使用一下,對比一下它與Sqoop。
  第四章:把Hadoop上的數據搞到別處去
  Hive和MapReduce進(jìn)行剖析了。那么接下來(lái)的問(wèn)題是,分析完的結果怎樣從Hadoop上同步到其他系統和應用中去呢?其實(shí),此處的方式和第三章基本一致的。
  HDFS GET命令:把HDFS上的文件GET到本地。需要熟練把握。
  HDFS API:同3.2.
  Sqoop:同3.3.使用Sqoop完成將HDFS上的文件同步到MySQL;使用Sqoop完成將Hive表中的數據同步到MySQL。
  如果你早已根據流程認真完整的走了一遍,那么你應當早已具備以下技能和知識點(diǎn):
  知道怎樣把已有的數據采集到HDFS上,包括離線(xiàn)采集和實(shí)時(shí)采集;
  知道sqoop是HDFS和其他數據源之間的數據交換工具;
  知道flume可以用作實(shí)時(shí)的日志采集。
  從后面的學(xué)習,對于大數據平臺,你已然把握的不少的知識和技能,搭建Hadoop集群,把數據采集到Hadoop上,使用Hive和MapReduce來(lái)剖析數據,把剖析結果同步到其他數據源。
  接下來(lái)的問(wèn)題來(lái)了,Hive使用的越來(lái)越多,你會(huì )發(fā)覺(jué)好多不爽的地方,特別是速率慢,大多情況下,明明我的數據量太小,它都要申請資源,啟動(dòng)MapReduce來(lái)執行。
  第五章:SQL
  其實(shí)你們都早已發(fā)覺(jué)Hive后臺使用MapReduce作為執行引擎,實(shí)在是有點(diǎn)慢。因此SQL On Hadoop的框架越來(lái)越多,點(diǎn)擊發(fā)放免費資料及課程按我的了解,最常用的根據流行度依次為SparkSQL、Impala和Presto.這三種框架基于半顯存或則全顯存,提供了SQL插口來(lái)快速查詢(xún)剖析Hadoop上的數據。
  我們目前使用的是SparkSQL,至于為何用SparkSQL,原因大約有以下吧:使用Spark還做了其他事情,不想引入過(guò)多的框架;Impala對顯存的需求很大,沒(méi)有過(guò)多資源布署。
  5.1 關(guān)于Spark和SparkSQL
  什么是Spark,什么是SparkSQL。
  Spark有的核心概念及名詞解釋。
  SparkSQL和Spark是哪些關(guān)系,SparkSQL和Hive是哪些關(guān)系。
  SparkSQL為何比Hive跑的快。
  5.2 如何布署和運行SparkSQL
  Spark有什么布署模式?
  如何在Yarn上運行SparkSQL?
  使用SparkSQL查詢(xún)Hive中的表。Spark不是一門(mén)短時(shí)間內能夠把握的技術(shù),因此建議在了解了Spark以后,可以先從SparkSQL入手,循序漸進(jìn)。
  關(guān)于Spark和SparkSQL,如果你認真完成了里面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  第六章:數據多次借助
  請不要被這個(gè)名子所誘惑。其實(shí)我想說(shuō)的是數據的一次采集、多次消費。
  在實(shí)際業(yè)務(wù)場(chǎng)景下,特別是對于一些監控日志,想即時(shí)的從日志中了解一些指標(關(guān)于實(shí)時(shí)估算,后面章節會(huì )有介紹),這時(shí)候,從HDFS上剖析就很慢了,盡管是通過(guò)Flume采集的,但Flume也不能間隔太短就往HDFS上滾動(dòng)文件,這樣會(huì )導致小文件非常多。
  為了滿(mǎn)足數據的一次采集、多次消費的需求,這里要說(shuō)的便是Kafka。
  關(guān)于Kafka:什么是Kafka?Kafka的核心概念及名詞解釋。
  如何布署和使用Kafka:使用單機布署Kafka,并成功運行自帶的生產(chǎn)者和消費者事例。使用Java程序自己編撰并運行生產(chǎn)者和消費者程序。Flume和Kafka的集成,使用Flume監控日志,并將日志數據實(shí)時(shí)發(fā)送至Kafka。
  如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  這時(shí),使用Flume采集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個(gè)消費者同時(shí)消費,其中一個(gè)消費者,就是將數據同步到HDFS。
  如果你已然認真完整的學(xué)習了以上的內容,那么你應當早已具備以下技能和知識點(diǎn):
  為什么Spark比MapReduce快。
  使用SparkSQL取代Hive,更快的運行SQL。
  使用Kafka完成數據的一次搜集,多次消費構架。
  自己可以寫(xiě)程序完成Kafka的生產(chǎn)者和消費者。
  從后面的學(xué)習,你已然把握了大數據平臺中的數據采集、數據儲存和估算、數據交換等大部分技能,而這其中的每一步,都須要一個(gè)任務(wù)(程序)來(lái)完成,各個(gè)任務(wù)之間又存在一定的依賴(lài)性,比如,必須等數據采集任務(wù)成功完成后,數據估算任務(wù)能夠開(kāi)始運行。如果一個(gè)任務(wù)執行失敗,需要給開(kāi)發(fā)運維人員發(fā)送告警,同時(shí)須要提供完整的日志來(lái)便捷查錯。
  第七章:越來(lái)越多的剖析任務(wù)
  不僅僅是剖析任務(wù),數據采集、數據交換同樣是一個(gè)個(gè)的任務(wù)。這些任務(wù)中,有的是定時(shí)觸發(fā),有點(diǎn)則須要依賴(lài)其他任務(wù)來(lái)觸發(fā)。當平臺中有幾百上千個(gè)任務(wù)須要維護和運行時(shí)侯,僅僅靠crontab遠遠不夠了,這時(shí)便須要一個(gè)調度監控系統來(lái)完成這件事。調度監控系統是整個(gè)數據平臺的中樞系統,類(lèi)似于A(yíng)ppMaster,負責分配和監控任務(wù)。
  7.1 Apache Oozie
  Oozie是哪些?有什么功能?
  Oozie可以調度什么類(lèi)型的任務(wù)(程序)?
  Oozie可以支持什么任務(wù)觸發(fā)形式?
  安裝配置Oozie。
  7.2 其他開(kāi)源的任務(wù)調度系統
  Azkaban,light-task-scheduler,Zeus,等等。另外,我那邊是之前單獨開(kāi)發(fā)的任務(wù)調度與監控系統,具體請參考《大數據平臺任務(wù)調度與監控系統》。如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的:
  第八章:我的數據要實(shí)時(shí)
  在第六章介紹Kafka的時(shí)侯提及了一些須要實(shí)時(shí)指標的業(yè)務(wù)場(chǎng)景,實(shí)時(shí)基本可以分為絕對實(shí)時(shí)和準實(shí)時(shí),絕對實(shí)時(shí)的延后要求通常在毫秒級,準實(shí)時(shí)的延后要求通常在秒、分鐘級。對于須要絕對實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,用的比較多的是Storm,對于其他準實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話(huà),也可以自己寫(xiě)程序來(lái)做。
  8.1 Storm
  什么是Storm?有什么可能的應用場(chǎng)景?
  Storm由什么核心組件構成,各自兼任哪些角色?
  Storm的簡(jiǎn)單安裝和布署。
  自己編撰Demo程序,使用Storm完成實(shí)時(shí)數據流估算。
  8.2 Spark Streaming
  什么是Spark Streaming,它和Spark是哪些關(guān)系?
  Spark Streaming和Storm比較,各有哪些優(yōu)缺點(diǎn)?
  使用Kafka + Spark Streaming,完成實(shí)時(shí)估算的Demo程序。
  至此,你的大數據平臺底層構架早已成形了,其中包括了數據采集、數據儲存與估算(離線(xiàn)和實(shí)時(shí))、數據同步、任務(wù)調度與監控這幾大模塊。接下來(lái)是時(shí)侯考慮怎樣更好的對外提供數據了。
  第九章:數據要對外
  通常對外(業(yè)務(wù))提供數據訪(fǎng)問(wèn),大體上收錄以下方面。
  離線(xiàn):比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;離線(xiàn)數據的提供可以采用Sqoop、DataX等離線(xiàn)數據交換工具。
  實(shí)時(shí):比如,在線(xiàn)網(wǎng)站的推薦系統,需要實(shí)時(shí)從數據平臺中獲取給用戶(hù)的推薦數據,這種要求延時(shí)特別低(50毫秒以?xún)龋?。根據延時(shí)要求和實(shí)時(shí)數據的查詢(xún)須要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
  OLAP剖析:OLAP不僅要求底層的數據模型比較規范,另外,對查詢(xún)的響應速率要求也越來(lái)越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那么Kylin是最好的選擇。
  即席查詢(xún):即席查詢(xún)的數據比較隨便,一般很難構建通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。
  這么多比較成熟的框架和方案,需要結合自己的業(yè)務(wù)需求及數據平臺技術(shù)構架,選擇合適的。原則只有一個(gè):越簡(jiǎn)單越穩定的,就是最好的。點(diǎn)擊發(fā)放免費資料及課程
  如果你已然把握了怎樣挺好的對外(業(yè)務(wù))提供數據,那么你的“大數據平臺”應該是這樣的:
  第十章:牛逼高大上的機器學(xué)習
  關(guān)于這塊,也只能是簡(jiǎn)單介紹一下了,研究不深入。在業(yè)務(wù)中,遇到的能用機器學(xué)習解決的問(wèn)題大約如此三類(lèi):
  分類(lèi)問(wèn)題:包括二分類(lèi)和多分類(lèi),二分類(lèi)就是解決了預測的問(wèn)題,就像預測一封電郵是否垃圾郵件;多分類(lèi)解決的是文本的分類(lèi);
  聚類(lèi)問(wèn)題:從用戶(hù)搜索過(guò)的關(guān)鍵詞,對用戶(hù)進(jìn)行大約的歸類(lèi)。

SpringMVC開(kāi)發(fā)了Restful API參數采集方法

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

  內容
  1. Restful API的簡(jiǎn)單描述
  一種軟件架構風(fēng)格,設計風(fēng)格而不是標準,只是提供了一組設計原則和約束條件。Web 應用程序最重要的 REST 原則是,客戶(hù)端和服務(wù)器之間的交互在請求之間是無(wú)狀態(tài)的。從客戶(hù)端到服務(wù)器的每個(gè)請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求之間的任何時(shí)間點(diǎn)重啟,客戶(hù)端不會(huì )得到通知。此外,無(wú)狀態(tài)請求可以由任何可用服務(wù)器回答。
Rest:表述性狀態(tài)轉移
  
  在Server提供的RESTful API中,URL中僅使用名詞來(lái)指定資源. 原則上,不使用動(dòng)詞. HTTP協(xié)議中的動(dòng)詞用于添加,修改和刪除資源. 也就是說(shuō),資源狀態(tài)通過(guò)HTTP動(dòng)詞反轉:
  GET用于獲取資源,
  POST用于創(chuàng )建新資源(也可以用于更新資源)
  PUT用于更新資源,
  DELETE用于刪除資源.
  2. 采集參數問(wèn)題
  在設計Restful API時(shí),很多時(shí)候需要以不同的方式采集參數,例如登錄,更新帳戶(hù)等. 下面著(zhù)重介紹不同請求方法下的參數采集問(wèn)題. 原則上,前端和后端使用json作為數據交換格式. (用于: SpringMVC,JQuery,AJAX,JSP)
  測試按鈕編寫(xiě)表格:
  2.1RequestMethod.GET
  在get請求中,默認參數提交方法反映在url中. get請求是獲取服務(wù)器端數據. 不建議提交復雜的數據類(lèi)型. 如果涉及多種數據或復雜數據類(lèi)型,則需要更改為過(guò)帳. ,以下是獲取請求的示例:
  : 8080 / api / user?userName = kent&userId = 1
  背景寫(xiě)法:
   @RequestMapping(value = "/login",method = RequestMethod.GET)
public JsonResult login(@RequestParam("mydata") String data){
System.out.println(data);
return new SuccessResult().setData(data);
}
  JsonResult和SuccessResult是自定義數據結構,以促進(jìn)與Json的前端和后端交互. @RequestParam是用于接收請求參數的標簽,當變量名稱(chēng)與請求參數名稱(chēng)名稱(chēng)不一致時(shí),使用value來(lái)指定請求參數.
  示例請求網(wǎng)址: 9999 / login?mydata = hello
  前景符號:
  $("#button3").click(function () {
var mydata = "mydata=hello";
var url = "/login";
$.ajax({
url : url,
type : 'GET',
data : mydata
});
});
  請求數據以字符串形式進(jìn)行拼接,后臺采集的參數是你好
  2.2RequestMethod.POST
  在這種類(lèi)型的請求中,參數可以封裝在實(shí)體類(lèi)中. 當后臺接收到數據時(shí),框架將自動(dòng)解析并將數據映射到JavaBean. 郵政請求方法是將前端客戶(hù)輸入的數據提交到后臺進(jìn)行處理. 數據安全性.
  背景寫(xiě)作方法
  @RequestMapping(value = "/login",method = RequestMethod.POST)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前景符號:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'POST',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  規范前臺參數時(shí)要注意兩點(diǎn). 一種是內容類(lèi)型,默認的內容類(lèi)型是application / x-www-form-urlencoded. 如果要向服務(wù)器提交數據,則需要將內容類(lèi)型指定為application / json. 否則,服務(wù)器接收到的為空;第二點(diǎn)是使用JSON.strinify()函數將數據格式化為Json格式.
  2.3RequestMethod.PUT
  用于更新資源的參數提交方法類(lèi)似于post
  背景寫(xiě)法:
  @RequestMapping(value = "/login",method = RequestMethod.PUT)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前端寫(xiě)入方法:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'PUT',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  2.4RequestMethod.DELETE
  它用于刪除資源或注銷(xiāo)帳戶(hù). 您可以在url或Json表單中提交參數. 在大多數情況下,您只需要傳遞整數類(lèi)型的數據(例如,要刪除用戶(hù),只需提交用戶(hù)ID)
  背景寫(xiě)作形式:
  @RequestMapping(value = "/deleteUser/{id}",method = RequestMethod.DELETE
)
public JsonResult logout(@PathVariable Integer id){
//注銷(xiāo)session
userService.deleteById(id);
}
  使用@PathVariable批注支持從請求的URL中獲取數據. 應該注意的是,URL上的參數名稱(chēng)必須與方法中的變量名稱(chēng)一致. 查看全部

  內容
  1. Restful API的簡(jiǎn)單描述
  一種軟件架構風(fēng)格,設計風(fēng)格而不是標準,只是提供了一組設計原則和約束條件。Web 應用程序最重要的 REST 原則是,客戶(hù)端和服務(wù)器之間的交互在請求之間是無(wú)狀態(tài)的。從客戶(hù)端到服務(wù)器的每個(gè)請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求之間的任何時(shí)間點(diǎn)重啟,客戶(hù)端不會(huì )得到通知。此外,無(wú)狀態(tài)請求可以由任何可用服務(wù)器回答。
Rest:表述性狀態(tài)轉移
  
  在Server提供的RESTful API中,URL中僅使用名詞來(lái)指定資源. 原則上,不使用動(dòng)詞. HTTP協(xié)議中的動(dòng)詞用于添加,修改和刪除資源. 也就是說(shuō),資源狀態(tài)通過(guò)HTTP動(dòng)詞反轉:
  GET用于獲取資源,
  POST用于創(chuàng )建新資源(也可以用于更新資源)
  PUT用于更新資源,
  DELETE用于刪除資源.
  2. 采集參數問(wèn)題
  在設計Restful API時(shí),很多時(shí)候需要以不同的方式采集參數,例如登錄,更新帳戶(hù)等. 下面著(zhù)重介紹不同請求方法下的參數采集問(wèn)題. 原則上,前端和后端使用json作為數據交換格式. (用于: SpringMVC,JQuery,AJAX,JSP)
  測試按鈕編寫(xiě)表格:
  2.1RequestMethod.GET
  在get請求中,默認參數提交方法反映在url中. get請求是獲取服務(wù)器端數據. 不建議提交復雜的數據類(lèi)型. 如果涉及多種數據或復雜數據類(lèi)型,則需要更改為過(guò)帳. ,以下是獲取請求的示例:
  : 8080 / api / user?userName = kent&userId = 1
  背景寫(xiě)法:
   @RequestMapping(value = "/login",method = RequestMethod.GET)
public JsonResult login(@RequestParam("mydata") String data){
System.out.println(data);
return new SuccessResult().setData(data);
}
  JsonResult和SuccessResult是自定義數據結構,以促進(jìn)與Json的前端和后端交互. @RequestParam是用于接收請求參數的標簽,當變量名稱(chēng)與請求參數名稱(chēng)名稱(chēng)不一致時(shí),使用value來(lái)指定請求參數.
  示例請求網(wǎng)址: 9999 / login?mydata = hello
  前景符號:
  $("#button3").click(function () {
var mydata = "mydata=hello";
var url = "/login";
$.ajax({
url : url,
type : 'GET',
data : mydata
});
});
  請求數據以字符串形式進(jìn)行拼接,后臺采集的參數是你好
  2.2RequestMethod.POST
  在這種類(lèi)型的請求中,參數可以封裝在實(shí)體類(lèi)中. 當后臺接收到數據時(shí),框架將自動(dòng)解析并將數據映射到JavaBean. 郵政請求方法是將前端客戶(hù)輸入的數據提交到后臺進(jìn)行處理. 數據安全性.
  背景寫(xiě)作方法
  @RequestMapping(value = "/login",method = RequestMethod.POST)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前景符號:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'POST',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  規范前臺參數時(shí)要注意兩點(diǎn). 一種是內容類(lèi)型,默認的內容類(lèi)型是application / x-www-form-urlencoded. 如果要向服務(wù)器提交數據,則需要將內容類(lèi)型指定為application / json. 否則,服務(wù)器接收到的為空;第二點(diǎn)是使用JSON.strinify()函數將數據格式化為Json格式.
  2.3RequestMethod.PUT
  用于更新資源的參數提交方法類(lèi)似于post
  背景寫(xiě)法:
  @RequestMapping(value = "/login",method = RequestMethod.PUT)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前端寫(xiě)入方法:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'PUT',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  2.4RequestMethod.DELETE
  它用于刪除資源或注銷(xiāo)帳戶(hù). 您可以在url或Json表單中提交參數. 在大多數情況下,您只需要傳遞整數類(lèi)型的數據(例如,要刪除用戶(hù),只需提交用戶(hù)ID)
  背景寫(xiě)作形式:
  @RequestMapping(value = "/deleteUser/{id}",method = RequestMethod.DELETE
)
public JsonResult logout(@PathVariable Integer id){
//注銷(xiāo)session
userService.deleteById(id);
}
  使用@PathVariable批注支持從請求的URL中獲取數據. 應該注意的是,URL上的參數名稱(chēng)必須與方法中的變量名稱(chēng)一致.

CMDB項目獲取今天的未收資產(chǎn)清單和API驗證

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

  獲取今天未收資產(chǎn)的列表:
  要點(diǎn):
  1. 在服務(wù)器表中添加兩個(gè)字段: latest_date(可以為空);服務(wù)器狀態(tài)信息;
  2. 在什么情況下會(huì )獲得未采集的服務(wù)器信息?
 ?、佼攍ast_date為空時(shí),例如尚未報告的資產(chǎn)的初始創(chuàng )建;
 ?、诮裉焐形床杉?,請注意latest_date__date__lt
 ?、鄯?wù)器狀態(tài)為在線(xiàn)
  3. 設置current_date = datetime.datetime.now();服務(wù)器更新資產(chǎn)時(shí).
  4,get_host_list函數:
  注意: 內容放置在response.text部分(response = request.get(url))
  代碼區:
  ###############服務(wù)端###############
@csrf_exempt
def server(request):
'''
requests不能發(fā)送字典類(lèi)型數據,縱觀(guān)我們學(xué)的form表單提交數據,
ajax發(fā)送數據,均是不支持字典類(lèi)型數據的發(fā)送的。
具體原因百度知曉。
:param request:
:return:
'''
if request.method == 'GET':
# 獲取今日未采集主機列表[latest_date為None或者latest_date不為今日且服務(wù)器狀態(tài)為在線(xiàn)]
current_date = date.today()
host_list = models.Server.objects.filter(
Q(Q(latest_date=None) | Q(latest_date__date__lt=current_date)) & Q(server_status_id=2)).values('hostname')
'''
['hostname':'c1.com']
'''
host_list = list(host_list)
print(host_list)
return HttpResponse(json.dumps(host_list))
  #############客戶(hù)端#############
class SshSaltClient(BaseClient):
def get_host_list(self):
response=requests.get(self.api) #
# print(response.text) # [{"hostname": "c1.com"}]注意這種用法
return json.loads(response.text)
  API驗證
  要點(diǎn): 通過(guò)三個(gè)級別
  第一級: 時(shí)間限制(超出客戶(hù)時(shí)間和服務(wù)器之間的時(shí)間,我們的團隊要求限制)
  第二遍: 加密規則限制(主要使用MD5加密)
  第三遍: 對于已訪(fǎng)問(wèn)的加密str,我們設置訪(fǎng)問(wèn)列表. 普通用戶(hù)不可能再次向服務(wù)器請求此訪(fǎng)問(wèn)數據. 如果列表中沒(méi)有str,則表明這是正常的用戶(hù)訪(fǎng)問(wèn). 請記住,數據已添加到訪(fǎng)問(wèn)列表.
  此內容將越來(lái)越大,并且實(shí)際上將應用于memcache和redis.
  最后三個(gè)級別基本上可以達到防止黑客攻擊的效果,但是并不排除黑客的網(wǎng)絡(luò )速度比我們的速度快. 我們最好對要發(fā)送的數據進(jìn)行加密,然后更早地提交黑客的網(wǎng)絡(luò )速度. 是否可以去服務(wù)器?
  代碼區:
  ##############客戶(hù)端##############
import requests
import time
import hashlib
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
ctime = str(time.time())
client_str = '%s|%s' % (key, ctime)
client_md5_str = md5(client_str)
client_header_str = '%s|%s' % (client_md5_str, ctime)
print(client_header_str)
response = requests.get(url='http://127.0.0.1:8000/api/tests.html', headers={'auth-api': 'cae76146bfa06482cfee7e4f899cc414|1506956350.973326'})
print(response.text)
  ##############服務(wù)端##############
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
vistied_str_dict={}
def tests(request):
client_header_str = request.META.get('HTTP_AUTH_API')
print(client_header_str)
client_md5_str, client_ctime = client_header_str.split('|', maxsplit=1)
client_float_ctime = float(client_ctime)
server_float_ctime = float(time.time())
# 第一關(guān)
if (client_float_ctime + 20) < server_float_ctime:
return HttpResponse("太慢了")
# 第二關(guān)
server_str = '%s|%s' % (key, client_ctime)
server_md5_str = md5(server_str)
if client_md5_str != server_md5_str:
return HttpResponse('休想')
# 第三關(guān)
if vistied_str_dict.get(client_md5_str):
return HttpResponse('放棄吧')
else:
vistied_str_dict[client_md5_str] = client_ctime
return HttpResponse('你得到我了')
  最后,裝飾器未使用,明天將添加. 查看全部

  獲取今天未收資產(chǎn)的列表:
  要點(diǎn):
  1. 在服務(wù)器表中添加兩個(gè)字段: latest_date(可以為空);服務(wù)器狀態(tài)信息;
  2. 在什么情況下會(huì )獲得未采集的服務(wù)器信息?
 ?、佼攍ast_date為空時(shí),例如尚未報告的資產(chǎn)的初始創(chuàng )建;
 ?、诮裉焐形床杉?,請注意latest_date__date__lt
 ?、鄯?wù)器狀態(tài)為在線(xiàn)
  3. 設置current_date = datetime.datetime.now();服務(wù)器更新資產(chǎn)時(shí).
  4,get_host_list函數:
  注意: 內容放置在response.text部分(response = request.get(url))
  代碼區:
  ###############服務(wù)端###############
@csrf_exempt
def server(request):
'''
requests不能發(fā)送字典類(lèi)型數據,縱觀(guān)我們學(xué)的form表單提交數據,
ajax發(fā)送數據,均是不支持字典類(lèi)型數據的發(fā)送的。
具體原因百度知曉。
:param request:
:return:
'''
if request.method == 'GET':
# 獲取今日未采集主機列表[latest_date為None或者latest_date不為今日且服務(wù)器狀態(tài)為在線(xiàn)]
current_date = date.today()
host_list = models.Server.objects.filter(
Q(Q(latest_date=None) | Q(latest_date__date__lt=current_date)) & Q(server_status_id=2)).values('hostname')
'''
['hostname':'c1.com']
'''
host_list = list(host_list)
print(host_list)
return HttpResponse(json.dumps(host_list))
  #############客戶(hù)端#############
class SshSaltClient(BaseClient):
def get_host_list(self):
response=requests.get(self.api) #
# print(response.text) # [{"hostname": "c1.com"}]注意這種用法
return json.loads(response.text)
  API驗證
  要點(diǎn): 通過(guò)三個(gè)級別
  第一級: 時(shí)間限制(超出客戶(hù)時(shí)間和服務(wù)器之間的時(shí)間,我們的團隊要求限制)
  第二遍: 加密規則限制(主要使用MD5加密)
  第三遍: 對于已訪(fǎng)問(wèn)的加密str,我們設置訪(fǎng)問(wèn)列表. 普通用戶(hù)不可能再次向服務(wù)器請求此訪(fǎng)問(wèn)數據. 如果列表中沒(méi)有str,則表明這是正常的用戶(hù)訪(fǎng)問(wèn). 請記住,數據已添加到訪(fǎng)問(wèn)列表.
  此內容將越來(lái)越大,并且實(shí)際上將應用于memcache和redis.
  最后三個(gè)級別基本上可以達到防止黑客攻擊的效果,但是并不排除黑客的網(wǎng)絡(luò )速度比我們的速度快. 我們最好對要發(fā)送的數據進(jìn)行加密,然后更早地提交黑客的網(wǎng)絡(luò )速度. 是否可以去服務(wù)器?
  代碼區:
  ##############客戶(hù)端##############
import requests
import time
import hashlib
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
ctime = str(time.time())
client_str = '%s|%s' % (key, ctime)
client_md5_str = md5(client_str)
client_header_str = '%s|%s' % (client_md5_str, ctime)
print(client_header_str)
response = requests.get(url='http://127.0.0.1:8000/api/tests.html', headers={'auth-api': 'cae76146bfa06482cfee7e4f899cc414|1506956350.973326'})
print(response.text)
  ##############服務(wù)端##############
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
vistied_str_dict={}
def tests(request):
client_header_str = request.META.get('HTTP_AUTH_API')
print(client_header_str)
client_md5_str, client_ctime = client_header_str.split('|', maxsplit=1)
client_float_ctime = float(client_ctime)
server_float_ctime = float(time.time())
# 第一關(guān)
if (client_float_ctime + 20) < server_float_ctime:
return HttpResponse("太慢了")
# 第二關(guān)
server_str = '%s|%s' % (key, client_ctime)
server_md5_str = md5(server_str)
if client_md5_str != server_md5_str:
return HttpResponse('休想')
# 第三關(guān)
if vistied_str_dict.get(client_md5_str):
return HttpResponse('放棄吧')
else:
vistied_str_dict[client_md5_str] = client_ctime
return HttpResponse('你得到我了')
  最后,裝飾器未使用,明天將添加.

[Transfer] Dynamics CRM 365的從零開(kāi)始的入門(mén)學(xué)習(3)通過(guò)Dynamics

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

  要立即實(shí)現搜索產(chǎn)品功能,必須首先在頁(yè)面上顯示數據,然后前端將根據查詢(xún)要求對其進(jìn)行處理. 它以前是在salesforce中實(shí)現的. 您可以定義“搜索產(chǎn)品”頁(yè)面,然后訪(fǎng)問(wèn)查詢(xún)該頁(yè)面上數據的Web服務(wù). 但是在Dynamic 365中,沒(méi)有這種直接調用方法. 最后,找到一種方法,使前端頁(yè)面通過(guò)Js在工作流中調用Action,并將插件綁定到Action.
  實(shí)現效果
  
 ?。?)實(shí)現html頁(yè)面并將其導入系統
  在設置中找到自定義項,然后轉到自定義系統,選擇Web資源,然后將先前準備的頁(yè)面上傳到系統.
  
 ?。?)自定義操作
  首先創(chuàng )建一個(gè)新動(dòng)作,可以將實(shí)體設置設置為全局,也可以單獨設置一個(gè)實(shí)體.
  注意:
  注冊動(dòng)作,方法與插件注冊相同. 在注冊步驟時(shí),消息將選擇我們操作的唯一名稱(chēng). 許多人沒(méi)有在此步驟的消息中顯示操作的名稱(chēng). 請確保兩點(diǎn): 首先,您的操作已激活;其次,在您激活操作后打開(kāi)了插件注冊器.
  
  設置動(dòng)作后,在此設置兩個(gè)輸入參數和一個(gè)輸出參數. 設置后,保存并激活.
 ?。?)開(kāi)發(fā)插件項目
  在此我們簡(jiǎn)要介紹該插件的基本用法
  1. 要繼承IPlugin,并實(shí)現Executive方法.
  2. 從服務(wù)提供商那里獲取執行上下文
  3. 我們可以檢查啟動(dòng)插件的實(shí)體名稱(chēng)
  4. 您還可以檢查觸發(fā)的事件,無(wú)論是創(chuàng )建,更新還是刪除
  5. 在輸入參數中獲取觸發(fā)的實(shí)體
  6. 通過(guò)服務(wù)工廠(chǎng)獲取IOrganizationService. 如果CreateOrganizationService方法的參數為null,則表示系統用戶(hù);如果參數為context.UserId或Guid.Empty,則表示當前用戶(hù).
  7. 最后,DoAction方法,即插件的邏輯可以在這里實(shí)現.
  以下是實(shí)現該插件的代碼:
  
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService
(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider
.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
//傳入兩個(gè)參數
String InParameters1 = context.InputParameters["InParameters1"] as String;
String InParameters2 = context.InputParameters["InParameters2"] as String;
//查詢(xún)
//EntityReference entityRef = context.InputParameters["Target"] as EntityReference;
string fetchProductXml = @"












































";
EntityCollection products = service.RetrieveMultiple(new FetchExpression(fetchProductXml));
//傳出參數
context.OutputParameters["OutParameters"] = products;
//遍歷products
foreach (var pair in products.Entities)
{
foreach (var pa in pair.Attributes)
{
Console.WriteLine(pa.Key + ": " + pa.Value);
}
}
Console.WriteLine(products);
}
 ?。?)數據查詢(xún)方法,本文使用FetchXML
  在上面的代碼實(shí)現中,我使用FetchXML來(lái)實(shí)現它. 對于多條件跨表查詢(xún),返回多個(gè)記錄非常方便. 常用的結構如下,
  SDK中有很多類(lèi)似的情況.
  
  我們可以使用高級查詢(xún)來(lái)自動(dòng)生成XML
  
  最后我們可以導出XML文件
 ?。?)Js調用自定義操作
  
  最后,您可以看到輸出結果:
  
  摘要:
  在內部部署的開(kāi)發(fā)中,我們通常將復雜的業(yè)務(wù)處理邏輯封裝到用于前端js調用的接口中,但是在在線(xiàn)開(kāi)發(fā)中,這種開(kāi)發(fā)方法無(wú)疑會(huì )增加成本(必須設置設置另一臺服務(wù)器,添加域名并配置https協(xié)議證書(shū)等),通過(guò)網(wǎng)絡(luò )api調用動(dòng)作為我們提供了一種新的可行方式. 需求得到滿(mǎn)足. 在下一章中,我們將分享調試插件的方法. 查看全部

  要立即實(shí)現搜索產(chǎn)品功能,必須首先在頁(yè)面上顯示數據,然后前端將根據查詢(xún)要求對其進(jìn)行處理. 它以前是在salesforce中實(shí)現的. 您可以定義“搜索產(chǎn)品”頁(yè)面,然后訪(fǎng)問(wèn)查詢(xún)該頁(yè)面上數據的Web服務(wù). 但是在Dynamic 365中,沒(méi)有這種直接調用方法. 最后,找到一種方法,使前端頁(yè)面通過(guò)Js在工作流中調用Action,并將插件綁定到Action.
  實(shí)現效果
  
 ?。?)實(shí)現html頁(yè)面并將其導入系統
  在設置中找到自定義項,然后轉到自定義系統,選擇Web資源,然后將先前準備的頁(yè)面上傳到系統.
  
 ?。?)自定義操作
  首先創(chuàng )建一個(gè)新動(dòng)作,可以將實(shí)體設置設置為全局,也可以單獨設置一個(gè)實(shí)體.
  注意:
  注冊動(dòng)作,方法與插件注冊相同. 在注冊步驟時(shí),消息將選擇我們操作的唯一名稱(chēng). 許多人沒(méi)有在此步驟的消息中顯示操作的名稱(chēng). 請確保兩點(diǎn): 首先,您的操作已激活;其次,在您激活操作后打開(kāi)了插件注冊器.
  
  設置動(dòng)作后,在此設置兩個(gè)輸入參數和一個(gè)輸出參數. 設置后,保存并激活.
 ?。?)開(kāi)發(fā)插件項目
  在此我們簡(jiǎn)要介紹該插件的基本用法
  1. 要繼承IPlugin,并實(shí)現Executive方法.
  2. 從服務(wù)提供商那里獲取執行上下文
  3. 我們可以檢查啟動(dòng)插件的實(shí)體名稱(chēng)
  4. 您還可以檢查觸發(fā)的事件,無(wú)論是創(chuàng )建,更新還是刪除
  5. 在輸入參數中獲取觸發(fā)的實(shí)體
  6. 通過(guò)服務(wù)工廠(chǎng)獲取IOrganizationService. 如果CreateOrganizationService方法的參數為null,則表示系統用戶(hù);如果參數為context.UserId或Guid.Empty,則表示當前用戶(hù).
  7. 最后,DoAction方法,即插件的邏輯可以在這里實(shí)現.
  以下是實(shí)現該插件的代碼:
  
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService
(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider
.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
//傳入兩個(gè)參數
String InParameters1 = context.InputParameters["InParameters1"] as String;
String InParameters2 = context.InputParameters["InParameters2"] as String;
//查詢(xún)
//EntityReference entityRef = context.InputParameters["Target"] as EntityReference;
string fetchProductXml = @"












































";
EntityCollection products = service.RetrieveMultiple(new FetchExpression(fetchProductXml));
//傳出參數
context.OutputParameters["OutParameters"] = products;
//遍歷products
foreach (var pair in products.Entities)
{
foreach (var pa in pair.Attributes)
{
Console.WriteLine(pa.Key + ": " + pa.Value);
}
}
Console.WriteLine(products);
}
 ?。?)數據查詢(xún)方法,本文使用FetchXML
  在上面的代碼實(shí)現中,我使用FetchXML來(lái)實(shí)現它. 對于多條件跨表查詢(xún),返回多個(gè)記錄非常方便. 常用的結構如下,
  SDK中有很多類(lèi)似的情況.
  
  我們可以使用高級查詢(xún)來(lái)自動(dòng)生成XML
  
  最后我們可以導出XML文件
 ?。?)Js調用自定義操作
  
  最后,您可以看到輸出結果:
  
  摘要:
  在內部部署的開(kāi)發(fā)中,我們通常將復雜的業(yè)務(wù)處理邏輯封裝到用于前端js調用的接口中,但是在在線(xiàn)開(kāi)發(fā)中,這種開(kāi)發(fā)方法無(wú)疑會(huì )增加成本(必須設置設置另一臺服務(wù)器,添加域名并配置https協(xié)議證書(shū)等),通過(guò)網(wǎng)絡(luò )api調用動(dòng)作為我們提供了一種新的可行方式. 需求得到滿(mǎn)足. 在下一章中,我們將分享調試插件的方法.

微信公眾號文章采集并發(fā)布到WordPress

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

  優(yōu)采云數據采集平臺提供了微信官方帳戶(hù)文章的采集,并且可以輕松發(fā)布到WordPress和其他系統.
  1. 優(yōu)采云微信官方賬號文章集的主要特點(diǎn)
  1)可以通過(guò)官方帳戶(hù)名稱(chēng)或ID,關(guān)鍵字進(jìn)行采集,并支持輸入多個(gè)同時(shí)捕獲的數據;
  2)自動(dòng)訪(fǎng)問(wèn)一些商業(yè)IP代理以有效保證數據采集;
  3)多種圖像下載存儲方式(優(yōu)采云存儲,阿里云OSS,秦牛),解決了官方賬戶(hù)中圖片的防盜鏈接問(wèn)題;
  4)強大的數據處理功能(可以在采集前后進(jìn)行處理);
  5)簡(jiǎn)單的配置可以輕松發(fā)布到Wordpress或http界面.
  2. 采集微信公眾號文章的主要步驟1.創(chuàng )建“采集微信公眾號”任務(wù)
  登錄到Ucai Cloud控制臺,然后單擊以采集“微信官方帳戶(hù)”
  
  2,填寫(xiě)要采集的官方帳戶(hù)名稱(chēng)或ID或關(guān)鍵字
  填寫(xiě)如下基本信息:
  
  填寫(xiě)任務(wù)名稱(chēng),要采集的微信公眾號名稱(chēng)或ID,并用逗號分隔. 填寫(xiě)后,請點(diǎn)擊“保存”.
  提醒: 系統還提供數據處理,例如刪除圖片,刪除鏈接,添加版權說(shuō)明等. 如有必要,請進(jìn)行相應的選擇.
  3. 設置圖片下載(可選)
  由于微信公眾號圖片是防盜處理,采集到的原創(chuàng )圖片無(wú)法正常顯示. 如果需要圖片,則需要配置圖片下載:
  
  您可以選擇“臨時(shí)存儲優(yōu)采云(需要ftp返回到您的服務(wù)器)”或阿里云OSS或奇牛存儲,這里我們選擇阿里云OSS(數據存儲需要用戶(hù)根據實(shí)際情況進(jìn)行配置,一次配置即可)重新使用).
  4. 開(kāi)始采集
  圖片配置完成后,您可以單擊“開(kāi)始采集”以開(kāi)始采集數據:
  
  5. 結果數據處理和發(fā)布
  開(kāi)始采集后,將連續采集數據,可在“結果數據和發(fā)布”頁(yè)面上查看:
  
  您可以單擊一條數據以檢查其是否正常(通常驗證圖片或修改數據)
  
  結果數據正確后,您可以發(fā)布: 發(fā)布到WordPress教程
  
  發(fā)布結果:
  
  最終版本發(fā)布后的文章鏈接(此處已發(fā)布到優(yōu)采云測試站點(diǎn)):
  
  微信公眾號文章的采集和發(fā)布已經(jīng)結束. 查看全部

  優(yōu)采云數據采集平臺提供了微信官方帳戶(hù)文章的采集,并且可以輕松發(fā)布到WordPress和其他系統.
  1. 優(yōu)采云微信官方賬號文章集的主要特點(diǎn)
  1)可以通過(guò)官方帳戶(hù)名稱(chēng)或ID,關(guān)鍵字進(jìn)行采集,并支持輸入多個(gè)同時(shí)捕獲的數據;
  2)自動(dòng)訪(fǎng)問(wèn)一些商業(yè)IP代理以有效保證數據采集;
  3)多種圖像下載存儲方式(優(yōu)采云存儲,阿里云OSS,秦牛),解決了官方賬戶(hù)中圖片的防盜鏈接問(wèn)題;
  4)強大的數據處理功能(可以在采集前后進(jìn)行處理);
  5)簡(jiǎn)單的配置可以輕松發(fā)布到Wordpress或http界面.
  2. 采集微信公眾號文章的主要步驟1.創(chuàng )建“采集微信公眾號”任務(wù)
  登錄到Ucai Cloud控制臺,然后單擊以采集“微信官方帳戶(hù)”
  
  2,填寫(xiě)要采集的官方帳戶(hù)名稱(chēng)或ID或關(guān)鍵字
  填寫(xiě)如下基本信息:
  
  填寫(xiě)任務(wù)名稱(chēng),要采集的微信公眾號名稱(chēng)或ID,并用逗號分隔. 填寫(xiě)后,請點(diǎn)擊“保存”.
  提醒: 系統還提供數據處理,例如刪除圖片,刪除鏈接,添加版權說(shuō)明等. 如有必要,請進(jìn)行相應的選擇.
  3. 設置圖片下載(可選)
  由于微信公眾號圖片是防盜處理,采集到的原創(chuàng )圖片無(wú)法正常顯示. 如果需要圖片,則需要配置圖片下載:
  
  您可以選擇“臨時(shí)存儲優(yōu)采云(需要ftp返回到您的服務(wù)器)”或阿里云OSS或奇牛存儲,這里我們選擇阿里云OSS(數據存儲需要用戶(hù)根據實(shí)際情況進(jìn)行配置,一次配置即可)重新使用).
  4. 開(kāi)始采集
  圖片配置完成后,您可以單擊“開(kāi)始采集”以開(kāi)始采集數據:
  
  5. 結果數據處理和發(fā)布
  開(kāi)始采集后,將連續采集數據,可在“結果數據和發(fā)布”頁(yè)面上查看:
  
  您可以單擊一條數據以檢查其是否正常(通常驗證圖片或修改數據)
  
  結果數據正確后,您可以發(fā)布: 發(fā)布到WordPress教程
  
  發(fā)布結果:
  
  最終版本發(fā)布后的文章鏈接(此處已發(fā)布到優(yōu)采云測試站點(diǎn)):
  
  微信公眾號文章的采集和發(fā)布已經(jīng)結束.

Python網(wǎng)絡(luò )數據采集4: 使用API??

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

  通常情況下,程序員可以使用HTPP協(xié)議向API發(fā)起請求以獲取某些信息,并且API將以XML或JSON格式返回服務(wù)器的響應信息.
  通常,您不會(huì )考慮將API用作網(wǎng)絡(luò )數據采集,但實(shí)際上,兩者(都發(fā)送HTTP請求)和結果(都獲取信息)所使用的許多技術(shù)都是相似的;兩者通常是同一個(gè)鄭氏的關(guān)系.
  例如,將Wikipedia編輯歷史記錄(與編輯者的IP地址)和IP地址解析API結合起來(lái),以獲取Wikipedia條目的編輯者的地理位置.
  4.1 API概述
  Google API
  4.2 API通用規則
  API使用非常標準的規則集來(lái)生成數據,并且所生成的數據以非常標準的方式組織.
  四種方法: GET,POST,PUT,DELETE
  驗證: 需要客戶(hù)端驗證
  4.3服務(wù)器響應
  大多數反饋數據格式是XML和JSON
  過(guò)去,服務(wù)器使用PHP和.NET等程序作為API的接收端. 現在,服務(wù)器端還使用了一些JavaScript框架作為API的發(fā)送和接收端,例如Angular或Backbone.
  API調用:
  4.4回聲巢
  Echo Nest音樂(lè )數據網(wǎng)站
  4.5 Twitter API
  pip安裝推特
  from twitter import Twitter
t = Twitter(auth=OAuth(,,,))
pythonTweets = t.search.tweets(q = "#python")
print(pythonTweets)
  發(fā)布推文4.6 Google API
  無(wú)論您要處理哪種信息,包括語(yǔ)言翻譯,地理位置,日歷,甚至是遺傳數據,Google都會(huì )提供API. Google還為其一些知名應用程序(例如Gmail,YouTube和Blogger)提供API.
  4.7解析JSON數據
  import json
from urllib.request import urlopen
def getCountry(ipAddress):
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
responseJson = json.loads(response)
return responseJson.get("country_code")
print(getCountry("50.78.253.58"))
  4.8返回主題
  將多個(gè)數據源組合為新形式,或使用API??作為一種工具,從新的角度解釋采集的數據.
  首先要做一個(gè)基本程序來(lái)采集維基百科,找到編輯歷史記錄頁(yè)面,然后在編輯歷史記錄中找到IP地址
  # -*- coding: utf-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
import json
random.seed(datetime.datetime.now())
# https://en.wikipedia.org/wiki/Python_(programming_language)
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div",{"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
def getHistoryIPs(pageUrl):
# 編輯歷史頁(yè)面URL鏈接格式是:
# https://en.wikipedia.org/w/index.php?title=Python_(programming_language)&action=history
pageUrl = pageUrl.replace("/wiki/", "")
historyUrl = "https://en.wikipedia.org/w/ind ... ot%3B
print("history url is: "+historyUrl)
html = urlopen(historyUrl)
bsObj = BeautifulSoup(html)
# 找出class屬性是"mw-anonuserlink"的鏈接
# 它們用IP地址代替用戶(hù)名
ipAddresses = bsObj.findAll("a", {"class":"mw-anonuserlink"})
addressList = set()
for ipAddress in ipAddresses:
addressList.add(ipAddress.get_text())
return addressList
links = getLinks("/wiki/Python_(programming_language)")
def getCountry(ipAddress):
try:
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
except HTTPError:
return None
responseJson = json.loads(response)
return responseJson.get("country_code")
while (len(links) > 0):
for link in links:
print("-------------------")
historyIPs = getHistoryIPs(link.attrs["href"])
for historyIP in historyIPs:
#print(historyIP)
country = getCountry(historyIP)
if country is not None:
print(historyIP+" is from "+country)
newLink = links[random.randint(0, len(links)-1)].attrs["href"]
links = getLinks(newLink)
  4.9關(guān)于A(yíng)PI的更多信息
  Leonard Richardson,Mike Amundsen和Sam Ruby的RESTful Web API()為使用Web API提供了非常全面的理論和實(shí)踐指導. 此外,Mike Amundsen的精彩視頻教學(xué)課程“為Web()設計API”還可以教您創(chuàng )建自己的API. 如果您想方便地共享自己采集的數據,他的視頻非常有用 查看全部

  通常情況下,程序員可以使用HTPP協(xié)議向API發(fā)起請求以獲取某些信息,并且API將以XML或JSON格式返回服務(wù)器的響應信息.
  通常,您不會(huì )考慮將API用作網(wǎng)絡(luò )數據采集,但實(shí)際上,兩者(都發(fā)送HTTP請求)和結果(都獲取信息)所使用的許多技術(shù)都是相似的;兩者通常是同一個(gè)鄭氏的關(guān)系.
  例如,將Wikipedia編輯歷史記錄(與編輯者的IP地址)和IP地址解析API結合起來(lái),以獲取Wikipedia條目的編輯者的地理位置.
  4.1 API概述
  Google API
  4.2 API通用規則
  API使用非常標準的規則集來(lái)生成數據,并且所生成的數據以非常標準的方式組織.
  四種方法: GET,POST,PUT,DELETE
  驗證: 需要客戶(hù)端驗證
  4.3服務(wù)器響應
  大多數反饋數據格式是XML和JSON
  過(guò)去,服務(wù)器使用PHP和.NET等程序作為API的接收端. 現在,服務(wù)器端還使用了一些JavaScript框架作為API的發(fā)送和接收端,例如Angular或Backbone.
  API調用:
  4.4回聲巢
  Echo Nest音樂(lè )數據網(wǎng)站
  4.5 Twitter API
  pip安裝推特
  from twitter import Twitter
t = Twitter(auth=OAuth(,,,))
pythonTweets = t.search.tweets(q = "#python")
print(pythonTweets)
  發(fā)布推文4.6 Google API
  無(wú)論您要處理哪種信息,包括語(yǔ)言翻譯,地理位置,日歷,甚至是遺傳數據,Google都會(huì )提供API. Google還為其一些知名應用程序(例如Gmail,YouTube和Blogger)提供API.
  4.7解析JSON數據
  import json
from urllib.request import urlopen
def getCountry(ipAddress):
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
responseJson = json.loads(response)
return responseJson.get("country_code")
print(getCountry("50.78.253.58"))
  4.8返回主題
  將多個(gè)數據源組合為新形式,或使用API??作為一種工具,從新的角度解釋采集的數據.
  首先要做一個(gè)基本程序來(lái)采集維基百科,找到編輯歷史記錄頁(yè)面,然后在編輯歷史記錄中找到IP地址
  # -*- coding: utf-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
import json
random.seed(datetime.datetime.now())
# https://en.wikipedia.org/wiki/Python_(programming_language)
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div",{"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
def getHistoryIPs(pageUrl):
# 編輯歷史頁(yè)面URL鏈接格式是:
# https://en.wikipedia.org/w/index.php?title=Python_(programming_language)&action=history
pageUrl = pageUrl.replace("/wiki/", "")
historyUrl = "https://en.wikipedia.org/w/ind ... ot%3B
print("history url is: "+historyUrl)
html = urlopen(historyUrl)
bsObj = BeautifulSoup(html)
# 找出class屬性是"mw-anonuserlink"的鏈接
# 它們用IP地址代替用戶(hù)名
ipAddresses = bsObj.findAll("a", {"class":"mw-anonuserlink"})
addressList = set()
for ipAddress in ipAddresses:
addressList.add(ipAddress.get_text())
return addressList
links = getLinks("/wiki/Python_(programming_language)")
def getCountry(ipAddress):
try:
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
except HTTPError:
return None
responseJson = json.loads(response)
return responseJson.get("country_code")
while (len(links) > 0):
for link in links:
print("-------------------")
historyIPs = getHistoryIPs(link.attrs["href"])
for historyIP in historyIPs:
#print(historyIP)
country = getCountry(historyIP)
if country is not None:
print(historyIP+" is from "+country)
newLink = links[random.randint(0, len(links)-1)].attrs["href"]
links = getLinks(newLink)
  4.9關(guān)于A(yíng)PI的更多信息
  Leonard Richardson,Mike Amundsen和Sam Ruby的RESTful Web API()為使用Web API提供了非常全面的理論和實(shí)踐指導. 此外,Mike Amundsen的精彩視頻教學(xué)課程“為Web()設計API”還可以教您創(chuàng )建自己的API. 如果您想方便地共享自己采集的數據,他的視頻非常有用

數據導出-導出到Excel,CSV,HTML,數據庫,API

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

  此視頻介紹了數據查看和導出.
  本地采集的數據(如果采集了重復的數據). 單擊“導出數據”后,將提示您是否刪除重復項. 您可以選擇導出所有數據,也可以選擇在重復數據刪除后導出.
  導出后,本地數據不會(huì )自動(dòng)清除. 您可以下次再次導出它或清除數據.
  如果從云采集數據中采集了重復數據,則將在存儲之前自動(dòng)對它們進(jìn)行重復數據刪除,也就是說(shuō),您查看的所有數據都是唯一的.
  導出后,云采集數據不會(huì )自動(dòng)清除. 您下次可以再次導出或清除數據. 數據僅在云中存儲3個(gè)月(根據采集時(shí)間計算),有效日期將自動(dòng)清除.
  云采集數據按狀態(tài)分類(lèi):
  所有數據: 每次云采集數據時(shí)都會(huì )累積此任務(wù)的所有數據,如果不清除,則始終可以查看和導出.
  未導出的數據: 新采集的數據從未導出過(guò),但是任何導出格式或方法(只要已導出一次)都不是未導出的數據.
  數據導出格式/方法:
  Excel表文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以導出. 如果一行數據太長(cháng),該行將被截斷. )
  CSV文本文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以進(jìn)行導出. 單行數據太長(cháng)且不會(huì )被截斷. )
  HTML網(wǎng)頁(yè)文件(一行數據,一個(gè)文件,如果采集了100個(gè)數據,則選擇此格式將導出100個(gè)文件)
  導出到數據庫,支持三種類(lèi)型的數據庫: SQL Server,MySQL和Oracle. 支持自動(dòng)導出到數據庫,未導出的數據將按計劃定期導出.
  API接口導出,API文檔參考 查看全部

  此視頻介紹了數據查看和導出.
  本地采集的數據(如果采集了重復的數據). 單擊“導出數據”后,將提示您是否刪除重復項. 您可以選擇導出所有數據,也可以選擇在重復數據刪除后導出.
  導出后,本地數據不會(huì )自動(dòng)清除. 您可以下次再次導出它或清除數據.
  如果從云采集數據中采集了重復數據,則將在存儲之前自動(dòng)對它們進(jìn)行重復數據刪除,也就是說(shuō),您查看的所有數據都是唯一的.
  導出后,云采集數據不會(huì )自動(dòng)清除. 您下次可以再次導出或清除數據. 數據僅在云中存儲3個(gè)月(根據采集時(shí)間計算),有效日期將自動(dòng)清除.
  云采集數據按狀態(tài)分類(lèi):
  所有數據: 每次云采集數據時(shí)都會(huì )累積此任務(wù)的所有數據,如果不清除,則始終可以查看和導出.
  未導出的數據: 新采集的數據從未導出過(guò),但是任何導出格式或方法(只要已導出一次)都不是未導出的數據.
  數據導出格式/方法:
  Excel表文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以導出. 如果一行數據太長(cháng),該行將被截斷. )
  CSV文本文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以進(jìn)行導出. 單行數據太長(cháng)且不會(huì )被截斷. )
  HTML網(wǎng)頁(yè)文件(一行數據,一個(gè)文件,如果采集了100個(gè)數據,則選擇此格式將導出100個(gè)文件)
  導出到數據庫,支持三種類(lèi)型的數據庫: SQL Server,MySQL和Oracle. 支持自動(dòng)導出到數據庫,未導出的數據將按計劃定期導出.
  API接口導出,API文檔參考

2019年最新的站群優(yōu)化超級蜘蛛池對于排水至關(guān)重要,可以在后臺出售,自動(dòng)采集,支持推斷

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

  資源源網(wǎng)絡(luò ),如果需要授權,請更改源代碼,該模塊僅供學(xué)習,如果需要商業(yè)使用,請購買(mǎi)正版授權
  蜘蛛池排水站組蜘蛛池2019seo優(yōu)化超級蜘蛛池自動(dòng)采集網(wǎng)站優(yōu)化必不可少
  Seo優(yōu)化網(wǎng)站用戶(hù)組特征
  安全,高效,優(yōu)化地使用PHP性能,使操作平穩,穩定
  原創(chuàng )內容無(wú)需緩存即可刷新,從而節省了硬盤(pán). 阻止搜索引擎識別蜘蛛池
  蜘蛛池算法,易于構建的網(wǎng)站(電影,新聞,圖片,論壇等)
  您可以個(gè)性化每個(gè)網(wǎng)站的樣式,內容,網(wǎng)站模式,關(guān)鍵字,外部鏈接等
 ?。ㄗ远xtkd,自定義外部鏈關(guān)鍵字,自定義域名前綴)
  什么是蜘蛛池?蜘蛛池是一個(gè)利用大型平臺的權重來(lái)獲取百度的納入和排名的程序. 程序員經(jīng)常稱(chēng)其為“蜘蛛池”. 這是一個(gè)可以快速提高網(wǎng)站排名的程序. 值得一提的是,它可以自動(dòng)提高網(wǎng)站排名和網(wǎng)站包容性. 這個(gè)效果非常出色. 蜘蛛池程序可以為我們做什么?鏈接外部發(fā)布的帖子尚未包括在內,但競爭對手發(fā)布了相同的網(wǎng)站,他們還沒(méi)有發(fā)布鏈接并將其收錄在內,對!答: (因為人們有大量的百度隨附蜘蛛爬蟲(chóng),所以可以使用蜘蛛池來(lái)做到這一點(diǎn))
  有些退伍軍人會(huì )說(shuō),我也擁有百度蜘蛛,為什么不包括它們?
<p>答案: (因為您的百度索引蜘蛛不多且不夠寬,所以來(lái)回搜索的是那些劣質(zhì)的百度收錄的爬蟲(chóng),收錄緩慢,甚至根本不收錄??!-蜘蛛池有多個(gè)服務(wù)器,多個(gè)域,常規內容站點(diǎn)托管著(zhù)包括蜘蛛在內的百度,并且分布廣泛,具有許多域名,面向團隊的蜘蛛,許多源站點(diǎn),高品質(zhì),并且每天都有新的蜘蛛在爬行,以包括您的推斷帖子) 查看全部

  資源源網(wǎng)絡(luò ),如果需要授權,請更改源代碼,該模塊僅供學(xué)習,如果需要商業(yè)使用,請購買(mǎi)正版授權
  蜘蛛池排水站組蜘蛛池2019seo優(yōu)化超級蜘蛛池自動(dòng)采集網(wǎng)站優(yōu)化必不可少
  Seo優(yōu)化網(wǎng)站用戶(hù)組特征
  安全,高效,優(yōu)化地使用PHP性能,使操作平穩,穩定
  原創(chuàng )內容無(wú)需緩存即可刷新,從而節省了硬盤(pán). 阻止搜索引擎識別蜘蛛池
  蜘蛛池算法,易于構建的網(wǎng)站(電影,新聞,圖片,論壇等)
  您可以個(gè)性化每個(gè)網(wǎng)站的樣式,內容,網(wǎng)站模式,關(guān)鍵字,外部鏈接等
 ?。ㄗ远xtkd,自定義外部鏈關(guān)鍵字,自定義域名前綴)
  什么是蜘蛛池?蜘蛛池是一個(gè)利用大型平臺的權重來(lái)獲取百度的納入和排名的程序. 程序員經(jīng)常稱(chēng)其為“蜘蛛池”. 這是一個(gè)可以快速提高網(wǎng)站排名的程序. 值得一提的是,它可以自動(dòng)提高網(wǎng)站排名和網(wǎng)站包容性. 這個(gè)效果非常出色. 蜘蛛池程序可以為我們做什么?鏈接外部發(fā)布的帖子尚未包括在內,但競爭對手發(fā)布了相同的網(wǎng)站,他們還沒(méi)有發(fā)布鏈接并將其收錄在內,對!答: (因為人們有大量的百度隨附蜘蛛爬蟲(chóng),所以可以使用蜘蛛池來(lái)做到這一點(diǎn))
  有些退伍軍人會(huì )說(shuō),我也擁有百度蜘蛛,為什么不包括它們?
<p>答案: (因為您的百度索引蜘蛛不多且不夠寬,所以來(lái)回搜索的是那些劣質(zhì)的百度收錄的爬蟲(chóng),收錄緩慢,甚至根本不收錄??!-蜘蛛池有多個(gè)服務(wù)器,多個(gè)域,常規內容站點(diǎn)托管著(zhù)包括蜘蛛在內的百度,并且分布廣泛,具有許多域名,面向團隊的蜘蛛,許多源站點(diǎn),高品質(zhì),并且每天都有新的蜘蛛在爬行,以包括您的推斷帖子)

DoozyUI丨API: UIButton

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

  [為什么要學(xué)習爬網(wǎng)? 】1.爬網(wǎng)程序易于入門(mén),但難以深入. 如何編寫(xiě)高效的采集器,如何編寫(xiě)高度靈活和可伸縮的采集器是一項技術(shù)任務(wù). 此外,在爬網(wǎng)過(guò)程中,經(jīng)常容易遇到反爬蟲(chóng),例如字體防爬網(wǎng),IP識別,驗證碼等. 如何克服困難并獲得所需的數據,您可以學(xué)習此課程! 2.如果您是其他行業(yè)的開(kāi)發(fā)人員,例如應用程序開(kāi)發(fā),網(wǎng)站開(kāi)發(fā),那么學(xué)習爬蟲(chóng)程序可以增強您的技術(shù)知識,并開(kāi)發(fā)更安全的軟件和網(wǎng)站[課程設計]完整的爬蟲(chóng)程序,無(wú)論大小,它可以分為三個(gè)步驟,即: 網(wǎng)絡(luò )請求: 模擬瀏覽器的行為以從Internet抓取數據. 數據分析: 過(guò)濾請求的數據并提取所需的數據. 數據存儲: 將提取的數據存儲到硬盤(pán)或內存中. 例如,使用mysql數據庫或redis. 然后按照這些步驟逐步解釋本課程,使學(xué)生充分掌握每個(gè)步驟的技術(shù). 另外,由于爬行器的多樣性,在爬行過(guò)程中可能會(huì )發(fā)生反爬行和低效率的情況. 因此,我們增加了兩章來(lái)提高采集器程序的靈活性. 它們是: 高級采集器: 包括IP代理,多線(xiàn)程采集器,圖形驗證碼識別,JS加密和解密,動(dòng)態(tài)Web采集器,字體反搜尋識別等. Scrapy和分布式爬蟲(chóng): Scrapy框架,Scrapy-redis組件,分布式爬蟲(chóng)等. 我們可以通過(guò)爬蟲(chóng)的高級知識點(diǎn)來(lái)處理大量反爬蟲(chóng)網(wǎng)站,并且Scrapy框架是使用它的專(zhuān)業(yè)爬蟲(chóng)框架可以快速提高我們的抓取程序的效率和速度. 此外,如果一臺計算機無(wú)法滿(mǎn)足您的需求,我們可以使用分布式爬網(wǎng)程序讓多臺計算機幫助您快速爬網(wǎng)數據. 從基本的采集器到商業(yè)應用程序采集器,這套課程都可以滿(mǎn)足您的所有需求! [課程服務(wù)]獨家付費社區+每個(gè)星期三的討論會(huì )+ 1v1問(wèn)答 查看全部

  [為什么要學(xué)習爬網(wǎng)? 】1.爬網(wǎng)程序易于入門(mén),但難以深入. 如何編寫(xiě)高效的采集器,如何編寫(xiě)高度靈活和可伸縮的采集器是一項技術(shù)任務(wù). 此外,在爬網(wǎng)過(guò)程中,經(jīng)常容易遇到反爬蟲(chóng),例如字體防爬網(wǎng),IP識別,驗證碼等. 如何克服困難并獲得所需的數據,您可以學(xué)習此課程! 2.如果您是其他行業(yè)的開(kāi)發(fā)人員,例如應用程序開(kāi)發(fā),網(wǎng)站開(kāi)發(fā),那么學(xué)習爬蟲(chóng)程序可以增強您的技術(shù)知識,并開(kāi)發(fā)更安全的軟件和網(wǎng)站[課程設計]完整的爬蟲(chóng)程序,無(wú)論大小,它可以分為三個(gè)步驟,即: 網(wǎng)絡(luò )請求: 模擬瀏覽器的行為以從Internet抓取數據. 數據分析: 過(guò)濾請求的數據并提取所需的數據. 數據存儲: 將提取的數據存儲到硬盤(pán)或內存中. 例如,使用mysql數據庫或redis. 然后按照這些步驟逐步解釋本課程,使學(xué)生充分掌握每個(gè)步驟的技術(shù). 另外,由于爬行器的多樣性,在爬行過(guò)程中可能會(huì )發(fā)生反爬行和低效率的情況. 因此,我們增加了兩章來(lái)提高采集器程序的靈活性. 它們是: 高級采集器: 包括IP代理,多線(xiàn)程采集器,圖形驗證碼識別,JS加密和解密,動(dòng)態(tài)Web采集器,字體反搜尋識別等. Scrapy和分布式爬蟲(chóng): Scrapy框架,Scrapy-redis組件,分布式爬蟲(chóng)等. 我們可以通過(guò)爬蟲(chóng)的高級知識點(diǎn)來(lái)處理大量反爬蟲(chóng)網(wǎng)站,并且Scrapy框架是使用它的專(zhuān)業(yè)爬蟲(chóng)框架可以快速提高我們的抓取程序的效率和速度. 此外,如果一臺計算機無(wú)法滿(mǎn)足您的需求,我們可以使用分布式爬網(wǎng)程序讓多臺計算機幫助您快速爬網(wǎng)數據. 從基本的采集器到商業(yè)應用程序采集器,這套課程都可以滿(mǎn)足您的所有需求! [課程服務(wù)]獨家付費社區+每個(gè)星期三的討論會(huì )+ 1v1問(wèn)答

威盟智能營(yíng)銷(xiāo): 企業(yè)數據嵌入和干貨實(shí)現

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

  
  在數據驅動(dòng)的精細營(yíng)銷(xiāo)時(shí)代,越來(lái)越多的公司開(kāi)始重視數據的價(jià)值. 但是,由于落后的技術(shù)和過(guò)時(shí)的方法,傳統數據統計服務(wù)提供者提供的簡(jiǎn)單粗粒度的數據采集服務(wù)(例如訪(fǎng)問(wèn),活躍用戶(hù)和注冊)無(wú)法滿(mǎn)足現代企業(yè)的需求. Weimob Smart Marketing集成了兩種掩埋技術(shù): 代碼掩埋點(diǎn)和無(wú)掩埋點(diǎn),并根據公司的要求推出了兩項數據采集技術(shù)服務(wù),即“全鏈接掩埋點(diǎn)解決方案”和“智能站點(diǎn)構建系統”,以幫助公司實(shí)現最大化靈活,完善的數據采集功能的部署將幫助公司準確,全面地采集數據,并在數據資產(chǎn)洞察方面邁出關(guān)鍵的一步.
  
  1. 自定義智能掩埋點(diǎn),精細采集所有場(chǎng)景
  數據采集是數據分析的基礎,埋葬點(diǎn)是主要的采集方法. 智能營(yíng)銷(xiāo)前端代碼掩埋點(diǎn)+后端API對接的雙數據掩埋系統為企業(yè)提供了全鏈接數據采集技術(shù)解決方案,可以輕松突破過(guò)去數據掩埋點(diǎn)的困惑,數據團隊和業(yè)務(wù)團隊之間的協(xié)作,以及缺乏有效的技術(shù)手段等待痛點(diǎn). 它可以幫助企業(yè)“進(jìn)行詳細而準確的數據采集”,同時(shí)降低研發(fā)人員的成本. 同時(shí),為了實(shí)現最大程度的定制化和靈活的數據采集,Weimob Smart Marketing與百度統計SDK和渠道參數高度兼容,并與百度統計共享相同的參數名稱(chēng),從而降低了學(xué)習和部署成本. 企業(yè).
  1. 靈活部署前端代碼,動(dòng)態(tài)監控和深度采集
  在前端,Smart Marketing使用代碼嵌入技術(shù)為公司提供了高度靈活和智能的數據嵌入和采集解決方案: 當公司在前端頁(yè)面上初始化SDK代碼時(shí),它將執行頁(yè)面PV, UV,并訪(fǎng)問(wèn)非嵌入式數據統計信息(例如時(shí)間),并支持多頁(yè)和單頁(yè)應用程序.
  
  此外,當用戶(hù)觸發(fā)公司指定的業(yè)務(wù)行為和用戶(hù)行為時(shí),將在相應的邏輯中調用內置數據接口以將數據發(fā)送給公司,公司可以動(dòng)態(tài)查看用戶(hù)的行為數據在后臺實(shí)時(shí)顯示.
  
  例如,當企業(yè)想要監視移動(dòng)官方網(wǎng)站上某個(gè)按鈕的點(diǎn)擊次數時(shí),可以在按鈕的相應功能中執行SDK的掩埋方法: 例如,當按鈕A已被單擊,您可以監視按鈕單擊事件并動(dòng)態(tài)返回相應的數據:
  A_clickA
  通過(guò)在智能營(yíng)銷(xiāo)的前端部署復雜的用戶(hù)數據采集系統,公司可以拆分不同的站點(diǎn)和不同的促銷(xiāo)渠道,查看和監視從用戶(hù)訪(fǎng)問(wèn),瀏覽,單擊,在線(xiàn)咨詢(xún)和填寫(xiě)到整個(gè)交互過(guò)程. 形式,并借助漏斗分析和路徑分析等分析模型,將分析降低到流量分布和流量水平,深入了解用戶(hù)行為與用戶(hù)價(jià)值增強之間的潛在關(guān)系,并使用數據分析來(lái)持續推動(dòng)產(chǎn)品升級并改善整體營(yíng)銷(xiāo)效果.
  2. 后端數據已完全集成,準確的洞察力有助于決策
  隨著(zhù)公司產(chǎn)品線(xiàn)的日益成熟,單個(gè)前端用戶(hù)行為的捕獲和采集顯然無(wú)法滿(mǎn)足公司對數據分析的需求. 該公司需要為用戶(hù)數據構建完善的分析系統. 例如,當公司進(jìn)行在線(xiàn)促銷(xiāo)活動(dòng)時(shí),某些用戶(hù)單擊以觸發(fā)“添加到購物車(chē)”行為,但他們并未下訂單以完成實(shí)際的購買(mǎi)和消費行為. 這時(shí),他們僅依靠前端來(lái)采集用戶(hù)行為數據將導致單面數據問(wèn)題,這可以通過(guò)實(shí)現有關(guān)系統實(shí)時(shí)狀態(tài)的統計數據(例如實(shí)際訂單量)來(lái)解決后端嵌入式技術(shù)實(shí)現交易額和交易額.
  
  在這里,Smart Marketing通過(guò)API訪(fǎng)問(wèn)為企業(yè)提供了一個(gè)便捷的后端數據采集解決方案: 僅需要根據規范管理后端的用戶(hù)屬性和用戶(hù)行為事件,企業(yè)就可以實(shí)現智能營(yíng)銷(xiāo)和企業(yè)CRM,客戶(hù)服務(wù)系統,ERP和其他自己的業(yè)務(wù)系統的無(wú)縫連接. 根據企業(yè)的實(shí)際業(yè)務(wù)需求實(shí)時(shí)采集數據,在保證核心數據準確性和安全性的前提下,多源數據整合后的準確分析,為企業(yè)制定營(yíng)銷(xiāo)策略提供了依據.
  2. 著(zhù)陸頁(yè)的可視化,準確的營(yíng)銷(xiāo)分析和優(yōu)化
  在廣告和事件等在線(xiàn)營(yíng)銷(xiāo)方案中,公司通常會(huì )在同一目標頁(yè)面上放置多個(gè)渠道. 這時(shí),細化頁(yè)面數據分析的實(shí)現對于優(yōu)化整體營(yíng)銷(xiāo)策略至關(guān)重要. 然而,為每個(gè)登陸頁(yè)面執行預先埋入代碼的動(dòng)作,付出很高的研發(fā)成本顯然是不現實(shí)的. 因此,基于封裝的代碼嵌入技術(shù)并支持企業(yè)一鍵式調用的智能營(yíng)銷(xiāo)智能網(wǎng)站建設系統可以完全滿(mǎn)足企業(yè)的需求.
  
  企業(yè)可以通過(guò)使用智能網(wǎng)站構建系統和多個(gè)可視組件,在3-5分鐘內構建滿(mǎn)足當前業(yè)務(wù)需求的登錄頁(yè)面. 啟動(dòng)頁(yè)面后,企業(yè)可以完全查看頁(yè)面PV和UV號等流量數據,而無(wú)需進(jìn)行二次開(kāi)發(fā);轉換行為數據,例如表單提交和手機號碼授權;諸如人均停留時(shí)間和頁(yè)面轉發(fā)時(shí)間等訪(fǎng)問(wèn)者行為之類(lèi)的多維數據,為企業(yè)實(shí)現單個(gè)頁(yè)面或控件的分析提供了精確的數據基礎,并優(yōu)化了整體營(yíng)銷(xiāo)效果.
  
  同時(shí),智能網(wǎng)站建設系統還提供強大的數據可視化技術(shù)功能,以支持企業(yè)在日,周,月等多個(gè)時(shí)間領(lǐng)域實(shí)現數據統計. 然后,通過(guò)多種類(lèi)型的可視化圖表(例如熱圖,訪(fǎng)問(wèn)者行為趨勢和頁(yè)面報告),清晰地復制頁(yè)面不同部分的精煉數據,例如客戶(hù)點(diǎn)擊次數,停留時(shí)間,訪(fǎng)問(wèn)深度和來(lái)源屬性,幫助公司更直觀(guān)地了解營(yíng)銷(xiāo)效果.
  
  3. 結論
  在企業(yè)數據采集,傳輸,建模/存儲,挖掘和可視化的數據處理路徑中,數據采集是第一步,也是其關(guān)鍵. Smart Marketing之前和之后的全鏈接數據采集解決方案和智能網(wǎng)站構建系統可滿(mǎn)足不同公司,不同平臺和不同部門(mén)對數據采集的需求,并與客戶(hù),營(yíng)銷(xiāo),業(yè)務(wù)和其他數據連接以實(shí)現正確的用戶(hù)基于個(gè)性化屬性,行為事件的精確標記和分組,并使用自動(dòng)化營(yíng)銷(xiāo)技術(shù)和完整的生命周期模型進(jìn)行精確營(yíng)銷(xiāo),并真正實(shí)現數據的營(yíng)銷(xiāo)授權. 查看全部

  
  在數據驅動(dòng)的精細營(yíng)銷(xiāo)時(shí)代,越來(lái)越多的公司開(kāi)始重視數據的價(jià)值. 但是,由于落后的技術(shù)和過(guò)時(shí)的方法,傳統數據統計服務(wù)提供者提供的簡(jiǎn)單粗粒度的數據采集服務(wù)(例如訪(fǎng)問(wèn),活躍用戶(hù)和注冊)無(wú)法滿(mǎn)足現代企業(yè)的需求. Weimob Smart Marketing集成了兩種掩埋技術(shù): 代碼掩埋點(diǎn)和無(wú)掩埋點(diǎn),并根據公司的要求推出了兩項數據采集技術(shù)服務(wù),即“全鏈接掩埋點(diǎn)解決方案”和“智能站點(diǎn)構建系統”,以幫助公司實(shí)現最大化靈活,完善的數據采集功能的部署將幫助公司準確,全面地采集數據,并在數據資產(chǎn)洞察方面邁出關(guān)鍵的一步.
  
  1. 自定義智能掩埋點(diǎn),精細采集所有場(chǎng)景
  數據采集是數據分析的基礎,埋葬點(diǎn)是主要的采集方法. 智能營(yíng)銷(xiāo)前端代碼掩埋點(diǎn)+后端API對接的雙數據掩埋系統為企業(yè)提供了全鏈接數據采集技術(shù)解決方案,可以輕松突破過(guò)去數據掩埋點(diǎn)的困惑,數據團隊和業(yè)務(wù)團隊之間的協(xié)作,以及缺乏有效的技術(shù)手段等待痛點(diǎn). 它可以幫助企業(yè)“進(jìn)行詳細而準確的數據采集”,同時(shí)降低研發(fā)人員的成本. 同時(shí),為了實(shí)現最大程度的定制化和靈活的數據采集,Weimob Smart Marketing與百度統計SDK和渠道參數高度兼容,并與百度統計共享相同的參數名稱(chēng),從而降低了學(xué)習和部署成本. 企業(yè).
  1. 靈活部署前端代碼,動(dòng)態(tài)監控和深度采集
  在前端,Smart Marketing使用代碼嵌入技術(shù)為公司提供了高度靈活和智能的數據嵌入和采集解決方案: 當公司在前端頁(yè)面上初始化SDK代碼時(shí),它將執行頁(yè)面PV, UV,并訪(fǎng)問(wèn)非嵌入式數據統計信息(例如時(shí)間),并支持多頁(yè)和單頁(yè)應用程序.
  
  此外,當用戶(hù)觸發(fā)公司指定的業(yè)務(wù)行為和用戶(hù)行為時(shí),將在相應的邏輯中調用內置數據接口以將數據發(fā)送給公司,公司可以動(dòng)態(tài)查看用戶(hù)的行為數據在后臺實(shí)時(shí)顯示.
  
  例如,當企業(yè)想要監視移動(dòng)官方網(wǎng)站上某個(gè)按鈕的點(diǎn)擊次數時(shí),可以在按鈕的相應功能中執行SDK的掩埋方法: 例如,當按鈕A已被單擊,您可以監視按鈕單擊事件并動(dòng)態(tài)返回相應的數據:
  A_clickA
  通過(guò)在智能營(yíng)銷(xiāo)的前端部署復雜的用戶(hù)數據采集系統,公司可以拆分不同的站點(diǎn)和不同的促銷(xiāo)渠道,查看和監視從用戶(hù)訪(fǎng)問(wèn),瀏覽,單擊,在線(xiàn)咨詢(xún)和填寫(xiě)到整個(gè)交互過(guò)程. 形式,并借助漏斗分析和路徑分析等分析模型,將分析降低到流量分布和流量水平,深入了解用戶(hù)行為與用戶(hù)價(jià)值增強之間的潛在關(guān)系,并使用數據分析來(lái)持續推動(dòng)產(chǎn)品升級并改善整體營(yíng)銷(xiāo)效果.
  2. 后端數據已完全集成,準確的洞察力有助于決策
  隨著(zhù)公司產(chǎn)品線(xiàn)的日益成熟,單個(gè)前端用戶(hù)行為的捕獲和采集顯然無(wú)法滿(mǎn)足公司對數據分析的需求. 該公司需要為用戶(hù)數據構建完善的分析系統. 例如,當公司進(jìn)行在線(xiàn)促銷(xiāo)活動(dòng)時(shí),某些用戶(hù)單擊以觸發(fā)“添加到購物車(chē)”行為,但他們并未下訂單以完成實(shí)際的購買(mǎi)和消費行為. 這時(shí),他們僅依靠前端來(lái)采集用戶(hù)行為數據將導致單面數據問(wèn)題,這可以通過(guò)實(shí)現有關(guān)系統實(shí)時(shí)狀態(tài)的統計數據(例如實(shí)際訂單量)來(lái)解決后端嵌入式技術(shù)實(shí)現交易額和交易額.
  
  在這里,Smart Marketing通過(guò)API訪(fǎng)問(wèn)為企業(yè)提供了一個(gè)便捷的后端數據采集解決方案: 僅需要根據規范管理后端的用戶(hù)屬性和用戶(hù)行為事件,企業(yè)就可以實(shí)現智能營(yíng)銷(xiāo)和企業(yè)CRM,客戶(hù)服務(wù)系統,ERP和其他自己的業(yè)務(wù)系統的無(wú)縫連接. 根據企業(yè)的實(shí)際業(yè)務(wù)需求實(shí)時(shí)采集數據,在保證核心數據準確性和安全性的前提下,多源數據整合后的準確分析,為企業(yè)制定營(yíng)銷(xiāo)策略提供了依據.
  2. 著(zhù)陸頁(yè)的可視化,準確的營(yíng)銷(xiāo)分析和優(yōu)化
  在廣告和事件等在線(xiàn)營(yíng)銷(xiāo)方案中,公司通常會(huì )在同一目標頁(yè)面上放置多個(gè)渠道. 這時(shí),細化頁(yè)面數據分析的實(shí)現對于優(yōu)化整體營(yíng)銷(xiāo)策略至關(guān)重要. 然而,為每個(gè)登陸頁(yè)面執行預先埋入代碼的動(dòng)作,付出很高的研發(fā)成本顯然是不現實(shí)的. 因此,基于封裝的代碼嵌入技術(shù)并支持企業(yè)一鍵式調用的智能營(yíng)銷(xiāo)智能網(wǎng)站建設系統可以完全滿(mǎn)足企業(yè)的需求.
  
  企業(yè)可以通過(guò)使用智能網(wǎng)站構建系統和多個(gè)可視組件,在3-5分鐘內構建滿(mǎn)足當前業(yè)務(wù)需求的登錄頁(yè)面. 啟動(dòng)頁(yè)面后,企業(yè)可以完全查看頁(yè)面PV和UV號等流量數據,而無(wú)需進(jìn)行二次開(kāi)發(fā);轉換行為數據,例如表單提交和手機號碼授權;諸如人均停留時(shí)間和頁(yè)面轉發(fā)時(shí)間等訪(fǎng)問(wèn)者行為之類(lèi)的多維數據,為企業(yè)實(shí)現單個(gè)頁(yè)面或控件的分析提供了精確的數據基礎,并優(yōu)化了整體營(yíng)銷(xiāo)效果.
  
  同時(shí),智能網(wǎng)站建設系統還提供強大的數據可視化技術(shù)功能,以支持企業(yè)在日,周,月等多個(gè)時(shí)間領(lǐng)域實(shí)現數據統計. 然后,通過(guò)多種類(lèi)型的可視化圖表(例如熱圖,訪(fǎng)問(wèn)者行為趨勢和頁(yè)面報告),清晰地復制頁(yè)面不同部分的精煉數據,例如客戶(hù)點(diǎn)擊次數,停留時(shí)間,訪(fǎng)問(wèn)深度和來(lái)源屬性,幫助公司更直觀(guān)地了解營(yíng)銷(xiāo)效果.
  
  3. 結論
  在企業(yè)數據采集,傳輸,建模/存儲,挖掘和可視化的數據處理路徑中,數據采集是第一步,也是其關(guān)鍵. Smart Marketing之前和之后的全鏈接數據采集解決方案和智能網(wǎng)站構建系統可滿(mǎn)足不同公司,不同平臺和不同部門(mén)對數據采集的需求,并與客戶(hù),營(yíng)銷(xiāo),業(yè)務(wù)和其他數據連接以實(shí)現正確的用戶(hù)基于個(gè)性化屬性,行為事件的精確標記和分組,并使用自動(dòng)化營(yíng)銷(xiāo)技術(shù)和完整的生命周期模型進(jìn)行精確營(yíng)銷(xiāo),并真正實(shí)現數據的營(yíng)銷(xiāo)授權.

太棒了!使用新界面抓取微信公眾號的所有文章

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

  
  伙計們,您一定遭受了采集微信公眾號的困擾!特別! ! ! ! ! !公開(kāi)帳戶(hù)歷史記錄信息! ! !除了通過(guò)中間代理采集APP外,實(shí)際上沒(méi)有任何技巧可以獲取數據!
  直到···········
  前一段時(shí)間,微信在當晚正式發(fā)布了一篇文章:
  
  媽媽?zhuān)∵@不是始終需要的采集接口!嘿,上帝也幫助我!來(lái)...讓我們談?wù)勔话惴椒?
  1. 首先,您需要一個(gè)訂閱帳戶(hù)!我不知道官方帳戶(hù)和企業(yè)帳戶(hù)是否可行. 因為我沒(méi)有...
  2. 接下來(lái),您需要登錄!
  我沒(méi)有仔細查看微信官方帳戶(hù)登錄.
  暫且不說(shuō),我使用硒的方法來(lái)驅動(dòng)瀏覽器獲取cookie以達到登錄效果.
  3. 使用請求攜帶cookie,登錄以獲取URL的令牌(這很重要,您需要在每個(gè)請求中都帶上它),如下所示:
  
  4. 使用獲取的令牌和官方賬號的微信ID(即數字+字符)來(lái)獲取官方賬號的偽造品(可以了解官方賬號的身份)
  
  當我們搜索官方帳戶(hù)時(shí),瀏覽器使用GET方法向帶參數的紅色框中的URL發(fā)起了請求. 請求參數如下:
  
  請求如下:
  
  代碼如下:
  
  好的,讓我們繼續:
  5. 單擊我們搜索的官方帳戶(hù)后,發(fā)現了另一個(gè)請求:
  
  請求參數如下:
  
  返回結果如下:
  
  代碼如下:
  
  好吧···最后一步,要獲取所有文章,您需要處理翻頁(yè). 翻頁(yè)請求如下:
  
  我可能看了一眼. 極客學(xué)院的每一頁(yè)至少有5條信息,即文章總數/ 5 /有多少頁(yè). 但是有小數,我們將其四舍五入,然后加1以得到總頁(yè)數.
  代碼如下:
  
  item.get(‘link’)是我們需要的官方帳戶(hù)文章鏈接!繼續請求該URL以提取其中的內容!
  結束. 查看全部

  
  伙計們,您一定遭受了采集微信公眾號的困擾!特別! ! ! ! ! !公開(kāi)帳戶(hù)歷史記錄信息! ! !除了通過(guò)中間代理采集APP外,實(shí)際上沒(méi)有任何技巧可以獲取數據!
  直到···········
  前一段時(shí)間,微信在當晚正式發(fā)布了一篇文章:
  
  媽媽?zhuān)∵@不是始終需要的采集接口!嘿,上帝也幫助我!來(lái)...讓我們談?wù)勔话惴椒?
  1. 首先,您需要一個(gè)訂閱帳戶(hù)!我不知道官方帳戶(hù)和企業(yè)帳戶(hù)是否可行. 因為我沒(méi)有...
  2. 接下來(lái),您需要登錄!
  我沒(méi)有仔細查看微信官方帳戶(hù)登錄.
  暫且不說(shuō),我使用硒的方法來(lái)驅動(dòng)瀏覽器獲取cookie以達到登錄效果.
  3. 使用請求攜帶cookie,登錄以獲取URL的令牌(這很重要,您需要在每個(gè)請求中都帶上它),如下所示:
  
  4. 使用獲取的令牌和官方賬號的微信ID(即數字+字符)來(lái)獲取官方賬號的偽造品(可以了解官方賬號的身份)
  
  當我們搜索官方帳戶(hù)時(shí),瀏覽器使用GET方法向帶參數的紅色框中的URL發(fā)起了請求. 請求參數如下:
  
  請求如下:
  
  代碼如下:
  
  好的,讓我們繼續:
  5. 單擊我們搜索的官方帳戶(hù)后,發(fā)現了另一個(gè)請求:
  
  請求參數如下:
  
  返回結果如下:
  
  代碼如下:
  
  好吧···最后一步,要獲取所有文章,您需要處理翻頁(yè). 翻頁(yè)請求如下:
  
  我可能看了一眼. 極客學(xué)院的每一頁(yè)至少有5條信息,即文章總數/ 5 /有多少頁(yè). 但是有小數,我們將其四舍五入,然后加1以得到總頁(yè)數.
  代碼如下:
  
  item.get(‘link’)是我們需要的官方帳戶(hù)文章鏈接!繼續請求該URL以提取其中的內容!
  結束.

關(guān)于數據采集的那些事情

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

  數據采集是數據分析的基礎,掩埋點(diǎn)是最重要的采集方法. 那么數據掩埋點(diǎn)集合到底是什么?我們主要從三個(gè)方面來(lái)研究它: 埋葬點(diǎn)是什么,如何設計埋葬點(diǎn),以及埋葬點(diǎn)的應用.
  首先,數據采集和常見(jiàn)數據問(wèn)題
  1. 數據采集
  一切都必須有目的和目標,數據分析也不例外. 在進(jìn)行數據分析之前,我們需要考慮為什么我們需要進(jìn)行數據分析?您希望通過(guò)此數據分析為公司解決哪些問(wèn)題?
  有很多采集數據的方法,并且隱埋點(diǎn)采集是其中非常重要的一部分. 它是c-end和b-end產(chǎn)品的主要采集方法. 顧名思義,數據采集就是采集相應的數據,即整個(gè)數據流. 起點(diǎn)是不正確的采集(對還是錯),直接決定數據的廣度和質(zhì)量,并影響所有后續鏈接. 在數據采集有效性和完整性較差的公司中,業(yè)務(wù)中發(fā)現的數據通常會(huì )發(fā)生重大變化.
  數據處理通常包括以下5個(gè)步驟:
  
  2. 常見(jiàn)數據問(wèn)題
  大致了解了數據采集及其體系結構之后,讓我們看一下我們在工作中遇到的問(wèn)題,其中有多少與數據采集鏈接有關(guān):
 ?。?)數據與背景之間存在較大差距,數據不準確-統計口徑不同,掩埋點(diǎn)的定義不同,采集方法帶來(lái)誤差;
 ?。?)當我要使用它時(shí),沒(méi)有我想要的數據-沒(méi)有提及數據采集要求,并且掩埋點(diǎn)不正確且不完整;
 ?。?)事件太多,含義不明確-埋點(diǎn)設計方法,埋點(diǎn)更新迭代的規則和維護;
 ?。?)我不知道在分析數據時(shí)要看哪些數據和指標-數據的定義不清楚并且缺乏分析思路
  我們需要從根本上解決問(wèn)題: 將館藏視為獨立的研發(fā)業(yè)務(wù),而不是產(chǎn)品開(kāi)發(fā)的附件.
  
  第二,什么是掩埋點(diǎn)
  1. 什么是埋藏點(diǎn)
  所謂的掩埋點(diǎn)是數據采集領(lǐng)域中的一個(gè)術(shù)語(yǔ). 它的學(xué)名叫“事件跟蹤”,對應的英文是“事件跟蹤”,它是指捕獲,處理和發(fā)送特定用戶(hù)行為或事件的相關(guān)技術(shù)和實(shí)現過(guò)程.
  數據埋藏點(diǎn)是數據分析師,數據產(chǎn)品經(jīng)理和數據操作. 根據業(yè)務(wù)需求或產(chǎn)品需求,開(kāi)發(fā)每個(gè)用戶(hù)行為事件的對應位置并掩埋點(diǎn),并通過(guò)SDK報告掩埋點(diǎn)的數據結果,并對記錄進(jìn)行匯總. 分析數據后,它可以促進(jìn)產(chǎn)品優(yōu)化并指導操作.
  該過(guò)程隨附規范. 通過(guò)該定義,我們看到特定的用戶(hù)行為和事件是我們采集的重點(diǎn),并且我們還需要處理和發(fā)送相關(guān)的技術(shù)和實(shí)現過(guò)程;數據掩埋點(diǎn)是為產(chǎn)品服務(wù)的,它來(lái)自產(chǎn)品. 因此,它與產(chǎn)品密切相關(guān),而埋藏點(diǎn)在于具體的實(shí)戰過(guò)程,這與每個(gè)人對基礎數據的理解有關(guān).
  
  2. 為什么要埋點(diǎn)?
  掩埋點(diǎn)的目的是對產(chǎn)品進(jìn)行全方位的連續跟蹤,并通過(guò)數據分析不斷地指導和優(yōu)化產(chǎn)品. 數據掩埋點(diǎn)的質(zhì)量直接影響數據,產(chǎn)品,操作等的質(zhì)量.
 ?。?)數據驅動(dòng)的埋藏點(diǎn)深入分析了交通分布和流量水平的深度,通過(guò)統計分析對宏觀(guān)指標進(jìn)行了深入分析,發(fā)現了指標背后的問(wèn)題,并深入了解了用戶(hù)行為與增值之間的關(guān)系潛在相關(guān).
 ?。?)產(chǎn)品優(yōu)化-對于產(chǎn)品,用戶(hù)在產(chǎn)品中的工作方式,在產(chǎn)品中停留的時(shí)間以及任何異常情況都需要引起注意. 這些問(wèn)題可以通過(guò)掩埋點(diǎn)來(lái)實(shí)現.
 ?。?)精致的運營(yíng)掩埋點(diǎn)可以實(shí)現整個(gè)產(chǎn)品生命周期,流量質(zhì)量和不同來(lái)源的分布,人群的行為特征和關(guān)系以及用戶(hù)行為與提升業(yè)務(wù)價(jià)值之間的潛在關(guān)聯(lián)
  3. 如何掩埋點(diǎn)
  掩埋點(diǎn)有哪些方法?目前,大多數公司使用客戶(hù)端和服務(wù)器的組合.
  
  精度: 代碼掩埋點(diǎn)>可視化掩埋點(diǎn)>完全掩埋點(diǎn)
  三,掩埋點(diǎn)的框架和設計
  1. 掩埋點(diǎn)集合的頂層設計
  所謂的頂層設計是弄清楚如何掩埋點(diǎn),使用哪種方法,上載機制是什么,如何定義它,如何實(shí)現它,等等. 我們遵循唯一性,可伸縮性,一致性等原則. 我們必須設計一些常見(jiàn)的字段和生成機制,例如: cid,idfa,idfv等.
  用戶(hù)識別: 用戶(hù)識別機制的混亂將導致兩個(gè)結果: 一個(gè)是不正確的數據,例如UV數據不正確;另一個(gè)是不正確的數據. 另一個(gè)是渠道分析鏈接中的異常. 因此,應為: 嚴格規范ID自身的識別機制; b. 跨平臺用戶(hù)識別.
  相似的抽象: 相似的抽象包括事件抽象和屬性抽象. 事件抽象是指瀏覽事件和點(diǎn)擊事件的集合;屬性抽象意味著(zhù)將大多數可重復使用的場(chǎng)景合并以增加源差異.
  一致集合: 一致集合包括兩點(diǎn): 一是跨平臺頁(yè)面的一致命名,其二是按鈕的一致命名. 設置嵌入點(diǎn)本身的過(guò)程就是對基礎數據進(jìn)行標準化的過(guò)程,因此一致性特別重要. 只有這樣,才可以使用它.
  頻道配置: 頻道主要指促銷(xiāo)頻道,登錄頁(yè)面,Web促銷(xiāo)頁(yè)面,APP促銷(xiāo)頁(yè)面等. 此登錄頁(yè)面的配置必須具有統一的規范和標準
  2. 埋點(diǎn)采集事件和屬性設計
  在設計屬性和事件時(shí),我們需要知道哪些經(jīng)常更改,哪些不更改,哪些是業(yè)務(wù)行為以及哪些是基本屬性. 基于基本屬性事件,我們認為必須采集屬性,但是屬性中的事件屬性會(huì )根據不同業(yè)務(wù)進(jìn)行調整. 因此,我們可以將掩埋點(diǎn)集合分為協(xié)議層和業(yè)務(wù)層掩埋點(diǎn).
  業(yè)務(wù)分解: 整理并確認業(yè)務(wù)流程,操作路徑和不同的細分方案,并定義用戶(hù)行為路徑. 分析指標: 定義特定事件,需要數據的核心業(yè)務(wù)指標進(jìn)行事件設計: APP啟動(dòng),退出,頁(yè)面瀏覽,事件暴露單擊屬性設計: 用戶(hù)屬性,事件屬性,對象屬性,環(huán)境屬性
  3. 數據采集事件和屬性設計
  
  Ev事件的命名也遵循一些規則. 當同一類(lèi)型的函數出現在不同的頁(yè)面或位置時(shí),將根據函數名稱(chēng)進(jìn)行命名,并在ev參數中區分頁(yè)面和位置. 當僅單擊按鈕時(shí),它以按鈕名稱(chēng)命名.
  ev事件格式: ev分為ev標識和ev參數
  規則:
  使用“#”在ev標記和ev參數(一級連接器)之間進(jìn)行連接
  使用“ /”在ev參數和ev參數(二級連接器)之間進(jìn)行連接
  ev參數使用key = value的結構. 當一個(gè)鍵對應多個(gè)值時(shí),請使用“,”在value1和value2(三級連接器)之間進(jìn)行連接
  當埋點(diǎn)只有ev標記而沒(méi)有ev參數時(shí),則無(wú)需帶#
  備注:
  ev ID: 作為掩埋點(diǎn)的唯一ID,用于區分掩埋點(diǎn)的位置和屬性. 它是不可變的,不能修改.
  ev參數: 埋點(diǎn)需要返回的參數,ev參數的順序是可變的,可以修改)
  調整應用嵌入點(diǎn)后,ev標記保持不變,并且僅修改后續嵌入點(diǎn)參數(參數值更改或參數類(lèi)型增加)
  常規嵌入點(diǎn)文檔中收錄的圖紙的名稱(chēng)和功能:
  A. 暴露掩埋點(diǎn)摘要;
  B. 點(diǎn)擊和瀏覽隱藏點(diǎn)的摘要;
  C. 失效埋點(diǎn)匯總: 通常會(huì )記錄失效點(diǎn)的失效版本或時(shí)間;
  與D,PC和M頁(yè)面的嵌入點(diǎn)相對應的pageid;
  E. 在線(xiàn)每個(gè)版本的時(shí)間記錄;
  在埋點(diǎn)文檔中,所有列名稱(chēng)和函數都包括:
  
  4. 基于埋點(diǎn)的統計
  如何使用隱藏的統計數據查找隱藏的ev事件:
 ?。?)指定掩埋點(diǎn)的類(lèi)型(單擊/曝光/瀏覽)-過(guò)濾類(lèi)型字段
 ?。?)指定按鈕所屬的頁(yè)面(頁(yè)面或功能)-過(guò)濾功能模塊字段
 ?。?)指定掩埋點(diǎn)事件的名稱(chēng)-過(guò)濾名稱(chēng)字段
 ?。?)知道ev標識符,您可以直接使用ev進(jìn)行過(guò)濾
  如何根據ev事件查詢(xún)統計信息: 當查詢(xún)按鈕單擊統計信息時(shí),您可以直接使用ev徽標進(jìn)行查詢(xún),并且當存在區別時(shí),可以限制掩埋點(diǎn)參數的值. 由于ev參數的順序不需要是可變的,因此在查詢(xún)統計信息時(shí),不能根據參數的順序對其進(jìn)行限制.
  四個(gè)應用程序-數據流的基礎
  
  1. 指標體系
  系統化指標可以整合不同指標和不同維度進(jìn)行全面分析,從而迅速發(fā)現當前產(chǎn)品和業(yè)務(wù)流程中存在的問(wèn)題.
  
  2. 可視化
  人類(lèi)對圖像信息的解釋比文本更有效. 可視化對于數據分析極為重要. 使用數據可視化可以揭示數據中的復雜關(guān)系.
  
  3. 提供了埋點(diǎn)元信息api
  數據采集服務(wù)會(huì )將采集的掩埋點(diǎn)寫(xiě)入Kafka. 為了滿(mǎn)足每個(gè)企業(yè)的實(shí)時(shí)數據消耗需求,我們?yōu)槊總€(gè)企業(yè)提供了單獨的Kafka,流量分配模塊將定期讀取掩埋點(diǎn)管理平臺. 所提供的元信息會(huì )在Kafka中為每個(gè)業(yè)務(wù)實(shí)時(shí)分配流量.
  
  數據采集就像設計產(chǎn)品一樣,不能過(guò)多. 我們不僅要留出擴展的空間,還應該考慮數據是否完整,不完整,詳細,穩定和快速. 查看全部

  數據采集是數據分析的基礎,掩埋點(diǎn)是最重要的采集方法. 那么數據掩埋點(diǎn)集合到底是什么?我們主要從三個(gè)方面來(lái)研究它: 埋葬點(diǎn)是什么,如何設計埋葬點(diǎn),以及埋葬點(diǎn)的應用.
  首先,數據采集和常見(jiàn)數據問(wèn)題
  1. 數據采集
  一切都必須有目的和目標,數據分析也不例外. 在進(jìn)行數據分析之前,我們需要考慮為什么我們需要進(jìn)行數據分析?您希望通過(guò)此數據分析為公司解決哪些問(wèn)題?
  有很多采集數據的方法,并且隱埋點(diǎn)采集是其中非常重要的一部分. 它是c-end和b-end產(chǎn)品的主要采集方法. 顧名思義,數據采集就是采集相應的數據,即整個(gè)數據流. 起點(diǎn)是不正確的采集(對還是錯),直接決定數據的廣度和質(zhì)量,并影響所有后續鏈接. 在數據采集有效性和完整性較差的公司中,業(yè)務(wù)中發(fā)現的數據通常會(huì )發(fā)生重大變化.
  數據處理通常包括以下5個(gè)步驟:
  
  2. 常見(jiàn)數據問(wèn)題
  大致了解了數據采集及其體系結構之后,讓我們看一下我們在工作中遇到的問(wèn)題,其中有多少與數據采集鏈接有關(guān):
 ?。?)數據與背景之間存在較大差距,數據不準確-統計口徑不同,掩埋點(diǎn)的定義不同,采集方法帶來(lái)誤差;
 ?。?)當我要使用它時(shí),沒(méi)有我想要的數據-沒(méi)有提及數據采集要求,并且掩埋點(diǎn)不正確且不完整;
 ?。?)事件太多,含義不明確-埋點(diǎn)設計方法,埋點(diǎn)更新迭代的規則和維護;
 ?。?)我不知道在分析數據時(shí)要看哪些數據和指標-數據的定義不清楚并且缺乏分析思路
  我們需要從根本上解決問(wèn)題: 將館藏視為獨立的研發(fā)業(yè)務(wù),而不是產(chǎn)品開(kāi)發(fā)的附件.
  
  第二,什么是掩埋點(diǎn)
  1. 什么是埋藏點(diǎn)
  所謂的掩埋點(diǎn)是數據采集領(lǐng)域中的一個(gè)術(shù)語(yǔ). 它的學(xué)名叫“事件跟蹤”,對應的英文是“事件跟蹤”,它是指捕獲,處理和發(fā)送特定用戶(hù)行為或事件的相關(guān)技術(shù)和實(shí)現過(guò)程.
  數據埋藏點(diǎn)是數據分析師,數據產(chǎn)品經(jīng)理和數據操作. 根據業(yè)務(wù)需求或產(chǎn)品需求,開(kāi)發(fā)每個(gè)用戶(hù)行為事件的對應位置并掩埋點(diǎn),并通過(guò)SDK報告掩埋點(diǎn)的數據結果,并對記錄進(jìn)行匯總. 分析數據后,它可以促進(jìn)產(chǎn)品優(yōu)化并指導操作.
  該過(guò)程隨附規范. 通過(guò)該定義,我們看到特定的用戶(hù)行為和事件是我們采集的重點(diǎn),并且我們還需要處理和發(fā)送相關(guān)的技術(shù)和實(shí)現過(guò)程;數據掩埋點(diǎn)是為產(chǎn)品服務(wù)的,它來(lái)自產(chǎn)品. 因此,它與產(chǎn)品密切相關(guān),而埋藏點(diǎn)在于具體的實(shí)戰過(guò)程,這與每個(gè)人對基礎數據的理解有關(guān).
  
  2. 為什么要埋點(diǎn)?
  掩埋點(diǎn)的目的是對產(chǎn)品進(jìn)行全方位的連續跟蹤,并通過(guò)數據分析不斷地指導和優(yōu)化產(chǎn)品. 數據掩埋點(diǎn)的質(zhì)量直接影響數據,產(chǎn)品,操作等的質(zhì)量.
 ?。?)數據驅動(dòng)的埋藏點(diǎn)深入分析了交通分布和流量水平的深度,通過(guò)統計分析對宏觀(guān)指標進(jìn)行了深入分析,發(fā)現了指標背后的問(wèn)題,并深入了解了用戶(hù)行為與增值之間的關(guān)系潛在相關(guān).
 ?。?)產(chǎn)品優(yōu)化-對于產(chǎn)品,用戶(hù)在產(chǎn)品中的工作方式,在產(chǎn)品中停留的時(shí)間以及任何異常情況都需要引起注意. 這些問(wèn)題可以通過(guò)掩埋點(diǎn)來(lái)實(shí)現.
 ?。?)精致的運營(yíng)掩埋點(diǎn)可以實(shí)現整個(gè)產(chǎn)品生命周期,流量質(zhì)量和不同來(lái)源的分布,人群的行為特征和關(guān)系以及用戶(hù)行為與提升業(yè)務(wù)價(jià)值之間的潛在關(guān)聯(lián)
  3. 如何掩埋點(diǎn)
  掩埋點(diǎn)有哪些方法?目前,大多數公司使用客戶(hù)端和服務(wù)器的組合.
  
  精度: 代碼掩埋點(diǎn)>可視化掩埋點(diǎn)>完全掩埋點(diǎn)
  三,掩埋點(diǎn)的框架和設計
  1. 掩埋點(diǎn)集合的頂層設計
  所謂的頂層設計是弄清楚如何掩埋點(diǎn),使用哪種方法,上載機制是什么,如何定義它,如何實(shí)現它,等等. 我們遵循唯一性,可伸縮性,一致性等原則. 我們必須設計一些常見(jiàn)的字段和生成機制,例如: cid,idfa,idfv等.
  用戶(hù)識別: 用戶(hù)識別機制的混亂將導致兩個(gè)結果: 一個(gè)是不正確的數據,例如UV數據不正確;另一個(gè)是不正確的數據. 另一個(gè)是渠道分析鏈接中的異常. 因此,應為: 嚴格規范ID自身的識別機制; b. 跨平臺用戶(hù)識別.
  相似的抽象: 相似的抽象包括事件抽象和屬性抽象. 事件抽象是指瀏覽事件和點(diǎn)擊事件的集合;屬性抽象意味著(zhù)將大多數可重復使用的場(chǎng)景合并以增加源差異.
  一致集合: 一致集合包括兩點(diǎn): 一是跨平臺頁(yè)面的一致命名,其二是按鈕的一致命名. 設置嵌入點(diǎn)本身的過(guò)程就是對基礎數據進(jìn)行標準化的過(guò)程,因此一致性特別重要. 只有這樣,才可以使用它.
  頻道配置: 頻道主要指促銷(xiāo)頻道,登錄頁(yè)面,Web促銷(xiāo)頁(yè)面,APP促銷(xiāo)頁(yè)面等. 此登錄頁(yè)面的配置必須具有統一的規范和標準
  2. 埋點(diǎn)采集事件和屬性設計
  在設計屬性和事件時(shí),我們需要知道哪些經(jīng)常更改,哪些不更改,哪些是業(yè)務(wù)行為以及哪些是基本屬性. 基于基本屬性事件,我們認為必須采集屬性,但是屬性中的事件屬性會(huì )根據不同業(yè)務(wù)進(jìn)行調整. 因此,我們可以將掩埋點(diǎn)集合分為協(xié)議層和業(yè)務(wù)層掩埋點(diǎn).
  業(yè)務(wù)分解: 整理并確認業(yè)務(wù)流程,操作路徑和不同的細分方案,并定義用戶(hù)行為路徑. 分析指標: 定義特定事件,需要數據的核心業(yè)務(wù)指標進(jìn)行事件設計: APP啟動(dòng),退出,頁(yè)面瀏覽,事件暴露單擊屬性設計: 用戶(hù)屬性,事件屬性,對象屬性,環(huán)境屬性
  3. 數據采集事件和屬性設計
  
  Ev事件的命名也遵循一些規則. 當同一類(lèi)型的函數出現在不同的頁(yè)面或位置時(shí),將根據函數名稱(chēng)進(jìn)行命名,并在ev參數中區分頁(yè)面和位置. 當僅單擊按鈕時(shí),它以按鈕名稱(chēng)命名.
  ev事件格式: ev分為ev標識和ev參數
  規則:
  使用“#”在ev標記和ev參數(一級連接器)之間進(jìn)行連接
  使用“ /”在ev參數和ev參數(二級連接器)之間進(jìn)行連接
  ev參數使用key = value的結構. 當一個(gè)鍵對應多個(gè)值時(shí),請使用“,”在value1和value2(三級連接器)之間進(jìn)行連接
  當埋點(diǎn)只有ev標記而沒(méi)有ev參數時(shí),則無(wú)需帶#
  備注:
  ev ID: 作為掩埋點(diǎn)的唯一ID,用于區分掩埋點(diǎn)的位置和屬性. 它是不可變的,不能修改.
  ev參數: 埋點(diǎn)需要返回的參數,ev參數的順序是可變的,可以修改)
  調整應用嵌入點(diǎn)后,ev標記保持不變,并且僅修改后續嵌入點(diǎn)參數(參數值更改或參數類(lèi)型增加)
  常規嵌入點(diǎn)文檔中收錄的圖紙的名稱(chēng)和功能:
  A. 暴露掩埋點(diǎn)摘要;
  B. 點(diǎn)擊和瀏覽隱藏點(diǎn)的摘要;
  C. 失效埋點(diǎn)匯總: 通常會(huì )記錄失效點(diǎn)的失效版本或時(shí)間;
  與D,PC和M頁(yè)面的嵌入點(diǎn)相對應的pageid;
  E. 在線(xiàn)每個(gè)版本的時(shí)間記錄;
  在埋點(diǎn)文檔中,所有列名稱(chēng)和函數都包括:
  
  4. 基于埋點(diǎn)的統計
  如何使用隱藏的統計數據查找隱藏的ev事件:
 ?。?)指定掩埋點(diǎn)的類(lèi)型(單擊/曝光/瀏覽)-過(guò)濾類(lèi)型字段
 ?。?)指定按鈕所屬的頁(yè)面(頁(yè)面或功能)-過(guò)濾功能模塊字段
 ?。?)指定掩埋點(diǎn)事件的名稱(chēng)-過(guò)濾名稱(chēng)字段
 ?。?)知道ev標識符,您可以直接使用ev進(jìn)行過(guò)濾
  如何根據ev事件查詢(xún)統計信息: 當查詢(xún)按鈕單擊統計信息時(shí),您可以直接使用ev徽標進(jìn)行查詢(xún),并且當存在區別時(shí),可以限制掩埋點(diǎn)參數的值. 由于ev參數的順序不需要是可變的,因此在查詢(xún)統計信息時(shí),不能根據參數的順序對其進(jìn)行限制.
  四個(gè)應用程序-數據流的基礎
  
  1. 指標體系
  系統化指標可以整合不同指標和不同維度進(jìn)行全面分析,從而迅速發(fā)現當前產(chǎn)品和業(yè)務(wù)流程中存在的問(wèn)題.
  
  2. 可視化
  人類(lèi)對圖像信息的解釋比文本更有效. 可視化對于數據分析極為重要. 使用數據可視化可以揭示數據中的復雜關(guān)系.
  
  3. 提供了埋點(diǎn)元信息api
  數據采集服務(wù)會(huì )將采集的掩埋點(diǎn)寫(xiě)入Kafka. 為了滿(mǎn)足每個(gè)企業(yè)的實(shí)時(shí)數據消耗需求,我們?yōu)槊總€(gè)企業(yè)提供了單獨的Kafka,流量分配模塊將定期讀取掩埋點(diǎn)管理平臺. 所提供的元信息會(huì )在Kafka中為每個(gè)業(yè)務(wù)實(shí)時(shí)分配流量.
  
  數據采集就像設計產(chǎn)品一樣,不能過(guò)多. 我們不僅要留出擴展的空間,還應該考慮數據是否完整,不完整,詳細,穩定和快速.

Android音頻和視頻開(kāi)發(fā)(四): 使用Camera API采集視頻數據

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

  本文將主要使用Camera API采集視頻數據并將其保存到文件中,使用SurfaceView和TextureView分別預覽Camera數據,并獲取NV21的數據回調.
  注意: 需要許可:
  1. 預覽相機數據
  已經(jīng)完成Android開(kāi)發(fā)的人們通常知道有兩種方法可以做到這一點(diǎn): SurfaceView和TextureView.
  以下是使用SurfaceView預覽數據的方法:
  SurfaceView surfaceView;<br />Camera camera;<br /><br />@Override<br />protected void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.activity_main);<br /><br /> surfaceView = (SurfaceView) findViewById(R.id.surface_view);<br /> surfaceView.getHolder().addCallback(this);<br /><br /> // 打開(kāi)攝像頭并將展示方向旋轉90度<br /> camera = Camera.open();<br /> camera.setDisplayOrientation(90);<br /><br />}<br /><br />//------ Surface 預覽 -------<br />@Override<br />public void surfaceCreated(SurfaceHolder surfaceHolder) {<br /> try {<br /> camera.setPreviewDisplay(surfaceHolder);<br /> camera.startPreview();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br />}<br /><br /><br />@Override<br />public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {<br /><br />}<br /><br />@Override<br />public void surfaceDestroyed(SurfaceHolder surfaceHolder) {<br /> camera.release();<br />}
  以下是使用TextureView預覽數據的方法:
   TextureView textureView;
Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textureView = (TextureView) findViewById(R.id.texture_view);
textureView.setSurfaceTextureListener(this);// 打開(kāi)攝像頭并將展示方向旋轉90度
camera = Camera.open();
camera.setDisplayOrientation(90);
}<br />  //------ Texture 預覽 -------
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
try {
camera.setPreviewTexture(surfaceTexture);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i1) {
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
camera.release();
return false;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
}
  二,獲取NV21的數據回調
  Google在A(yíng)ndroid中支持“相機預覽回調”的兩種常見(jiàn)YUV格式: 一種是NV21,另一種是YV12. 默認情況下,Android通常使用YCbCr_420_SP格式(NV21).
  我們可以配置數據回調的格式:
  Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewFormat(ImageFormat.NV21);
camera.setParameters(parameters);
  通過(guò)setPreviewCallback方法收聽(tīng)預覽的回調:
  camera.setPreviewCallback(new Camera.PreviewCallback() {<br /> @Override<br /> public void onPreviewFrame(byte[] bytes, Camera camera) {<br /><br /> }<br />});
  此處的字節數據是NV21格式的數據.
  在以下文章中,將對這些數據進(jìn)行處理以滿(mǎn)足相關(guān)的需求情況. 查看全部

  本文將主要使用Camera API采集視頻數據并將其保存到文件中,使用SurfaceView和TextureView分別預覽Camera數據,并獲取NV21的數據回調.
  注意: 需要許可:
  1. 預覽相機數據
  已經(jīng)完成Android開(kāi)發(fā)的人們通常知道有兩種方法可以做到這一點(diǎn): SurfaceView和TextureView.
  以下是使用SurfaceView預覽數據的方法:
  SurfaceView surfaceView;<br />Camera camera;<br /><br />@Override<br />protected void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.activity_main);<br /><br /> surfaceView = (SurfaceView) findViewById(R.id.surface_view);<br /> surfaceView.getHolder().addCallback(this);<br /><br /> // 打開(kāi)攝像頭并將展示方向旋轉90度<br /> camera = Camera.open();<br /> camera.setDisplayOrientation(90);<br /><br />}<br /><br />//------ Surface 預覽 -------<br />@Override<br />public void surfaceCreated(SurfaceHolder surfaceHolder) {<br /> try {<br /> camera.setPreviewDisplay(surfaceHolder);<br /> camera.startPreview();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br />}<br /><br /><br />@Override<br />public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {<br /><br />}<br /><br />@Override<br />public void surfaceDestroyed(SurfaceHolder surfaceHolder) {<br /> camera.release();<br />}
  以下是使用TextureView預覽數據的方法:
   TextureView textureView;
Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textureView = (TextureView) findViewById(R.id.texture_view);
textureView.setSurfaceTextureListener(this);// 打開(kāi)攝像頭并將展示方向旋轉90度
camera = Camera.open();
camera.setDisplayOrientation(90);
}<br />  //------ Texture 預覽 -------
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
try {
camera.setPreviewTexture(surfaceTexture);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i1) {
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
camera.release();
return false;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
}
  二,獲取NV21的數據回調
  Google在A(yíng)ndroid中支持“相機預覽回調”的兩種常見(jiàn)YUV格式: 一種是NV21,另一種是YV12. 默認情況下,Android通常使用YCbCr_420_SP格式(NV21).
  我們可以配置數據回調的格式:
  Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewFormat(ImageFormat.NV21);
camera.setParameters(parameters);
  通過(guò)setPreviewCallback方法收聽(tīng)預覽的回調:
  camera.setPreviewCallback(new Camera.PreviewCallback() {<br /> @Override<br /> public void onPreviewFrame(byte[] bytes, Camera camera) {<br /><br /> }<br />});
  此處的字節數據是NV21格式的數據.
  在以下文章中,將對這些數據進(jìn)行處理以滿(mǎn)足相關(guān)的需求情況.

一篇文章教會(huì )你用Python多線(xiàn)程獲取小米應用商店App

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

  一篇文章教會(huì )你用Python多線(xiàn)程獲取小米應用商店App
  【一、項目背景】
  小米應用商店給用戶(hù)發(fā)覺(jué)最好的安卓應用和游戲,安全可靠,可是要下載東西要一個(gè)一個(gè)的搜索太麻煩了。而已速率不是很快。
  今天用多線(xiàn)程爬取小米應用商店的游戲模塊??焖佾@取。
  
  【二、項目目標】
  目標 :應用分類(lèi) - 聊天社交 應用名稱(chēng), 應用鏈接,顯示在控制臺供用戶(hù)下載。
  【三、涉及的庫和網(wǎng)站】
  1、網(wǎng)址:百度搜 - 小米應用商店,進(jìn)入官網(wǎng)。
  2、涉及的庫:reques****ts、threading 、queue 、json、time
  3、軟件:PyCharm
  【四、項目剖析】
  1、確認是否為動(dòng)態(tài)加載。
  通過(guò)頁(yè)面局部刷新, 右鍵查看網(wǎng)頁(yè)源代碼,搜索關(guān)鍵字未搜到 。斷定此網(wǎng)站為動(dòng)態(tài)加載網(wǎng)站,需要抓取網(wǎng)路數據包剖析。
  2、使用chrome瀏覽器,F12抓取網(wǎng)路數據包。
  1)抓取返回json數據的URL地址(Headers中的Request URL)。
  http://app.mi.com/categotyAllListApi?page={}&categoryId=2&pageSize=30
  2)查看并剖析查詢(xún)參數(headers中的Query String Parameters)。
  page: 1
categoryId: 2
pageSize: 30
  發(fā)現只有page再變,0 1 2 3 ... ... ,這樣我們就可以通過(guò)控制page的直拼接多個(gè)返回json數據的URL地址。
  【五、項目施行】
  1、我們定義一個(gè)class類(lèi)承繼object,然后定義init方式承繼self,再定義一個(gè)主函數main承繼self。準備導出庫,url地址和懇求頭headers。
  import requests
from threading import Thread
from queue import Queue
import json
import time
class XiaomiSpider(object):
def __init__(self):
self.headers = {'User-Agent':'Mozilla/5.0'}
self.url = 'http://app.mi.com/categotyAllListApi?page={}&categoryId=15&pageSize=30'
def main(self):
pass
if __name__ == '__main__':
imageSpider = XiaomiSpider()
imageSpider.main()
  2、定義隊列,用來(lái)儲存URL地址
  self.url_queue = Queue()
  3、URL入隊列
  def url_in(self):
# 拼接多個(gè)URL地址,然后put()到隊列中
for i in range(67):
self.url.format((str(i)))
self.url_queue.put(self.url)
  4、定義線(xiàn)程風(fēng)波函數get_page(請求數據)
  def get_page(self):
# 先get()URL地址,發(fā)請求
while True:
# 當隊列不為空時(shí),獲取url地址
if not self.url_queue.empty():
url = self.url_queue.get()
html = requests.get(url,headers=self.headers).text
self.parse_page(html)
else:
break
  5、定義函數parse_page 解析json模塊,提取應用名稱(chēng),應用鏈接內容。
   # 解析函數
def parse_page(self,html):
app_json = json.loads(html)
for app in app_json['data']:
# 應用名稱(chēng)
name = app['displayName']
# 應用鏈接
link = 'http://app.mi.com/details?id={}'.format(app['packageName'])
d = { '名稱(chēng)' : name,'鏈接' : link }
print(d)
  6、main方式, 定義t_list = [] 存放所有線(xiàn)程的列表。調用get_page多線(xiàn)程爬取。
  def main(self):
self.url_in()
# 存放所有線(xiàn)程的列表
t_list = []
for i in range(10):
t = Thread(target=self.get_page)
t.start()
t_list.append(t)
  7、for循環(huán)遍歷列表,統一回收線(xiàn)程。
  # 統一回收線(xiàn)程
for p in t_list:
p.join()
  8、統計一下執行時(shí)間。
  start = time.time()
spider = XiaomiSpider()
spider.main()
end = time.time()
print('執行時(shí)間:%.2f' % (end-start))
  【六、效果展示】
  1、運行程序。點(diǎn)擊運行,將游戲名稱(chēng),下載鏈接,執行時(shí)間,顯示在控制臺。
  
  2、點(diǎn)擊紅色的網(wǎng)址可以直接去到下載頁(yè)面下載應用,如下圖所示。
  
  【七、總結】
  1、不建議抓取太多數據,容易對服務(wù)器導致負載,淺嘗輒止即可。
  2、Python多線(xiàn)程優(yōu)點(diǎn)。使用線(xiàn)程可以把搶占長(cháng)時(shí)間的程序中的任務(wù)放在后臺去處,程序的運行速率可能推動(dòng)。
  3、單線(xiàn)程可以被占領(lǐng)(中斷),而已多線(xiàn)程就有了更多的選擇。而已在其他線(xiàn)程正在運行時(shí),線(xiàn)程可以暫時(shí)擱置(也稱(chēng)為睡眠)??梢葬尫乓恍┱湎〉馁Y源如顯存占用。
  4、大家也可以嘗試在爬取其他分類(lèi),按照操作步驟,自己嘗試去做。自己實(shí)現的時(shí)侯,總會(huì )有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的愈發(fā)深刻。 查看全部

  一篇文章教會(huì )你用Python多線(xiàn)程獲取小米應用商店App
  【一、項目背景】
  小米應用商店給用戶(hù)發(fā)覺(jué)最好的安卓應用和游戲,安全可靠,可是要下載東西要一個(gè)一個(gè)的搜索太麻煩了。而已速率不是很快。
  今天用多線(xiàn)程爬取小米應用商店的游戲模塊??焖佾@取。
  
  【二、項目目標】
  目標 :應用分類(lèi) - 聊天社交 應用名稱(chēng), 應用鏈接,顯示在控制臺供用戶(hù)下載。
  【三、涉及的庫和網(wǎng)站】
  1、網(wǎng)址:百度搜 - 小米應用商店,進(jìn)入官網(wǎng)。
  2、涉及的庫:reques****ts、threading 、queue 、json、time
  3、軟件:PyCharm
  【四、項目剖析】
  1、確認是否為動(dòng)態(tài)加載。
  通過(guò)頁(yè)面局部刷新, 右鍵查看網(wǎng)頁(yè)源代碼,搜索關(guān)鍵字未搜到 。斷定此網(wǎng)站為動(dòng)態(tài)加載網(wǎng)站,需要抓取網(wǎng)路數據包剖析。
  2、使用chrome瀏覽器,F12抓取網(wǎng)路數據包。
  1)抓取返回json數據的URL地址(Headers中的Request URL)。
  http://app.mi.com/categotyAllListApi?page={}&categoryId=2&pageSize=30
  2)查看并剖析查詢(xún)參數(headers中的Query String Parameters)。
  page: 1
categoryId: 2
pageSize: 30
  發(fā)現只有page再變,0 1 2 3 ... ... ,這樣我們就可以通過(guò)控制page的直拼接多個(gè)返回json數據的URL地址。
  【五、項目施行】
  1、我們定義一個(gè)class類(lèi)承繼object,然后定義init方式承繼self,再定義一個(gè)主函數main承繼self。準備導出庫,url地址和懇求頭headers。
  import requests
from threading import Thread
from queue import Queue
import json
import time
class XiaomiSpider(object):
def __init__(self):
self.headers = {'User-Agent':'Mozilla/5.0'}
self.url = 'http://app.mi.com/categotyAllListApi?page={}&categoryId=15&pageSize=30'
def main(self):
pass
if __name__ == '__main__':
imageSpider = XiaomiSpider()
imageSpider.main()
  2、定義隊列,用來(lái)儲存URL地址
  self.url_queue = Queue()
  3、URL入隊列
  def url_in(self):
# 拼接多個(gè)URL地址,然后put()到隊列中
for i in range(67):
self.url.format((str(i)))
self.url_queue.put(self.url)
  4、定義線(xiàn)程風(fēng)波函數get_page(請求數據)
  def get_page(self):
# 先get()URL地址,發(fā)請求
while True:
# 當隊列不為空時(shí),獲取url地址
if not self.url_queue.empty():
url = self.url_queue.get()
html = requests.get(url,headers=self.headers).text
self.parse_page(html)
else:
break
  5、定義函數parse_page 解析json模塊,提取應用名稱(chēng),應用鏈接內容。
   # 解析函數
def parse_page(self,html):
app_json = json.loads(html)
for app in app_json['data']:
# 應用名稱(chēng)
name = app['displayName']
# 應用鏈接
link = 'http://app.mi.com/details?id={}'.format(app['packageName'])
d = { '名稱(chēng)' : name,'鏈接' : link }
print(d)
  6、main方式, 定義t_list = [] 存放所有線(xiàn)程的列表。調用get_page多線(xiàn)程爬取。
  def main(self):
self.url_in()
# 存放所有線(xiàn)程的列表
t_list = []
for i in range(10):
t = Thread(target=self.get_page)
t.start()
t_list.append(t)
  7、for循環(huán)遍歷列表,統一回收線(xiàn)程。
  # 統一回收線(xiàn)程
for p in t_list:
p.join()
  8、統計一下執行時(shí)間。
  start = time.time()
spider = XiaomiSpider()
spider.main()
end = time.time()
print('執行時(shí)間:%.2f' % (end-start))
  【六、效果展示】
  1、運行程序。點(diǎn)擊運行,將游戲名稱(chēng),下載鏈接,執行時(shí)間,顯示在控制臺。
  
  2、點(diǎn)擊紅色的網(wǎng)址可以直接去到下載頁(yè)面下載應用,如下圖所示。
  
  【七、總結】
  1、不建議抓取太多數據,容易對服務(wù)器導致負載,淺嘗輒止即可。
  2、Python多線(xiàn)程優(yōu)點(diǎn)。使用線(xiàn)程可以把搶占長(cháng)時(shí)間的程序中的任務(wù)放在后臺去處,程序的運行速率可能推動(dòng)。
  3、單線(xiàn)程可以被占領(lǐng)(中斷),而已多線(xiàn)程就有了更多的選擇。而已在其他線(xiàn)程正在運行時(shí),線(xiàn)程可以暫時(shí)擱置(也稱(chēng)為睡眠)??梢葬尫乓恍┱湎〉馁Y源如顯存占用。
  4、大家也可以嘗試在爬取其他分類(lèi),按照操作步驟,自己嘗試去做。自己實(shí)現的時(shí)侯,總會(huì )有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的愈發(fā)深刻。

文章采集api 4.5.2 奶盤(pán)API

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

  文章采集api 4.5.2 奶盤(pán)API
  接入奶盤(pán)API教程
  優(yōu)采云采集支持調用奶盤(pán)API接口,處理采集的數據標題和內容等;
  提示:第三方API接入功能須要優(yōu)采云旗艦版套餐才支持使用,用戶(hù)需自提供第三方插口賬號信息(即用戶(hù)需注冊第三方插口,調用第三方插口形成的一切費用,由用戶(hù)自己承當);
  詳細使用步驟1. 奶盤(pán)API接口配置I、API配置入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》點(diǎn)擊【第三方API配置管理】 ==》 最后點(diǎn)擊【+奶盤(pán)API】創(chuàng )建插口配置;
  
  II、配置API插口信息:
  【購買(mǎi)的授權用戶(hù)】、【購買(mǎi)的授權碼】是從奶盤(pán)網(wǎng)后臺獲取API授權信息;
  【API版本】是對應奶盤(pán)網(wǎng)訂購的套餐:百度優(yōu)化版,AI智能版;
  注意:因奶盤(pán)限制每次調用最長(cháng)65000字符(包括html代碼),所以當內容厚度超過(guò)時(shí),優(yōu)采云會(huì )分割并分多次調用,此操作會(huì )導致api調用次數的降低,費用也會(huì )相應降低,這是用戶(hù)自己須要承當的費用,使用前一定要注意?。?!
  
  
  2. 創(chuàng )建API處理規則
  API處理規則,可設置調用API接口處理什么數組的內容;
  I、API處理規則入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》進(jìn)入【API處理規則管理】頁(yè)面,最后點(diǎn)擊【+添加API處理規則】創(chuàng )建API處理規則;
  
  II、API處理規則配置:
  
  注意:API處理1個(gè)主鍵時(shí),會(huì )調用一次API接口,因此不需要的數組建議不要加!
  3. API處理規則使用
  API處理規則使用方法有兩種:手動(dòng)執行和手動(dòng)執行:
  I、手動(dòng)執行API處理規則:
  在采集任務(wù)的 【結果數據&amp;發(fā)布】 選項卡內點(diǎn)擊【 SEO&amp;API&amp;翻譯等工具】按鈕==》選擇【第三方API執行】欄==》選擇相應的API處理規則 ==》執行(數據范圍有兩種執行方法,批量按發(fā)布狀態(tài)執行和按列表所選數據執行);
  
  II、自動(dòng)執行API處理規則:
  啟用API處理手動(dòng)執行,任務(wù)完成采集后會(huì )手動(dòng)執行API處理,一般配合定時(shí)采集和手動(dòng)發(fā)布功能使用,十分便捷;
  在任務(wù)的 【自動(dòng)化:發(fā)布&amp;SEO&amp;翻譯】選項卡里【自動(dòng)執行第三方API配置】處==》勾選上【采集后,自動(dòng)執行API】選項==》選擇執行的API處理規則 ==》選擇API接口處理的數據范圍(一般選擇 ‘待發(fā)布’ 即可,全部會(huì )導致所有數據反復執行多次),最后點(diǎn)擊保存即可;
  
  4. API處理后的結果及發(fā)布I、查看API插口處理后的結果:
  API接口處理后的內容會(huì )保存為新數組,如:title處理后新增數組:title_奶盤(pán),content處理后新增數組:content_奶盤(pán),在【結果數據&amp;發(fā)布】與數據預覽界面都可查看。
  提示:API處理規則執行須要一點(diǎn)時(shí)間,執行完成后會(huì )手動(dòng)刷新頁(yè)面出現API接口處理后的新數組;
  
  II、發(fā)布API接口處理后內容:
  發(fā)布文章前,修改發(fā)布目標第二步映射字段處,標題和內容選舉為API接口處理后新增的對應數組title_奶盤(pán)和content_奶盤(pán);
  提示:如果發(fā)布目標內難以選擇新增數組,請在該任務(wù)下復制或新建發(fā)布目標后,在新發(fā)布目標中即可選擇到新增數組,詳細教程可查看;
  
  優(yōu)采云導航:優(yōu)采云采集 優(yōu)采云控制臺 如何使用優(yōu)采云SEO工具 微信公眾號文章采集 今日頭條采集 查看全部

  文章采集api 4.5.2 奶盤(pán)API
  接入奶盤(pán)API教程
  優(yōu)采云采集支持調用奶盤(pán)API接口,處理采集的數據標題和內容等;
  提示:第三方API接入功能須要優(yōu)采云旗艦版套餐才支持使用,用戶(hù)需自提供第三方插口賬號信息(即用戶(hù)需注冊第三方插口,調用第三方插口形成的一切費用,由用戶(hù)自己承當);
  詳細使用步驟1. 奶盤(pán)API接口配置I、API配置入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》點(diǎn)擊【第三方API配置管理】 ==》 最后點(diǎn)擊【+奶盤(pán)API】創(chuàng )建插口配置;
  
  II、配置API插口信息:
  【購買(mǎi)的授權用戶(hù)】、【購買(mǎi)的授權碼】是從奶盤(pán)網(wǎng)后臺獲取API授權信息;
  【API版本】是對應奶盤(pán)網(wǎng)訂購的套餐:百度優(yōu)化版,AI智能版;
  注意:因奶盤(pán)限制每次調用最長(cháng)65000字符(包括html代碼),所以當內容厚度超過(guò)時(shí),優(yōu)采云會(huì )分割并分多次調用,此操作會(huì )導致api調用次數的降低,費用也會(huì )相應降低,這是用戶(hù)自己須要承當的費用,使用前一定要注意?。?!
  
  
  2. 創(chuàng )建API處理規則
  API處理規則,可設置調用API接口處理什么數組的內容;
  I、API處理規則入口:
  點(diǎn)擊控制臺右側列表的 【第三方服務(wù)配置】 ==》點(diǎn)擊 【第三方內容API接入】 ==》進(jìn)入【API處理規則管理】頁(yè)面,最后點(diǎn)擊【+添加API處理規則】創(chuàng )建API處理規則;
  
  II、API處理規則配置:
  
  注意:API處理1個(gè)主鍵時(shí),會(huì )調用一次API接口,因此不需要的數組建議不要加!
  3. API處理規則使用
  API處理規則使用方法有兩種:手動(dòng)執行和手動(dòng)執行:
  I、手動(dòng)執行API處理規則:
  在采集任務(wù)的 【結果數據&amp;發(fā)布】 選項卡內點(diǎn)擊【 SEO&amp;API&amp;翻譯等工具】按鈕==》選擇【第三方API執行】欄==》選擇相應的API處理規則 ==》執行(數據范圍有兩種執行方法,批量按發(fā)布狀態(tài)執行和按列表所選數據執行);
  
  II、自動(dòng)執行API處理規則:
  啟用API處理手動(dòng)執行,任務(wù)完成采集后會(huì )手動(dòng)執行API處理,一般配合定時(shí)采集和手動(dòng)發(fā)布功能使用,十分便捷;
  在任務(wù)的 【自動(dòng)化:發(fā)布&amp;SEO&amp;翻譯】選項卡里【自動(dòng)執行第三方API配置】處==》勾選上【采集后,自動(dòng)執行API】選項==》選擇執行的API處理規則 ==》選擇API接口處理的數據范圍(一般選擇 ‘待發(fā)布’ 即可,全部會(huì )導致所有數據反復執行多次),最后點(diǎn)擊保存即可;
  
  4. API處理后的結果及發(fā)布I、查看API插口處理后的結果:
  API接口處理后的內容會(huì )保存為新數組,如:title處理后新增數組:title_奶盤(pán),content處理后新增數組:content_奶盤(pán),在【結果數據&amp;發(fā)布】與數據預覽界面都可查看。
  提示:API處理規則執行須要一點(diǎn)時(shí)間,執行完成后會(huì )手動(dòng)刷新頁(yè)面出現API接口處理后的新數組;
  
  II、發(fā)布API接口處理后內容:
  發(fā)布文章前,修改發(fā)布目標第二步映射字段處,標題和內容選舉為API接口處理后新增的對應數組title_奶盤(pán)和content_奶盤(pán);
  提示:如果發(fā)布目標內難以選擇新增數組,請在該任務(wù)下復制或新建發(fā)布目標后,在新發(fā)布目標中即可選擇到新增數組,詳細教程可查看;
  
  優(yōu)采云導航:優(yōu)采云采集 優(yōu)采云控制臺 如何使用優(yōu)采云SEO工具 微信公眾號文章采集 今日頭條采集

數據搜集

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

  數據搜集
  數據的科學(xué)處理流程
  數據搜集網(wǎng)路數據采集
  通過(guò)網(wǎng)路爬蟲(chóng)或網(wǎng)站的API插口獲取網(wǎng)路公開(kāi)數據,獲取的數據大部分為非結構化數據,數據源十分豐富,不過(guò)采集的數據并不規范,需要進(jìn)一步處理。
  系統日志采集
  通過(guò)企業(yè)業(yè)務(wù)平臺日志系統手機業(yè)務(wù)日志數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的可靠性和可用性。目前常用的日志搜集系統主要有Scribe、Chukwa、Kkafka、Flume等
  數據庫采集
  通過(guò)企業(yè)的數據庫系統搜集企業(yè)的業(yè)務(wù)數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的規范性、可靠性和可用性。目前企業(yè)常用的關(guān)系型數據庫系統主要包括SOLite、SqlSever、MySql、Oracle。除此之外,目前越來(lái)越多的企業(yè)也開(kāi)始采用Redis和MongoDB這也的Nosql數據庫系統。
  數據處理
  對采集到的數據進(jìn)行必要的加工整理(清洗、集成、變換、規約),以達到數據剖析的規范要求。這個(gè)步驟一般是“數據科學(xué)”任務(wù)周期中最歷時(shí)、最乏味的階段,但也是至關(guān)重要的一個(gè)環(huán)節。
  數據儲存文本文件(txt、excel、dat等)關(guān)系型數據庫(SOLite、SqlSever、MySql、Oracle等)非關(guān)系型數據庫(MongoDb、Redis、Hbase等)數據剖析
  根據實(shí)際的任務(wù)需求,基于搜集并進(jìn)行加工處理后的數據,采用統計、機器學(xué)習或深度學(xué)習的方式構建、訓練并優(yōu)化模型,并應用模型解決實(shí)際任務(wù)中的問(wèn)題。 查看全部

  數據搜集
  數據的科學(xué)處理流程
  數據搜集網(wǎng)路數據采集
  通過(guò)網(wǎng)路爬蟲(chóng)或網(wǎng)站的API插口獲取網(wǎng)路公開(kāi)數據,獲取的數據大部分為非結構化數據,數據源十分豐富,不過(guò)采集的數據并不規范,需要進(jìn)一步處理。
  系統日志采集
  通過(guò)企業(yè)業(yè)務(wù)平臺日志系統手機業(yè)務(wù)日志數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的可靠性和可用性。目前常用的日志搜集系統主要有Scribe、Chukwa、Kkafka、Flume等
  數據庫采集
  通過(guò)企業(yè)的數據庫系統搜集企業(yè)的業(yè)務(wù)數據,通過(guò)這些方法手機的數據一般為結構化數據,具有較高的規范性、可靠性和可用性。目前企業(yè)常用的關(guān)系型數據庫系統主要包括SOLite、SqlSever、MySql、Oracle。除此之外,目前越來(lái)越多的企業(yè)也開(kāi)始采用Redis和MongoDB這也的Nosql數據庫系統。
  數據處理
  對采集到的數據進(jìn)行必要的加工整理(清洗、集成、變換、規約),以達到數據剖析的規范要求。這個(gè)步驟一般是“數據科學(xué)”任務(wù)周期中最歷時(shí)、最乏味的階段,但也是至關(guān)重要的一個(gè)環(huán)節。
  數據儲存文本文件(txt、excel、dat等)關(guān)系型數據庫(SOLite、SqlSever、MySql、Oracle等)非關(guān)系型數據庫(MongoDb、Redis、Hbase等)數據剖析
  根據實(shí)際的任務(wù)需求,基于搜集并進(jìn)行加工處理后的數據,采用統計、機器學(xué)習或深度學(xué)習的方式構建、訓練并優(yōu)化模型,并應用模型解決實(shí)際任務(wù)中的問(wèn)題。

微服務(wù)下的信息采集(II)

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

  微服務(wù)下的信息采集(II)
  我是掌控安全的咸魚(yú)-魔術(shù)手,上次講了 微服務(wù)下的信息搜集(一),這次來(lái)水一下 微服務(wù)下的信息搜集(II)。
  上次介紹了一個(gè)公司的站點(diǎn)可能由各個(gè)獨立在不同服務(wù)器上的服務(wù)組成,所以我們須要想盡辦法找到更多的域名;為了更好的測試我們也須要找到更多的目錄和參數。上次介紹可以從目標的陌陌小程序采集域名,也介紹了一款可以幫助我們搜集目標js里子域名和url的工具JSFinder。這次我們繼續介紹怎么搜集更多的資料,以下所有內容都是圍繞同一個(gè)站點(diǎn)進(jìn)行,目標域名,但是由于一些緣由,真實(shí)站點(diǎn)截圖未能放出,部分截圖為某公益src項目信息搜集截圖。
  相關(guān)域名發(fā)覺(jué)備案查詢(xún)
  絕大多數網(wǎng)站都是有備案信息的,可以通過(guò)備案信息查詢(xún)。如下圖,通過(guò)備案查詢(xún),我們找到另一個(gè)站點(diǎn)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)。
  
  證書(shū)透明度公開(kāi)日志枚舉
  證書(shū)透明度(Certificate Transparency,CT)是證書(shū)授權機構(CA)的一個(gè)項目,證書(shū)授權機構CA會(huì )將她們發(fā)布的每位SSL/TLS證書(shū)發(fā)布到公共日志中。一個(gè)SSL/TLS證書(shū)一般收錄域名、子域名和電郵地址,它們也常常成為攻擊者十分希望獲得的有用信息。因為目標是個(gè)小型站點(diǎn),用這些方式找到的機率比較大。如下圖,在crt.sh/中查詢(xún)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標):
  
  dns等
  這里還有好多方式,太過(guò)冗長(cháng),直接上工具,這次用的工具是oneforall,功能好多,各位感興趣可以自己研究。(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)
  
  通過(guò)前面的搜集,除了發(fā)覺(jué)好多有意思的子域名,而且搜索到了如和等和目標相關(guān)的域名。
  服務(wù)界定
  對里面找到的域名挨個(gè)訪(fǎng)問(wèn),對得到的內容進(jìn)行簡(jiǎn)單處理,發(fā)現目前采集到的服務(wù)(能訪(fǎng)問(wèn)的域名)主要有展示站,綜合營(yíng)運管理平臺和廣告服務(wù)。找到她們所對應的服務(wù)器,發(fā)現每位服務(wù)都起碼都收錄2臺服務(wù)器,如圖:
  
  在里面的所有域名和IP中,有兩個(gè)很有趣的,一個(gè)是,一個(gè)是,為什么有趣呢,一是因為名稱(chēng)office聽(tīng)上去如同是辦公服務(wù),另一個(gè)是IP,其余的服務(wù)器IP都是11*.*.*.*或者是14*.*.*.*,就他倆特殊,所以這倆待會(huì )要重點(diǎn)關(guān)照。
  在下篇文章中說(shuō)過(guò),微服務(wù)是由好多個(gè)獨立的服務(wù)組合而成的,而里面搜集到的服務(wù)看起來(lái)不象是所有的服務(wù),畢竟里面是被動(dòng)的信息搜集,搜集的內容有限。假設前面采集到的服務(wù)器是目標的大部分服務(wù)器,那么假如目標還有其它服務(wù),我們該如何辦呢?答案是掃描端口。
  端口掃描
  在端口掃描時(shí)須要注意的是,因為一臺服務(wù)器上可能有好多服務(wù),所以這兒在掃描的時(shí)侯須要掃描全部端口,這里使用nmap -sC -T4 -p 1-65535重點(diǎn)掃描了那兩臺服務(wù)器,發(fā)現了兩個(gè)有意思的地方,如下:
  
  第二個(gè)是一個(gè)很厲害的服務(wù),估計是處于開(kāi)發(fā)中,訪(fǎng)問(wèn)頁(yè)面默認填充帳戶(hù)密碼,所以這兒不放圖了(認慫保平安)。
  
  隱私文件偵測 查看全部

  微服務(wù)下的信息采集(II)
  我是掌控安全的咸魚(yú)-魔術(shù)手,上次講了 微服務(wù)下的信息搜集(一),這次來(lái)水一下 微服務(wù)下的信息搜集(II)。
  上次介紹了一個(gè)公司的站點(diǎn)可能由各個(gè)獨立在不同服務(wù)器上的服務(wù)組成,所以我們須要想盡辦法找到更多的域名;為了更好的測試我們也須要找到更多的目錄和參數。上次介紹可以從目標的陌陌小程序采集域名,也介紹了一款可以幫助我們搜集目標js里子域名和url的工具JSFinder。這次我們繼續介紹怎么搜集更多的資料,以下所有內容都是圍繞同一個(gè)站點(diǎn)進(jìn)行,目標域名,但是由于一些緣由,真實(shí)站點(diǎn)截圖未能放出,部分截圖為某公益src項目信息搜集截圖。
  相關(guān)域名發(fā)覺(jué)備案查詢(xún)
  絕大多數網(wǎng)站都是有備案信息的,可以通過(guò)備案信息查詢(xún)。如下圖,通過(guò)備案查詢(xún),我們找到另一個(gè)站點(diǎn)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)。
  
  證書(shū)透明度公開(kāi)日志枚舉
  證書(shū)透明度(Certificate Transparency,CT)是證書(shū)授權機構(CA)的一個(gè)項目,證書(shū)授權機構CA會(huì )將她們發(fā)布的每位SSL/TLS證書(shū)發(fā)布到公共日志中。一個(gè)SSL/TLS證書(shū)一般收錄域名、子域名和電郵地址,它們也常常成為攻擊者十分希望獲得的有用信息。因為目標是個(gè)小型站點(diǎn),用這些方式找到的機率比較大。如下圖,在crt.sh/中查詢(xún)(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標):
  
  dns等
  這里還有好多方式,太過(guò)冗長(cháng),直接上工具,這次用的工具是oneforall,功能好多,各位感興趣可以自己研究。(該截圖來(lái)自對某公益src站點(diǎn)的采集,并非原目標)
  
  通過(guò)前面的搜集,除了發(fā)覺(jué)好多有意思的子域名,而且搜索到了如和等和目標相關(guān)的域名。
  服務(wù)界定
  對里面找到的域名挨個(gè)訪(fǎng)問(wèn),對得到的內容進(jìn)行簡(jiǎn)單處理,發(fā)現目前采集到的服務(wù)(能訪(fǎng)問(wèn)的域名)主要有展示站,綜合營(yíng)運管理平臺和廣告服務(wù)。找到她們所對應的服務(wù)器,發(fā)現每位服務(wù)都起碼都收錄2臺服務(wù)器,如圖:
  
  在里面的所有域名和IP中,有兩個(gè)很有趣的,一個(gè)是,一個(gè)是,為什么有趣呢,一是因為名稱(chēng)office聽(tīng)上去如同是辦公服務(wù),另一個(gè)是IP,其余的服務(wù)器IP都是11*.*.*.*或者是14*.*.*.*,就他倆特殊,所以這倆待會(huì )要重點(diǎn)關(guān)照。
  在下篇文章中說(shuō)過(guò),微服務(wù)是由好多個(gè)獨立的服務(wù)組合而成的,而里面搜集到的服務(wù)看起來(lái)不象是所有的服務(wù),畢竟里面是被動(dòng)的信息搜集,搜集的內容有限。假設前面采集到的服務(wù)器是目標的大部分服務(wù)器,那么假如目標還有其它服務(wù),我們該如何辦呢?答案是掃描端口。
  端口掃描
  在端口掃描時(shí)須要注意的是,因為一臺服務(wù)器上可能有好多服務(wù),所以這兒在掃描的時(shí)侯須要掃描全部端口,這里使用nmap -sC -T4 -p 1-65535重點(diǎn)掃描了那兩臺服務(wù)器,發(fā)現了兩個(gè)有意思的地方,如下:
  
  第二個(gè)是一個(gè)很厲害的服務(wù),估計是處于開(kāi)發(fā)中,訪(fǎng)問(wèn)頁(yè)面默認填充帳戶(hù)密碼,所以這兒不放圖了(認慫保平安)。
  
  隱私文件偵測

HTML5 存儲API介紹(采集)

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

  相應的路徑均與用戶(hù)正在訪(fǎng)問(wèn)的HTML頁(yè)面相關(guān)。 當創(chuàng )建高速緩存manifest文件時(shí),你必須了解一些其它選項。 其中一個(gè)選項是絕不能高速緩存的文件的情形。 也許只有就能在線(xiàn)獲得的動(dòng)態(tài)腳本或個(gè)別內容才是有意義的。 高速緩存manifest文件才能界定為告知瀏覽器怎樣對個(gè)別內容進(jìn)行響應的區段(section)。 通過(guò)創(chuàng )建一個(gè) NETWORK和列舉這些絕不能高速緩存的文件,瀏覽器一定就能忽視那些文件而且使人們決不能離線(xiàn)獲得它們。
  另一個(gè)情形是當用戶(hù)企圖訪(fǎng)問(wèn)一個(gè)沒(méi)有高速緩存的頁(yè)面或個(gè)別應當高速緩存但卻沒(méi)有正確保存的內容時(shí)的情形。 高速緩存 manifest API 能夠提供一個(gè)FALLBACK 區段(section),它指向一個(gè)在上述用例中加載的頁(yè)面。 因此,當用戶(hù)企圖訪(fǎng)問(wèn)沒(méi)有保存的個(gè)別內容時(shí),他們將見(jiàn)到一條關(guān)于離線(xiàn)提示的消息。 下面是一個(gè)理論上的收錄那些區段(section)的高速緩存Manifest文件的大約構架:
  CACHE MANIFEST NETWORK: my_dynamic_script.cgi FALLBACK: my_offline_message.html CACHE: style.css offlinescript.js images/dreamweaver_logo.png images/edge_logo.png
  在本例中,我提供了一個(gè)帶有一個(gè)外部JavaScript 頁(yè)面和外部 CSS頁(yè)面的HTML頁(yè)面。 該HTML頁(yè)面就能顯示一些描述一個(gè)Adobe徽標的文本,并且當你點(diǎn)擊相應的圖象時(shí),JavaScript 將會(huì )為另一個(gè)徽標換出相應的圖象和文本。 下面是相應的HTML代碼,緊跟其后的是JavaScript函數:
  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT ... %3Bbr /><br /><br /> <br /> Adobe Logos<br /> <br /> <br /><br /><br /> <br /> This is the Edge logo:<br /> <br /> <br /> <br /> Click on the logo to swap it out.<br /><br /><br />
  所有那些代碼的關(guān)鍵部份是帶有 manifest 屬性的HTML標簽。 它是指向我在里面引用的我的cache.manifest 文件。 該manifest文件才能指示瀏覽器下載列表中給出的所有文件。 不管用戶(hù)在瀏覽那些文件時(shí)是否下載它們,相應的瀏覽器將手動(dòng)下載manifest文件中收錄的所有文件。 這意味著(zhù)兩個(gè)圖象都將被保存便于離線(xiàn)訪(fǎng)問(wèn),即使第二個(gè)圖象直至我與相應內容互動(dòng)時(shí)才加載到頁(yè)面。 因此,只需加載該頁(yè)面一次,我即可以在離線(xiàn)情形下完全與它進(jìn)行互動(dòng),并且兩個(gè)圖象均會(huì )旋轉。 查看全部

  相應的路徑均與用戶(hù)正在訪(fǎng)問(wèn)的HTML頁(yè)面相關(guān)。 當創(chuàng )建高速緩存manifest文件時(shí),你必須了解一些其它選項。 其中一個(gè)選項是絕不能高速緩存的文件的情形。 也許只有就能在線(xiàn)獲得的動(dòng)態(tài)腳本或個(gè)別內容才是有意義的。 高速緩存manifest文件才能界定為告知瀏覽器怎樣對個(gè)別內容進(jìn)行響應的區段(section)。 通過(guò)創(chuàng )建一個(gè) NETWORK和列舉這些絕不能高速緩存的文件,瀏覽器一定就能忽視那些文件而且使人們決不能離線(xiàn)獲得它們。
  另一個(gè)情形是當用戶(hù)企圖訪(fǎng)問(wèn)一個(gè)沒(méi)有高速緩存的頁(yè)面或個(gè)別應當高速緩存但卻沒(méi)有正確保存的內容時(shí)的情形。 高速緩存 manifest API 能夠提供一個(gè)FALLBACK 區段(section),它指向一個(gè)在上述用例中加載的頁(yè)面。 因此,當用戶(hù)企圖訪(fǎng)問(wèn)沒(méi)有保存的個(gè)別內容時(shí),他們將見(jiàn)到一條關(guān)于離線(xiàn)提示的消息。 下面是一個(gè)理論上的收錄那些區段(section)的高速緩存Manifest文件的大約構架:
  CACHE MANIFEST NETWORK: my_dynamic_script.cgi FALLBACK: my_offline_message.html CACHE: style.css offlinescript.js images/dreamweaver_logo.png images/edge_logo.png
  在本例中,我提供了一個(gè)帶有一個(gè)外部JavaScript 頁(yè)面和外部 CSS頁(yè)面的HTML頁(yè)面。 該HTML頁(yè)面就能顯示一些描述一個(gè)Adobe徽標的文本,并且當你點(diǎn)擊相應的圖象時(shí),JavaScript 將會(huì )為另一個(gè)徽標換出相應的圖象和文本。 下面是相應的HTML代碼,緊跟其后的是JavaScript函數:
  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT ... %3Bbr /><br /><br /> <br /> Adobe Logos<br /> <br /> <br /><br /><br /> <br /> This is the Edge logo:<br /> <br /> <br /> <br /> Click on the logo to swap it out.<br /><br /><br />
  所有那些代碼的關(guān)鍵部份是帶有 manifest 屬性的HTML標簽。 它是指向我在里面引用的我的cache.manifest 文件。 該manifest文件才能指示瀏覽器下載列表中給出的所有文件。 不管用戶(hù)在瀏覽那些文件時(shí)是否下載它們,相應的瀏覽器將手動(dòng)下載manifest文件中收錄的所有文件。 這意味著(zhù)兩個(gè)圖象都將被保存便于離線(xiàn)訪(fǎng)問(wèn),即使第二個(gè)圖象直至我與相應內容互動(dòng)時(shí)才加載到頁(yè)面。 因此,只需加載該頁(yè)面一次,我即可以在離線(xiàn)情形下完全與它進(jìn)行互動(dòng),并且兩個(gè)圖象均會(huì )旋轉。

QuicklibTrade A股行情采集API方案2.5即將發(fā)布

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

  
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  
  
  
  QuicklibTrade簡(jiǎn)介
  QuicklibTrade是一套簡(jiǎn)單易行的藍籌股程序化交易方案,主要采用對股票軟件客戶(hù)端(如大智慧、同花順、東方財富、通達信)數據的采集,提供給多種插口。支持直接調用公式編輯器的數據,大大簡(jiǎn)化了策略開(kāi)發(fā)。很多精典指標公式可以直接使用。
  關(guān)鍵是可以免費使用
  QuicklibTrade行情數據采集視頻教學(xué)
  采集和API調用講解
  /x/page/y0842b72xbh.html?pcsharecode=Y0h4qOSw&amp;sf=uri
  含借助虛擬機采集行情講解
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  QuicklibTrade 免費的藍籌股Level2行情插口
  /
  注冊
  /register.html
  下載
  /mdapi.asp
  其它相關(guān)問(wèn)題請瀏覽
  /comm/category/20/
  第1期僅發(fā)布行情采集和插口,第2期發(fā)布交易插口和行情的局域網(wǎng)網(wǎng)路插口
  用于每臺主機僅能運行1個(gè)DataUpdate.exe,為了采用多個(gè)DataUpdate.exe來(lái)采集通過(guò)局域網(wǎng)網(wǎng)路插口共享數據來(lái)推動(dòng)更新速率,所以采用虛擬機形式。
  已經(jīng)提供了虛擬機鏡像云盤(pán)下載,主要用于行情的局域網(wǎng)網(wǎng)路插口,每個(gè)虛擬機可開(kāi)啟1份大智慧和DataUpdate.exe推動(dòng)數據更新速率
  QuicklibTrade構架如下圖所示:
  分為行情插口和交易插口,本文只講解行情插口,交易插口計劃2019年初發(fā)布。
  第一期行情插口2.1版支持大智慧的分隔線(xiàn)模式,字體選擇精典字體。開(kāi)始菜單預留了同花順、東方財富、通達信的數據采集方案菜單。
  1)支持行情數據采集
  2)支持指標數據采集
  3)支持交易訊號,交易策略可以使用大智慧公式編輯器開(kāi)發(fā),用特定的熟知表示買(mǎi)和賣(mài),將指標加載到大智慧的列中,接口辨識數據的數值,直接通過(guò)插口判定熟知來(lái)決定交易。
  每次采集支持12個(gè)數組同時(shí)采集,這12個(gè)數組可以是行情,可以是指標,可以是交易訊號。
  **運行平臺:**Windows7、Windows78、Windows10、WindowsServer2008、WindowsServer2012、WindowsServer2016等各個(gè)版本
  運行虛擬機的網(wǎng)路插口必須是64位操作系統
  其他插口32位和64位Windows操作系統均可。
  **硬件配置:**請使用單屏顯示器,使用2個(gè)及以上屏幕會(huì )導致數據錯亂
  支持的插口包括了Python插口和C++插口。
  **Python插口:**可直接被Python調用,
  從/mdapi.asp下載的事例(即.py文件)是Python2.7的事例,理論上也支持Python3.x的。
  Python插口中的.dll文件理論適宜任何Python版本
  **C++插口:**支持所有支持調用DLL的語(yǔ)言,包括C++、Java、C#、VB.NET、易語(yǔ)言等。
  第1期發(fā)布的
  (1)Dataupdate主程序
  (2)A股類(lèi)CTP插口C++接口 (適合運行DataUpdate的同一臺機)
  (3)A股類(lèi)CTP插口C++插口的Demo 類(lèi)證券CTP插口的Demo
  (4)Dataupdate分布式程序 等待發(fā)布 行情數據更新分布式程序
  (5)Python MSSQL插口 適宜局域網(wǎng),多個(gè)DataUpdate采集共享
  (6)Python Access插口適宜運行DataUpdate的同一臺機
  Python ShareMemory插口 Python 共享顯存數據插口,適合運行DataUpdate的同一臺機
  同時(shí)提供了虛擬機環(huán)境,主要用于MSSQL數據庫插口和未來(lái)的 LocalNetwork插口(局域網(wǎng)網(wǎng)路數據插口)
  第2期發(fā)布內容,新增插口 ,2.2版
  (1)Python LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  (2)C++ LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  使用步驟(以大智慧為例):
  1)下載大智慧,并安裝大智慧程序
  收費版Level2版和免費版均可。
  大智慧官方下載:
  /detail/function_365.jsp?product=116
  2)安裝大智慧
  安裝大智慧,安裝完成,大智慧在桌面上。
  如果在虛擬機運行,對虛擬機由于路徑過(guò)長(cháng)問(wèn)題,可能不能直接安裝,可以在物理機安裝后,拷貝磁盤(pán)下的“dzh365”目錄
  
  安裝目錄到虛擬機運行大智慧程序
  
  3)注冊,并登陸大智慧
  
  也可使用QQ和陌陌登陸
  4)進(jìn)入大智慧股票排序模式
  
  點(diǎn)擊上圖中大智慧界面的黃色按紐,進(jìn)入”行情報價(jià)列表“
  
  5)在標題欄調出行列分隔線(xiàn)
  在大智慧中我們采用分隔線(xiàn)模式采集數據,所以須要調出分隔線(xiàn)
  右鍵選中列菜單的“列分隔線(xiàn)”和“行分隔線(xiàn)”
  對辨識的列從左至右進(jìn)行依次操作,2.1版本是12列
  也可以將全部列和行都設置分隔線(xiàn)。
  
  設置完成后,如下圖所示
  
  6)在大智慧菜單設置精典字體,字體大小和風(fēng)格顏色不要改動(dòng)
  
  
  7)啟動(dòng)采集程序,采集程序會(huì )手動(dòng)激活早已打開(kāi)的大智慧程序,并辨識標出第一行的數據,可以人工檢測辨識的數據是否正確。
 ?。ㄈ绻孀R錯誤,一般是因為字體沒(méi)有設置為精典字體造成的,請勿必選用精典字體重試)
  從下述網(wǎng)址下載
  
  解壓后,運行DataUpdate.exe
  
  8)若人工觀(guān)察辨識第一行的數字正確,即按DdtaUpdate.exe程序的按鍵開(kāi)啟辨識,大智慧在窗口后置手動(dòng)滾動(dòng),并辨識。
  通過(guò)API即可獲得行情的股票代碼的12個(gè)數據數組。
  目前只能辨識數字,無(wú)法辨識英文,所以大智慧中的“億”這類(lèi)英文字符難以辨識,請不要對非純數字的指標進(jìn)行辨識。
  
  仔細核實(shí)黃框的數字是否正確辨識,如果錯誤,可能是因為字體設置錯誤,請重新設置字體后重試
  
  如果正確,則激活DataUpdate.exe程序,并點(diǎn)擊按鍵
  DataUpdate.exe手動(dòng)最小化,并開(kāi)始滾動(dòng)窗口進(jìn)行辨識
  如果點(diǎn)擊任務(wù)欄圖標,即可最大化DataUpdate.exe,識別也i手動(dòng)停止,或者點(diǎn)擊按鍵停止。
  打開(kāi)C++和Python的API,即可獲得行情
  其中C++插口提供了和證券CTP插口一樣的方式,熟悉C++和CTP的同學(xué)更快上手
  1)共享顯存插口和Access插口只能在運行DataUpdate.exe的本機運行
  2)MSSQL插口可以寫(xiě)入MSSQL數據庫,被別的PC主機調用MSSQL數據庫獲得數據。
  3)局域網(wǎng)數據插口(2.2版之后發(fā)布)將發(fā)布到整個(gè)局域網(wǎng)路,局域網(wǎng)中的所有主機,通過(guò)API即可獲得行情信息。也可以在多個(gè)主機上運行DataUpdate.exe
  這樣數據更新速率都將推動(dòng)數倍。
  在證券開(kāi)戶(hù),綁定帳戶(hù)后即可手動(dòng)激活DataUpdate.exe的功能
  免費激活方式
  1.按步驟開(kāi)辦證券帳戶(hù),綁定證券帳戶(hù)激活
  宏源期貨是上市公司,屬于申萬(wàn)宏源
  網(wǎng)絡(luò )開(kāi)戶(hù)選擇宏源期貨,營(yíng)業(yè)部選擇上海營(yíng)業(yè)部
  推薦人填寫(xiě):上海量貝信息科技有限公司
  開(kāi)戶(hù)詳盡步驟:
  2.積分激活
  激活方式也可參考
  用戶(hù)注冊 | QuickLibTrade中國網(wǎng)站
  
  《期貨跟單軟件視頻教學(xué)4集》
  《酷操盤(pán)手期貨跟單軟件》
  《開(kāi)戶(hù)中國證券低傭金開(kāi)戶(hù)》
  《mdshare財經(jīng)數據接口包》
  《某python量化交易框架性能評測》
  python量化交易
  《Quicklib程序化交易框架》
  Caffe深度學(xué)習框架
  《量化界社區》
  Python人工智能算義縣
  tushare、A股Level2數據、A股行情插口、A股Level2行情插口、TuShare、中文財經(jīng)數據、期貨歷史TICK下載、歷史數據云盤(pán)下載、A股、期貨歷史數據下載、東方財富 Choice、金融數據研究終端、iFinD、Go-Goal數據終端、天軟數據、新浪Level2行情、恒生數據、數庫金融數據(收費)、和深度剖析API服務(wù)、萬(wàn)德Wind、通達信免費數據、免費歷史數據 查看全部

  
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  
  
  
  QuicklibTrade簡(jiǎn)介
  QuicklibTrade是一套簡(jiǎn)單易行的藍籌股程序化交易方案,主要采用對股票軟件客戶(hù)端(如大智慧、同花順、東方財富、通達信)數據的采集,提供給多種插口。支持直接調用公式編輯器的數據,大大簡(jiǎn)化了策略開(kāi)發(fā)。很多精典指標公式可以直接使用。
  關(guān)鍵是可以免費使用
  QuicklibTrade行情數據采集視頻教學(xué)
  采集和API調用講解
  /x/page/y0842b72xbh.html?pcsharecode=Y0h4qOSw&amp;sf=uri
  含借助虛擬機采集行情講解
  /x/page/b0822umt6kk.html?pcsharecode=JjoaXqFW&amp;sf=uri
  QuicklibTrade 免費的藍籌股Level2行情插口
  /
  注冊
  /register.html
  下載
  /mdapi.asp
  其它相關(guān)問(wèn)題請瀏覽
  /comm/category/20/
  第1期僅發(fā)布行情采集和插口,第2期發(fā)布交易插口和行情的局域網(wǎng)網(wǎng)路插口
  用于每臺主機僅能運行1個(gè)DataUpdate.exe,為了采用多個(gè)DataUpdate.exe來(lái)采集通過(guò)局域網(wǎng)網(wǎng)路插口共享數據來(lái)推動(dòng)更新速率,所以采用虛擬機形式。
  已經(jīng)提供了虛擬機鏡像云盤(pán)下載,主要用于行情的局域網(wǎng)網(wǎng)路插口,每個(gè)虛擬機可開(kāi)啟1份大智慧和DataUpdate.exe推動(dòng)數據更新速率
  QuicklibTrade構架如下圖所示:
  分為行情插口和交易插口,本文只講解行情插口,交易插口計劃2019年初發(fā)布。
  第一期行情插口2.1版支持大智慧的分隔線(xiàn)模式,字體選擇精典字體。開(kāi)始菜單預留了同花順、東方財富、通達信的數據采集方案菜單。
  1)支持行情數據采集
  2)支持指標數據采集
  3)支持交易訊號,交易策略可以使用大智慧公式編輯器開(kāi)發(fā),用特定的熟知表示買(mǎi)和賣(mài),將指標加載到大智慧的列中,接口辨識數據的數值,直接通過(guò)插口判定熟知來(lái)決定交易。
  每次采集支持12個(gè)數組同時(shí)采集,這12個(gè)數組可以是行情,可以是指標,可以是交易訊號。
  **運行平臺:**Windows7、Windows78、Windows10、WindowsServer2008、WindowsServer2012、WindowsServer2016等各個(gè)版本
  運行虛擬機的網(wǎng)路插口必須是64位操作系統
  其他插口32位和64位Windows操作系統均可。
  **硬件配置:**請使用單屏顯示器,使用2個(gè)及以上屏幕會(huì )導致數據錯亂
  支持的插口包括了Python插口和C++插口。
  **Python插口:**可直接被Python調用,
  從/mdapi.asp下載的事例(即.py文件)是Python2.7的事例,理論上也支持Python3.x的。
  Python插口中的.dll文件理論適宜任何Python版本
  **C++插口:**支持所有支持調用DLL的語(yǔ)言,包括C++、Java、C#、VB.NET、易語(yǔ)言等。
  第1期發(fā)布的
  (1)Dataupdate主程序
  (2)A股類(lèi)CTP插口C++接口 (適合運行DataUpdate的同一臺機)
  (3)A股類(lèi)CTP插口C++插口的Demo 類(lèi)證券CTP插口的Demo
  (4)Dataupdate分布式程序 等待發(fā)布 行情數據更新分布式程序
  (5)Python MSSQL插口 適宜局域網(wǎng),多個(gè)DataUpdate采集共享
  (6)Python Access插口適宜運行DataUpdate的同一臺機
  Python ShareMemory插口 Python 共享顯存數據插口,適合運行DataUpdate的同一臺機
  同時(shí)提供了虛擬機環(huán)境,主要用于MSSQL數據庫插口和未來(lái)的 LocalNetwork插口(局域網(wǎng)網(wǎng)路數據插口)
  第2期發(fā)布內容,新增插口 ,2.2版
  (1)Python LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  (2)C++ LocalNetwork插口 等待發(fā)布 Python 局域網(wǎng)共享數據插口(適合局域網(wǎng),多個(gè)DataUpdate同時(shí)采集共享)
  使用步驟(以大智慧為例):
  1)下載大智慧,并安裝大智慧程序
  收費版Level2版和免費版均可。
  大智慧官方下載:
  /detail/function_365.jsp?product=116
  2)安裝大智慧
  安裝大智慧,安裝完成,大智慧在桌面上。
  如果在虛擬機運行,對虛擬機由于路徑過(guò)長(cháng)問(wèn)題,可能不能直接安裝,可以在物理機安裝后,拷貝磁盤(pán)下的“dzh365”目錄
  
  安裝目錄到虛擬機運行大智慧程序
  
  3)注冊,并登陸大智慧
  
  也可使用QQ和陌陌登陸
  4)進(jìn)入大智慧股票排序模式
  
  點(diǎn)擊上圖中大智慧界面的黃色按紐,進(jìn)入”行情報價(jià)列表“
  
  5)在標題欄調出行列分隔線(xiàn)
  在大智慧中我們采用分隔線(xiàn)模式采集數據,所以須要調出分隔線(xiàn)
  右鍵選中列菜單的“列分隔線(xiàn)”和“行分隔線(xiàn)”
  對辨識的列從左至右進(jìn)行依次操作,2.1版本是12列
  也可以將全部列和行都設置分隔線(xiàn)。
  
  設置完成后,如下圖所示
  
  6)在大智慧菜單設置精典字體,字體大小和風(fēng)格顏色不要改動(dòng)
  
  
  7)啟動(dòng)采集程序,采集程序會(huì )手動(dòng)激活早已打開(kāi)的大智慧程序,并辨識標出第一行的數據,可以人工檢測辨識的數據是否正確。
 ?。ㄈ绻孀R錯誤,一般是因為字體沒(méi)有設置為精典字體造成的,請勿必選用精典字體重試)
  從下述網(wǎng)址下載
  
  解壓后,運行DataUpdate.exe
  
  8)若人工觀(guān)察辨識第一行的數字正確,即按DdtaUpdate.exe程序的按鍵開(kāi)啟辨識,大智慧在窗口后置手動(dòng)滾動(dòng),并辨識。
  通過(guò)API即可獲得行情的股票代碼的12個(gè)數據數組。
  目前只能辨識數字,無(wú)法辨識英文,所以大智慧中的“億”這類(lèi)英文字符難以辨識,請不要對非純數字的指標進(jìn)行辨識。
  
  仔細核實(shí)黃框的數字是否正確辨識,如果錯誤,可能是因為字體設置錯誤,請重新設置字體后重試
  
  如果正確,則激活DataUpdate.exe程序,并點(diǎn)擊按鍵
  DataUpdate.exe手動(dòng)最小化,并開(kāi)始滾動(dòng)窗口進(jìn)行辨識
  如果點(diǎn)擊任務(wù)欄圖標,即可最大化DataUpdate.exe,識別也i手動(dòng)停止,或者點(diǎn)擊按鍵停止。
  打開(kāi)C++和Python的API,即可獲得行情
  其中C++插口提供了和證券CTP插口一樣的方式,熟悉C++和CTP的同學(xué)更快上手
  1)共享顯存插口和Access插口只能在運行DataUpdate.exe的本機運行
  2)MSSQL插口可以寫(xiě)入MSSQL數據庫,被別的PC主機調用MSSQL數據庫獲得數據。
  3)局域網(wǎng)數據插口(2.2版之后發(fā)布)將發(fā)布到整個(gè)局域網(wǎng)路,局域網(wǎng)中的所有主機,通過(guò)API即可獲得行情信息。也可以在多個(gè)主機上運行DataUpdate.exe
  這樣數據更新速率都將推動(dòng)數倍。
  在證券開(kāi)戶(hù),綁定帳戶(hù)后即可手動(dòng)激活DataUpdate.exe的功能
  免費激活方式
  1.按步驟開(kāi)辦證券帳戶(hù),綁定證券帳戶(hù)激活
  宏源期貨是上市公司,屬于申萬(wàn)宏源
  網(wǎng)絡(luò )開(kāi)戶(hù)選擇宏源期貨,營(yíng)業(yè)部選擇上海營(yíng)業(yè)部
  推薦人填寫(xiě):上海量貝信息科技有限公司
  開(kāi)戶(hù)詳盡步驟:
  2.積分激活
  激活方式也可參考
  用戶(hù)注冊 | QuickLibTrade中國網(wǎng)站
  
  《期貨跟單軟件視頻教學(xué)4集》
  《酷操盤(pán)手期貨跟單軟件》
  《開(kāi)戶(hù)中國證券低傭金開(kāi)戶(hù)》
  《mdshare財經(jīng)數據接口包》
  《某python量化交易框架性能評測》
  python量化交易
  《Quicklib程序化交易框架》
  Caffe深度學(xué)習框架
  《量化界社區》
  Python人工智能算義縣
  tushare、A股Level2數據、A股行情插口、A股Level2行情插口、TuShare、中文財經(jīng)數據、期貨歷史TICK下載、歷史數據云盤(pán)下載、A股、期貨歷史數據下載、東方財富 Choice、金融數據研究終端、iFinD、Go-Goal數據終端、天軟數據、新浪Level2行情、恒生數據、數庫金融數據(收費)、和深度剖析API服務(wù)、萬(wàn)德Wind、通達信免費數據、免費歷史數據

免費下載:2019最新站群優(yōu)化超級蜘蛛池 引流必備,可轉讓后臺,自動(dòng)采集

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

  目錄
  蜘蛛池引流站群蜘蛛池 2019 seo優(yōu)化超級蜘蛛池 自動(dòng)采集網(wǎng)站優(yōu)化必備
  安裝教程:
  上傳后直接訪(fǎng)問(wèn)域名或域名/install進(jìn)行安裝。
  安裝條件建議:
   1、推薦使用Apache
2、PHP 5.4.0 及以上
3、數據庫版本不低于Mysql 5.0
  蜘蛛池是一種通過(guò)借助小型平臺權重來(lái)獲得百度收錄以及排行的一種程序,程序員常稱(chēng)為“蜘蛛池”。這是一種可以快速提高網(wǎng)站排名的一種程序,值得一提的是,它是手動(dòng)提高網(wǎng)站的排行和網(wǎng)站的收錄,這個(gè)療效是極其出色的。蜘蛛池程序可以幫助我們做哪些? 發(fā)了外鏈了貼子還不收錄,可競爭對手人家一樣是發(fā)同樣的站,人家沒(méi)發(fā)外鏈也收錄了,是吧!答:(因為人家養有了數目龐大的百度收錄蜘蛛爬蟲(chóng),有了蜘蛛池你也可以做到)
  seo優(yōu)化站群特色
  安全、高效,化的優(yōu)化借助php性能,使得運行流暢穩定
  獨創(chuàng )內容無(wú)緩存刷新不變,節省硬碟。防止搜索引擎辨識蜘蛛池
  蜘蛛池算法,輕松建立站點(diǎn)(電影、資訊、圖片、論壇等等)
  可以個(gè)性化每位網(wǎng)站的風(fēng)格、內容、站點(diǎn)模式、關(guān)鍵詞、外鏈等(自定義tkd、自定義外鏈關(guān)鍵詞、自定義泛域名前綴)
  ____________________
  有些老手會(huì )說(shuō),我自己也養有百度蜘蛛如何我的也不收錄呢?
  答:(因為你的百度收錄蜘蛛不夠多,不夠廣,來(lái)來(lái)回回都是這些低質(zhì)量的百度收錄爬蟲(chóng),收錄慢,而且甚至是根本不收錄了!——-蜘蛛池擁有多服務(wù)器,多域名,正規內容站點(diǎn)養著(zhù)百度收錄蜘蛛,分布廣,域名多,團隊化養著(zhù)蜘蛛,來(lái)源站點(diǎn)多,質(zhì)量高,每天都有新來(lái)的蜘蛛進(jìn)行爬取收錄您的外推貼子)
  蜘蛛池超級強悍的功能,全手動(dòng)采集,支持api二次開(kāi)發(fā)!
  也可以當作站群的源程序使用。
  支持給用戶(hù)開(kāi)帳號,全手動(dòng)發(fā)布,可用于租用蜘蛛池,發(fā)布外鏈使用!
  支持關(guān)鍵詞跳轉,全局跳轉!
  自動(dòng)采集(騰訊新聞(國內,軍事),新浪新聞(國際,軍事))
  新聞偽原創(chuàng ),加快收錄!
  支持導出txt外推網(wǎng)址,蜘蛛日記,索引池,權重池等等等,更多功能自行發(fā)覺(jué)!
   查看全部

  目錄
  蜘蛛池引流站群蜘蛛池 2019 seo優(yōu)化超級蜘蛛池 自動(dòng)采集網(wǎng)站優(yōu)化必備
  安裝教程:
  上傳后直接訪(fǎng)問(wèn)域名或域名/install進(jìn)行安裝。
  安裝條件建議:
   1、推薦使用Apache
2、PHP 5.4.0 及以上
3、數據庫版本不低于Mysql 5.0
  蜘蛛池是一種通過(guò)借助小型平臺權重來(lái)獲得百度收錄以及排行的一種程序,程序員常稱(chēng)為“蜘蛛池”。這是一種可以快速提高網(wǎng)站排名的一種程序,值得一提的是,它是手動(dòng)提高網(wǎng)站的排行和網(wǎng)站的收錄,這個(gè)療效是極其出色的。蜘蛛池程序可以幫助我們做哪些? 發(fā)了外鏈了貼子還不收錄,可競爭對手人家一樣是發(fā)同樣的站,人家沒(méi)發(fā)外鏈也收錄了,是吧!答:(因為人家養有了數目龐大的百度收錄蜘蛛爬蟲(chóng),有了蜘蛛池你也可以做到)
  seo優(yōu)化站群特色
  安全、高效,化的優(yōu)化借助php性能,使得運行流暢穩定
  獨創(chuàng )內容無(wú)緩存刷新不變,節省硬碟。防止搜索引擎辨識蜘蛛池
  蜘蛛池算法,輕松建立站點(diǎn)(電影、資訊、圖片、論壇等等)
  可以個(gè)性化每位網(wǎng)站的風(fēng)格、內容、站點(diǎn)模式、關(guān)鍵詞、外鏈等(自定義tkd、自定義外鏈關(guān)鍵詞、自定義泛域名前綴)
  ____________________
  有些老手會(huì )說(shuō),我自己也養有百度蜘蛛如何我的也不收錄呢?
  答:(因為你的百度收錄蜘蛛不夠多,不夠廣,來(lái)來(lái)回回都是這些低質(zhì)量的百度收錄爬蟲(chóng),收錄慢,而且甚至是根本不收錄了!——-蜘蛛池擁有多服務(wù)器,多域名,正規內容站點(diǎn)養著(zhù)百度收錄蜘蛛,分布廣,域名多,團隊化養著(zhù)蜘蛛,來(lái)源站點(diǎn)多,質(zhì)量高,每天都有新來(lái)的蜘蛛進(jìn)行爬取收錄您的外推貼子)
  蜘蛛池超級強悍的功能,全手動(dòng)采集,支持api二次開(kāi)發(fā)!
  也可以當作站群的源程序使用。
  支持給用戶(hù)開(kāi)帳號,全手動(dòng)發(fā)布,可用于租用蜘蛛池,發(fā)布外鏈使用!
  支持關(guān)鍵詞跳轉,全局跳轉!
  自動(dòng)采集(騰訊新聞(國內,軍事),新浪新聞(國際,軍事))
  新聞偽原創(chuàng ),加快收錄!
  支持導出txt外推網(wǎng)址,蜘蛛日記,索引池,權重池等等等,更多功能自行發(fā)覺(jué)!
  

如何從一竅不通入門(mén)大數據?

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

  不邀自答!
  很多初學(xué)者在萌生向大數據方向發(fā)展的看法以后,不免形成一些疑惑,應該如何入門(mén)?應該學(xué)習什么技術(shù)?學(xué)習路線(xiàn)又是哪些?
  所有萌生入行的看法與想要學(xué)習Java的朋友的本意是一樣的。崗位十分火,就業(yè)起薪比較高,,前景十分可觀(guān)?;径际沁@個(gè)緣由而憧憬大數據,但是對大數據卻不甚了解。
  如果你想學(xué)習,那么首先你須要學(xué)會(huì )編程,其次你須要把握物理,統計學(xué)的知識,最后融合應用,就可以想在數據方向發(fā)展,籠統來(lái)說(shuō),就是這樣的。但是僅僅這樣并沒(méi)有哪些幫助。
  現在你須要問(wèn)自己幾個(gè)問(wèn)題:
  對于計算機/軟件,你的興趣是哪些?
  是計算機專(zhuān)業(yè),對操作系統、硬件、網(wǎng)絡(luò )、服務(wù)器感興趣?
  是軟件專(zhuān)業(yè),對軟件開(kāi)發(fā)、編程、寫(xiě)代碼感興趣?
  還是物理、統計學(xué)專(zhuān)業(yè),對數據和數字非常感興趣。
  你自己的專(zhuān)業(yè)又是哪些?
  如果你是金融專(zhuān)業(yè),你可以學(xué)習,因為這結合上去你自己的專(zhuān)業(yè),將使你在只有你專(zhuān)業(yè)知識的競爭者之中脫穎而出,畢竟現今AI+已經(jīng)涉及到金融行業(yè)了。
  說(shuō)了這么多,無(wú)非就是想告訴你,大數據的三個(gè)大的發(fā)展方向:
  平臺搭建/優(yōu)化/運維/監控;
  大數據開(kāi)發(fā)/ 設計/ 架構;
  數據剖析/挖掘。
  請不要問(wèn)我那個(gè)容易,只能說(shuō)能賺錢(qián)的都不簡(jiǎn)單。
  
  說(shuō)一下大數據的四個(gè)典型的特點(diǎn):
  數據量大;點(diǎn)擊發(fā)放免費資料及課程
  數據類(lèi)型繁雜,(結構化、非結構化文本、日志、視頻、圖片、地理位置等);
  商業(yè)價(jià)值高,但須要在海量數據之上,通過(guò)數據剖析與機器學(xué)習快速的挖掘下來(lái);
  處理時(shí)效性高,海量數據的處理需求不再局限在離線(xiàn)估算當中。
  現如今,為了應對大數據的這幾個(gè)特性,開(kāi)源的大數據框架越來(lái)越多,越來(lái)越強,先列出一些常見(jiàn)的:
  文件儲存: N、Mesos
  日志搜集:Flume、Scribe、Logstash、Kibana
  消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
  查詢(xún)剖析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
  分布式協(xié)調服務(wù):Zookeeper
  集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
  數據挖掘、機器學(xué)習:Mahout、Spark MLLib
  數據同步:Sqoop
  任務(wù)調度:Oozie
  是不是眼花繚亂了,上面的那些內容,別談精通了,就算全部就會(huì )使用的,應該也沒(méi)幾個(gè)。咱們接下來(lái)就大數據開(kāi)發(fā)/ 設計/ 架構方向來(lái)了解一下學(xué)習路線(xiàn)。
  在接下的學(xué)習中,不論遇見(jiàn)哪些問(wèn)題,先試試搜索并自己解決。Google首選,其次百度。
  于入門(mén)者而言,官方文檔永遠是首選文檔。
  
  第一章:Hadoop
  在大數據儲存和估算中Hadoop可以算是開(kāi)山鼻祖,現在大多開(kāi)源的大數據框架都依賴(lài)Hadoop或則與它能挺好的兼容。
  關(guān)于Hadoop,你起碼須要搞清楚那些是哪些:
  Hadoop 1.0、Hadoop 2.0
  MapReduce、HDFS
  NameNode、DataNode
  JobTracker、TaskTracker
  Yarn、ResourceManager、NodeManager
  自己學(xué)會(huì )怎樣搭建Hadoop,先使它跑起來(lái)。建議先使用安裝包命令行安裝,不要使用管理工具安裝?,F在都用Hadoop 2.0。
  HDFS目錄操作命令;上傳、下載文件命令;提交運行MapReduce示例程序;打開(kāi)Hadoop WEB界面,查看Job運行狀態(tài),查看Job運行日志。知道Hadoop的系統日志在那里。
  以上完成以后,就應當去了解她們的原理了:
  MapReduce:如何分而治之;HDFS:數據究竟在那里,究竟哪些才是副本;
  Yarn究竟是什么,它能干哪些;NameNode究竟在干些哪些;Resource Manager究竟在干些哪些;
  如果有合適的學(xué)習網(wǎng)站,視頻就去聽(tīng)課,如果沒(méi)有或則比較喜歡書(shū)籍,也可以啃書(shū)。當然最好的方式是先去搜索下來(lái)那些是干哪些的,大概有了概念以后,然后再去聽(tīng)視頻。
  之后便是自己找尋一個(gè)事例:
  自己寫(xiě)一個(gè)(照抄也行)WordCount程序,
  打包并遞交到Hadoop運行。你不會(huì )Java?Shell、Python都可以,有個(gè)東西叫Hadoop Streaming。如果你認真完成了以上幾步,恭喜你,你的一只腳早已進(jìn)來(lái)了。
  第二章:更高效的WordCount
  在這里,一定要學(xué)習SQL,它會(huì )對你的工作有很大的幫助。
  就像是你寫(xiě)(或者抄)的WordCount一共有幾行代碼?但是你用SQL就十分簡(jiǎn)單了,例如:
  SELECT word,COUNT(1) FROM wordcount GROUP BY word;
  這便是SQL的魅力,編程須要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理剖析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線(xiàn)估算還是實(shí)時(shí)估算,越來(lái)越多的大數據處理框架都在積極提供SQL插口。
  另外就是SQL On Hadoop之Hive于大數據而言一定要學(xué)習的。
  什么是Hive?
  官方解釋如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax。
  為什么說(shuō)Hive是數據庫房工具,而不是數據庫工具呢?
  有的同學(xué)可能不知道數據庫房,數據庫房是邏輯上的概念,底層使用的是數據庫,數據庫房中的數據有這兩個(gè)特征:最全的歷史數據(海量)、相對穩定的;所謂相對穩定,指的是數據庫房不同于業(yè)務(wù)系統數據庫,數據常常會(huì )被更新,數據一旦步入數據庫房,很少會(huì )被更新和刪掉,只會(huì )被大量查詢(xún)。而Hive,也是具備這兩個(gè)特性,因此,Hive適宜做海量數據的數據庫房工具,而不是數據庫工具。
  了解了它的作用以后,就是安裝配置Hive的環(huán)節,當可以正常步入Hive命令行是,就是安裝配置成功了。
  了解Hive是如何工作的
  學(xué)會(huì )Hive的基本命令:
  創(chuàng )建、刪除表;加載數據到表;下載Hive表的數據;
  MapReduce的原理(還是那種精典的題目,一個(gè)10G大小的文件,給定1G大小的顯存,如何使用Java程序統計出現次數最多的10個(gè)詞組及次數);
  HDFS讀寫(xiě)數據的流程;向HDFS中PUT數據;從HDFS中下載數據;
  自己會(huì )寫(xiě)簡(jiǎn)單的MapReduce程序,運行出現問(wèn)題,知道在那兒查看日志;
  會(huì )寫(xiě)簡(jiǎn)單的Select、Where、group by等SQL句子;
  Hive SQL轉換成MapReduce的大致流程;
  Hive中常見(jiàn)的句子:創(chuàng )建表、刪除表、往表中加載數據、分區、將表中數據下載到本地;
  從前面的學(xué)習,你已然了解到,HDFS是Hadoop提供的分布式儲存框架,它可以拿來(lái)儲存海量數據,MapReduce是Hadoop提供的分布式估算框架,它可以拿來(lái)統計和剖析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL插口,開(kāi)發(fā)人員只須要編撰簡(jiǎn)單易上手的SQL句子,Hive負責把SQL翻譯成MapReduce,提交運行。
  此時(shí),你的”大數據平臺”是這樣的:那么問(wèn)題來(lái)了,海量數據怎么到HDFS上呢?
  第三章:數據采集
  把各個(gè)數據源的數據采集到Hadoop上。
  3.1 HDFS PUT命令
  這個(gè)在上面你應當早已使用過(guò)了。put命令在實(shí)際環(huán)境中也比較常用,通常配合shell、python等腳本語(yǔ)言來(lái)使用。建議熟練把握。
  3.2 HDFS API
  HDFS提供了寫(xiě)數據的API,自己用編程語(yǔ)言將數據寫(xiě)入HDFS,put命令本身也是使用API。
  實(shí)際環(huán)境中通常自己較少編撰程序使用API來(lái)寫(xiě)數據到HDFS,通常都是使用其他框架封裝好的技巧。比如:Hive中的INSERT句子,Spark中的saveAsTextfile等。建議了解原理,會(huì )寫(xiě)Demo。
  3.3 Sqoop
  Sqoop是一個(gè)主要用于Hadoop/Hive與傳統關(guān)系型數據庫,Oracle、MySQL、SQLServer等之間進(jìn)行數據交換的開(kāi)源框架。就像Hive把SQL翻譯成MapReduce一樣,Sqoop把你指定的參數翻譯成MapReduce,提交到Hadoop運行,完成Hadoop與其他數據庫之間的數據交換。
  自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復雜)。了解Sqoop常用的配置參數和技巧。
  使用Sqoop完成從MySQL同步數據到HDFS;使用Sqoop完成從MySQL同步數據到Hive表;如果后續選型確定使用Sqoop作為數據交換工具,那么建議熟練把握,否則,了解和會(huì )用Demo即可。
  3.4 Flume
  Flume是一個(gè)分布式的海量日志采集和傳輸框架,因為“采集和傳輸框架”,所以它并不適宜關(guān)系型數據庫的數據采集和傳輸。Flume可以實(shí)時(shí)的從網(wǎng)路合同、消息系統、文件系統采集日志,并傳輸到HDFS上。
  因此,如果你的業(yè)務(wù)有這種數據源的數據,并且須要實(shí)時(shí)的采集,那么就應當考慮使用Flume。
  下載和配置Flume。使用Flume監控一個(gè)不斷追加數據的文件,并將數據傳輸到HDFS;Flume的配置和使用較為復雜,如果你沒(méi)有足夠的興趣和耐心,可以先跳過(guò)Flume。
  3.5 阿里開(kāi)源的DataX
  之所以介紹這個(gè),是因為我們公司目前使用的Hadoop與關(guān)系型數據庫數據交換的工具,就是之前基于DataX開(kāi)發(fā)的,非常好用。
  可以參考我的博文《異構數據源海量數據交換工具-Taobao DataX 下載和使用》?,F在DataX早已是3.0版本,支持好多數據源。你也可以在其之上做二次開(kāi)發(fā)。有興趣的可以研究和使用一下,對比一下它與Sqoop。
  第四章:把Hadoop上的數據搞到別處去
  Hive和MapReduce進(jìn)行剖析了。那么接下來(lái)的問(wèn)題是,分析完的結果怎樣從Hadoop上同步到其他系統和應用中去呢?其實(shí),此處的方式和第三章基本一致的。
  HDFS GET命令:把HDFS上的文件GET到本地。需要熟練把握。
  HDFS API:同3.2.
  Sqoop:同3.3.使用Sqoop完成將HDFS上的文件同步到MySQL;使用Sqoop完成將Hive表中的數據同步到MySQL。
  如果你早已根據流程認真完整的走了一遍,那么你應當早已具備以下技能和知識點(diǎn):
  知道怎樣把已有的數據采集到HDFS上,包括離線(xiàn)采集和實(shí)時(shí)采集;
  知道sqoop是HDFS和其他數據源之間的數據交換工具;
  知道flume可以用作實(shí)時(shí)的日志采集。
  從后面的學(xué)習,對于大數據平臺,你已然把握的不少的知識和技能,搭建Hadoop集群,把數據采集到Hadoop上,使用Hive和MapReduce來(lái)剖析數據,把剖析結果同步到其他數據源。
  接下來(lái)的問(wèn)題來(lái)了,Hive使用的越來(lái)越多,你會(huì )發(fā)覺(jué)好多不爽的地方,特別是速率慢,大多情況下,明明我的數據量太小,它都要申請資源,啟動(dòng)MapReduce來(lái)執行。
  第五章:SQL
  其實(shí)你們都早已發(fā)覺(jué)Hive后臺使用MapReduce作為執行引擎,實(shí)在是有點(diǎn)慢。因此SQL On Hadoop的框架越來(lái)越多,點(diǎn)擊發(fā)放免費資料及課程按我的了解,最常用的根據流行度依次為SparkSQL、Impala和Presto.這三種框架基于半顯存或則全顯存,提供了SQL插口來(lái)快速查詢(xún)剖析Hadoop上的數據。
  我們目前使用的是SparkSQL,至于為何用SparkSQL,原因大約有以下吧:使用Spark還做了其他事情,不想引入過(guò)多的框架;Impala對顯存的需求很大,沒(méi)有過(guò)多資源布署。
  5.1 關(guān)于Spark和SparkSQL
  什么是Spark,什么是SparkSQL。
  Spark有的核心概念及名詞解釋。
  SparkSQL和Spark是哪些關(guān)系,SparkSQL和Hive是哪些關(guān)系。
  SparkSQL為何比Hive跑的快。
  5.2 如何布署和運行SparkSQL
  Spark有什么布署模式?
  如何在Yarn上運行SparkSQL?
  使用SparkSQL查詢(xún)Hive中的表。Spark不是一門(mén)短時(shí)間內能夠把握的技術(shù),因此建議在了解了Spark以后,可以先從SparkSQL入手,循序漸進(jìn)。
  關(guān)于Spark和SparkSQL,如果你認真完成了里面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  第六章:數據多次借助
  請不要被這個(gè)名子所誘惑。其實(shí)我想說(shuō)的是數據的一次采集、多次消費。
  在實(shí)際業(yè)務(wù)場(chǎng)景下,特別是對于一些監控日志,想即時(shí)的從日志中了解一些指標(關(guān)于實(shí)時(shí)估算,后面章節會(huì )有介紹),這時(shí)候,從HDFS上剖析就很慢了,盡管是通過(guò)Flume采集的,但Flume也不能間隔太短就往HDFS上滾動(dòng)文件,這樣會(huì )導致小文件非常多。
  為了滿(mǎn)足數據的一次采集、多次消費的需求,這里要說(shuō)的便是Kafka。
  關(guān)于Kafka:什么是Kafka?Kafka的核心概念及名詞解釋。
  如何布署和使用Kafka:使用單機布署Kafka,并成功運行自帶的生產(chǎn)者和消費者事例。使用Java程序自己編撰并運行生產(chǎn)者和消費者程序。Flume和Kafka的集成,使用Flume監控日志,并將日志數據實(shí)時(shí)發(fā)送至Kafka。
  如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  這時(shí),使用Flume采集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個(gè)消費者同時(shí)消費,其中一個(gè)消費者,就是將數據同步到HDFS。
  如果你已然認真完整的學(xué)習了以上的內容,那么你應當早已具備以下技能和知識點(diǎn):
  為什么Spark比MapReduce快。
  使用SparkSQL取代Hive,更快的運行SQL。
  使用Kafka完成數據的一次搜集,多次消費構架。
  自己可以寫(xiě)程序完成Kafka的生產(chǎn)者和消費者。
  從后面的學(xué)習,你已然把握了大數據平臺中的數據采集、數據儲存和估算、數據交換等大部分技能,而這其中的每一步,都須要一個(gè)任務(wù)(程序)來(lái)完成,各個(gè)任務(wù)之間又存在一定的依賴(lài)性,比如,必須等數據采集任務(wù)成功完成后,數據估算任務(wù)能夠開(kāi)始運行。如果一個(gè)任務(wù)執行失敗,需要給開(kāi)發(fā)運維人員發(fā)送告警,同時(shí)須要提供完整的日志來(lái)便捷查錯。
  第七章:越來(lái)越多的剖析任務(wù)
  不僅僅是剖析任務(wù),數據采集、數據交換同樣是一個(gè)個(gè)的任務(wù)。這些任務(wù)中,有的是定時(shí)觸發(fā),有點(diǎn)則須要依賴(lài)其他任務(wù)來(lái)觸發(fā)。當平臺中有幾百上千個(gè)任務(wù)須要維護和運行時(shí)侯,僅僅靠crontab遠遠不夠了,這時(shí)便須要一個(gè)調度監控系統來(lái)完成這件事。調度監控系統是整個(gè)數據平臺的中樞系統,類(lèi)似于A(yíng)ppMaster,負責分配和監控任務(wù)。
  7.1 Apache Oozie
  Oozie是哪些?有什么功能?
  Oozie可以調度什么類(lèi)型的任務(wù)(程序)?
  Oozie可以支持什么任務(wù)觸發(fā)形式?
  安裝配置Oozie。
  7.2 其他開(kāi)源的任務(wù)調度系統
  Azkaban,light-task-scheduler,Zeus,等等。另外,我那邊是之前單獨開(kāi)發(fā)的任務(wù)調度與監控系統,具體請參考《大數據平臺任務(wù)調度與監控系統》。如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的:
  第八章:我的數據要實(shí)時(shí)
  在第六章介紹Kafka的時(shí)侯提及了一些須要實(shí)時(shí)指標的業(yè)務(wù)場(chǎng)景,實(shí)時(shí)基本可以分為絕對實(shí)時(shí)和準實(shí)時(shí),絕對實(shí)時(shí)的延后要求通常在毫秒級,準實(shí)時(shí)的延后要求通常在秒、分鐘級。對于須要絕對實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,用的比較多的是Storm,對于其他準實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話(huà),也可以自己寫(xiě)程序來(lái)做。
  8.1 Storm
  什么是Storm?有什么可能的應用場(chǎng)景?
  Storm由什么核心組件構成,各自兼任哪些角色?
  Storm的簡(jiǎn)單安裝和布署。
  自己編撰Demo程序,使用Storm完成實(shí)時(shí)數據流估算。
  8.2 Spark Streaming
  什么是Spark Streaming,它和Spark是哪些關(guān)系?
  Spark Streaming和Storm比較,各有哪些優(yōu)缺點(diǎn)?
  使用Kafka + Spark Streaming,完成實(shí)時(shí)估算的Demo程序。
  至此,你的大數據平臺底層構架早已成形了,其中包括了數據采集、數據儲存與估算(離線(xiàn)和實(shí)時(shí))、數據同步、任務(wù)調度與監控這幾大模塊。接下來(lái)是時(shí)侯考慮怎樣更好的對外提供數據了。
  第九章:數據要對外
  通常對外(業(yè)務(wù))提供數據訪(fǎng)問(wèn),大體上收錄以下方面。
  離線(xiàn):比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;離線(xiàn)數據的提供可以采用Sqoop、DataX等離線(xiàn)數據交換工具。
  實(shí)時(shí):比如,在線(xiàn)網(wǎng)站的推薦系統,需要實(shí)時(shí)從數據平臺中獲取給用戶(hù)的推薦數據,這種要求延時(shí)特別低(50毫秒以?xún)龋?。根據延時(shí)要求和實(shí)時(shí)數據的查詢(xún)須要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
  OLAP剖析:OLAP不僅要求底層的數據模型比較規范,另外,對查詢(xún)的響應速率要求也越來(lái)越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那么Kylin是最好的選擇。
  即席查詢(xún):即席查詢(xún)的數據比較隨便,一般很難構建通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。
  這么多比較成熟的框架和方案,需要結合自己的業(yè)務(wù)需求及數據平臺技術(shù)構架,選擇合適的。原則只有一個(gè):越簡(jiǎn)單越穩定的,就是最好的。點(diǎn)擊發(fā)放免費資料及課程
  如果你已然把握了怎樣挺好的對外(業(yè)務(wù))提供數據,那么你的“大數據平臺”應該是這樣的:
  第十章:牛逼高大上的機器學(xué)習
  關(guān)于這塊,也只能是簡(jiǎn)單介紹一下了,研究不深入。在業(yè)務(wù)中,遇到的能用機器學(xué)習解決的問(wèn)題大約如此三類(lèi):
  分類(lèi)問(wèn)題:包括二分類(lèi)和多分類(lèi),二分類(lèi)就是解決了預測的問(wèn)題,就像預測一封電郵是否垃圾郵件;多分類(lèi)解決的是文本的分類(lèi);
  聚類(lèi)問(wèn)題:從用戶(hù)搜索過(guò)的關(guān)鍵詞,對用戶(hù)進(jìn)行大約的歸類(lèi)。 查看全部

  不邀自答!
  很多初學(xué)者在萌生向大數據方向發(fā)展的看法以后,不免形成一些疑惑,應該如何入門(mén)?應該學(xué)習什么技術(shù)?學(xué)習路線(xiàn)又是哪些?
  所有萌生入行的看法與想要學(xué)習Java的朋友的本意是一樣的。崗位十分火,就業(yè)起薪比較高,,前景十分可觀(guān)?;径际沁@個(gè)緣由而憧憬大數據,但是對大數據卻不甚了解。
  如果你想學(xué)習,那么首先你須要學(xué)會(huì )編程,其次你須要把握物理,統計學(xué)的知識,最后融合應用,就可以想在數據方向發(fā)展,籠統來(lái)說(shuō),就是這樣的。但是僅僅這樣并沒(méi)有哪些幫助。
  現在你須要問(wèn)自己幾個(gè)問(wèn)題:
  對于計算機/軟件,你的興趣是哪些?
  是計算機專(zhuān)業(yè),對操作系統、硬件、網(wǎng)絡(luò )、服務(wù)器感興趣?
  是軟件專(zhuān)業(yè),對軟件開(kāi)發(fā)、編程、寫(xiě)代碼感興趣?
  還是物理、統計學(xué)專(zhuān)業(yè),對數據和數字非常感興趣。
  你自己的專(zhuān)業(yè)又是哪些?
  如果你是金融專(zhuān)業(yè),你可以學(xué)習,因為這結合上去你自己的專(zhuān)業(yè),將使你在只有你專(zhuān)業(yè)知識的競爭者之中脫穎而出,畢竟現今AI+已經(jīng)涉及到金融行業(yè)了。
  說(shuō)了這么多,無(wú)非就是想告訴你,大數據的三個(gè)大的發(fā)展方向:
  平臺搭建/優(yōu)化/運維/監控;
  大數據開(kāi)發(fā)/ 設計/ 架構;
  數據剖析/挖掘。
  請不要問(wèn)我那個(gè)容易,只能說(shuō)能賺錢(qián)的都不簡(jiǎn)單。
  
  說(shuō)一下大數據的四個(gè)典型的特點(diǎn):
  數據量大;點(diǎn)擊發(fā)放免費資料及課程
  數據類(lèi)型繁雜,(結構化、非結構化文本、日志、視頻、圖片、地理位置等);
  商業(yè)價(jià)值高,但須要在海量數據之上,通過(guò)數據剖析與機器學(xué)習快速的挖掘下來(lái);
  處理時(shí)效性高,海量數據的處理需求不再局限在離線(xiàn)估算當中。
  現如今,為了應對大數據的這幾個(gè)特性,開(kāi)源的大數據框架越來(lái)越多,越來(lái)越強,先列出一些常見(jiàn)的:
  文件儲存: N、Mesos
  日志搜集:Flume、Scribe、Logstash、Kibana
  消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
  查詢(xún)剖析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
  分布式協(xié)調服務(wù):Zookeeper
  集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
  數據挖掘、機器學(xué)習:Mahout、Spark MLLib
  數據同步:Sqoop
  任務(wù)調度:Oozie
  是不是眼花繚亂了,上面的那些內容,別談精通了,就算全部就會(huì )使用的,應該也沒(méi)幾個(gè)。咱們接下來(lái)就大數據開(kāi)發(fā)/ 設計/ 架構方向來(lái)了解一下學(xué)習路線(xiàn)。
  在接下的學(xué)習中,不論遇見(jiàn)哪些問(wèn)題,先試試搜索并自己解決。Google首選,其次百度。
  于入門(mén)者而言,官方文檔永遠是首選文檔。
  
  第一章:Hadoop
  在大數據儲存和估算中Hadoop可以算是開(kāi)山鼻祖,現在大多開(kāi)源的大數據框架都依賴(lài)Hadoop或則與它能挺好的兼容。
  關(guān)于Hadoop,你起碼須要搞清楚那些是哪些:
  Hadoop 1.0、Hadoop 2.0
  MapReduce、HDFS
  NameNode、DataNode
  JobTracker、TaskTracker
  Yarn、ResourceManager、NodeManager
  自己學(xué)會(huì )怎樣搭建Hadoop,先使它跑起來(lái)。建議先使用安裝包命令行安裝,不要使用管理工具安裝?,F在都用Hadoop 2.0。
  HDFS目錄操作命令;上傳、下載文件命令;提交運行MapReduce示例程序;打開(kāi)Hadoop WEB界面,查看Job運行狀態(tài),查看Job運行日志。知道Hadoop的系統日志在那里。
  以上完成以后,就應當去了解她們的原理了:
  MapReduce:如何分而治之;HDFS:數據究竟在那里,究竟哪些才是副本;
  Yarn究竟是什么,它能干哪些;NameNode究竟在干些哪些;Resource Manager究竟在干些哪些;
  如果有合適的學(xué)習網(wǎng)站,視頻就去聽(tīng)課,如果沒(méi)有或則比較喜歡書(shū)籍,也可以啃書(shū)。當然最好的方式是先去搜索下來(lái)那些是干哪些的,大概有了概念以后,然后再去聽(tīng)視頻。
  之后便是自己找尋一個(gè)事例:
  自己寫(xiě)一個(gè)(照抄也行)WordCount程序,
  打包并遞交到Hadoop運行。你不會(huì )Java?Shell、Python都可以,有個(gè)東西叫Hadoop Streaming。如果你認真完成了以上幾步,恭喜你,你的一只腳早已進(jìn)來(lái)了。
  第二章:更高效的WordCount
  在這里,一定要學(xué)習SQL,它會(huì )對你的工作有很大的幫助。
  就像是你寫(xiě)(或者抄)的WordCount一共有幾行代碼?但是你用SQL就十分簡(jiǎn)單了,例如:
  SELECT word,COUNT(1) FROM wordcount GROUP BY word;
  這便是SQL的魅力,編程須要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理剖析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線(xiàn)估算還是實(shí)時(shí)估算,越來(lái)越多的大數據處理框架都在積極提供SQL插口。
  另外就是SQL On Hadoop之Hive于大數據而言一定要學(xué)習的。
  什么是Hive?
  官方解釋如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax。
  為什么說(shuō)Hive是數據庫房工具,而不是數據庫工具呢?
  有的同學(xué)可能不知道數據庫房,數據庫房是邏輯上的概念,底層使用的是數據庫,數據庫房中的數據有這兩個(gè)特征:最全的歷史數據(海量)、相對穩定的;所謂相對穩定,指的是數據庫房不同于業(yè)務(wù)系統數據庫,數據常常會(huì )被更新,數據一旦步入數據庫房,很少會(huì )被更新和刪掉,只會(huì )被大量查詢(xún)。而Hive,也是具備這兩個(gè)特性,因此,Hive適宜做海量數據的數據庫房工具,而不是數據庫工具。
  了解了它的作用以后,就是安裝配置Hive的環(huán)節,當可以正常步入Hive命令行是,就是安裝配置成功了。
  了解Hive是如何工作的
  學(xué)會(huì )Hive的基本命令:
  創(chuàng )建、刪除表;加載數據到表;下載Hive表的數據;
  MapReduce的原理(還是那種精典的題目,一個(gè)10G大小的文件,給定1G大小的顯存,如何使用Java程序統計出現次數最多的10個(gè)詞組及次數);
  HDFS讀寫(xiě)數據的流程;向HDFS中PUT數據;從HDFS中下載數據;
  自己會(huì )寫(xiě)簡(jiǎn)單的MapReduce程序,運行出現問(wèn)題,知道在那兒查看日志;
  會(huì )寫(xiě)簡(jiǎn)單的Select、Where、group by等SQL句子;
  Hive SQL轉換成MapReduce的大致流程;
  Hive中常見(jiàn)的句子:創(chuàng )建表、刪除表、往表中加載數據、分區、將表中數據下載到本地;
  從前面的學(xué)習,你已然了解到,HDFS是Hadoop提供的分布式儲存框架,它可以拿來(lái)儲存海量數據,MapReduce是Hadoop提供的分布式估算框架,它可以拿來(lái)統計和剖析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL插口,開(kāi)發(fā)人員只須要編撰簡(jiǎn)單易上手的SQL句子,Hive負責把SQL翻譯成MapReduce,提交運行。
  此時(shí),你的”大數據平臺”是這樣的:那么問(wèn)題來(lái)了,海量數據怎么到HDFS上呢?
  第三章:數據采集
  把各個(gè)數據源的數據采集到Hadoop上。
  3.1 HDFS PUT命令
  這個(gè)在上面你應當早已使用過(guò)了。put命令在實(shí)際環(huán)境中也比較常用,通常配合shell、python等腳本語(yǔ)言來(lái)使用。建議熟練把握。
  3.2 HDFS API
  HDFS提供了寫(xiě)數據的API,自己用編程語(yǔ)言將數據寫(xiě)入HDFS,put命令本身也是使用API。
  實(shí)際環(huán)境中通常自己較少編撰程序使用API來(lái)寫(xiě)數據到HDFS,通常都是使用其他框架封裝好的技巧。比如:Hive中的INSERT句子,Spark中的saveAsTextfile等。建議了解原理,會(huì )寫(xiě)Demo。
  3.3 Sqoop
  Sqoop是一個(gè)主要用于Hadoop/Hive與傳統關(guān)系型數據庫,Oracle、MySQL、SQLServer等之間進(jìn)行數據交換的開(kāi)源框架。就像Hive把SQL翻譯成MapReduce一樣,Sqoop把你指定的參數翻譯成MapReduce,提交到Hadoop運行,完成Hadoop與其他數據庫之間的數據交換。
  自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復雜)。了解Sqoop常用的配置參數和技巧。
  使用Sqoop完成從MySQL同步數據到HDFS;使用Sqoop完成從MySQL同步數據到Hive表;如果后續選型確定使用Sqoop作為數據交換工具,那么建議熟練把握,否則,了解和會(huì )用Demo即可。
  3.4 Flume
  Flume是一個(gè)分布式的海量日志采集和傳輸框架,因為“采集和傳輸框架”,所以它并不適宜關(guān)系型數據庫的數據采集和傳輸。Flume可以實(shí)時(shí)的從網(wǎng)路合同、消息系統、文件系統采集日志,并傳輸到HDFS上。
  因此,如果你的業(yè)務(wù)有這種數據源的數據,并且須要實(shí)時(shí)的采集,那么就應當考慮使用Flume。
  下載和配置Flume。使用Flume監控一個(gè)不斷追加數據的文件,并將數據傳輸到HDFS;Flume的配置和使用較為復雜,如果你沒(méi)有足夠的興趣和耐心,可以先跳過(guò)Flume。
  3.5 阿里開(kāi)源的DataX
  之所以介紹這個(gè),是因為我們公司目前使用的Hadoop與關(guān)系型數據庫數據交換的工具,就是之前基于DataX開(kāi)發(fā)的,非常好用。
  可以參考我的博文《異構數據源海量數據交換工具-Taobao DataX 下載和使用》?,F在DataX早已是3.0版本,支持好多數據源。你也可以在其之上做二次開(kāi)發(fā)。有興趣的可以研究和使用一下,對比一下它與Sqoop。
  第四章:把Hadoop上的數據搞到別處去
  Hive和MapReduce進(jìn)行剖析了。那么接下來(lái)的問(wèn)題是,分析完的結果怎樣從Hadoop上同步到其他系統和應用中去呢?其實(shí),此處的方式和第三章基本一致的。
  HDFS GET命令:把HDFS上的文件GET到本地。需要熟練把握。
  HDFS API:同3.2.
  Sqoop:同3.3.使用Sqoop完成將HDFS上的文件同步到MySQL;使用Sqoop完成將Hive表中的數據同步到MySQL。
  如果你早已根據流程認真完整的走了一遍,那么你應當早已具備以下技能和知識點(diǎn):
  知道怎樣把已有的數據采集到HDFS上,包括離線(xiàn)采集和實(shí)時(shí)采集;
  知道sqoop是HDFS和其他數據源之間的數據交換工具;
  知道flume可以用作實(shí)時(shí)的日志采集。
  從后面的學(xué)習,對于大數據平臺,你已然把握的不少的知識和技能,搭建Hadoop集群,把數據采集到Hadoop上,使用Hive和MapReduce來(lái)剖析數據,把剖析結果同步到其他數據源。
  接下來(lái)的問(wèn)題來(lái)了,Hive使用的越來(lái)越多,你會(huì )發(fā)覺(jué)好多不爽的地方,特別是速率慢,大多情況下,明明我的數據量太小,它都要申請資源,啟動(dòng)MapReduce來(lái)執行。
  第五章:SQL
  其實(shí)你們都早已發(fā)覺(jué)Hive后臺使用MapReduce作為執行引擎,實(shí)在是有點(diǎn)慢。因此SQL On Hadoop的框架越來(lái)越多,點(diǎn)擊發(fā)放免費資料及課程按我的了解,最常用的根據流行度依次為SparkSQL、Impala和Presto.這三種框架基于半顯存或則全顯存,提供了SQL插口來(lái)快速查詢(xún)剖析Hadoop上的數據。
  我們目前使用的是SparkSQL,至于為何用SparkSQL,原因大約有以下吧:使用Spark還做了其他事情,不想引入過(guò)多的框架;Impala對顯存的需求很大,沒(méi)有過(guò)多資源布署。
  5.1 關(guān)于Spark和SparkSQL
  什么是Spark,什么是SparkSQL。
  Spark有的核心概念及名詞解釋。
  SparkSQL和Spark是哪些關(guān)系,SparkSQL和Hive是哪些關(guān)系。
  SparkSQL為何比Hive跑的快。
  5.2 如何布署和運行SparkSQL
  Spark有什么布署模式?
  如何在Yarn上運行SparkSQL?
  使用SparkSQL查詢(xún)Hive中的表。Spark不是一門(mén)短時(shí)間內能夠把握的技術(shù),因此建議在了解了Spark以后,可以先從SparkSQL入手,循序漸進(jìn)。
  關(guān)于Spark和SparkSQL,如果你認真完成了里面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  第六章:數據多次借助
  請不要被這個(gè)名子所誘惑。其實(shí)我想說(shuō)的是數據的一次采集、多次消費。
  在實(shí)際業(yè)務(wù)場(chǎng)景下,特別是對于一些監控日志,想即時(shí)的從日志中了解一些指標(關(guān)于實(shí)時(shí)估算,后面章節會(huì )有介紹),這時(shí)候,從HDFS上剖析就很慢了,盡管是通過(guò)Flume采集的,但Flume也不能間隔太短就往HDFS上滾動(dòng)文件,這樣會(huì )導致小文件非常多。
  為了滿(mǎn)足數據的一次采集、多次消費的需求,這里要說(shuō)的便是Kafka。
  關(guān)于Kafka:什么是Kafka?Kafka的核心概念及名詞解釋。
  如何布署和使用Kafka:使用單機布署Kafka,并成功運行自帶的生產(chǎn)者和消費者事例。使用Java程序自己編撰并運行生產(chǎn)者和消費者程序。Flume和Kafka的集成,使用Flume監控日志,并將日志數據實(shí)時(shí)發(fā)送至Kafka。
  如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的。
  這時(shí),使用Flume采集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個(gè)消費者同時(shí)消費,其中一個(gè)消費者,就是將數據同步到HDFS。
  如果你已然認真完整的學(xué)習了以上的內容,那么你應當早已具備以下技能和知識點(diǎn):
  為什么Spark比MapReduce快。
  使用SparkSQL取代Hive,更快的運行SQL。
  使用Kafka完成數據的一次搜集,多次消費構架。
  自己可以寫(xiě)程序完成Kafka的生產(chǎn)者和消費者。
  從后面的學(xué)習,你已然把握了大數據平臺中的數據采集、數據儲存和估算、數據交換等大部分技能,而這其中的每一步,都須要一個(gè)任務(wù)(程序)來(lái)完成,各個(gè)任務(wù)之間又存在一定的依賴(lài)性,比如,必須等數據采集任務(wù)成功完成后,數據估算任務(wù)能夠開(kāi)始運行。如果一個(gè)任務(wù)執行失敗,需要給開(kāi)發(fā)運維人員發(fā)送告警,同時(shí)須要提供完整的日志來(lái)便捷查錯。
  第七章:越來(lái)越多的剖析任務(wù)
  不僅僅是剖析任務(wù),數據采集、數據交換同樣是一個(gè)個(gè)的任務(wù)。這些任務(wù)中,有的是定時(shí)觸發(fā),有點(diǎn)則須要依賴(lài)其他任務(wù)來(lái)觸發(fā)。當平臺中有幾百上千個(gè)任務(wù)須要維護和運行時(shí)侯,僅僅靠crontab遠遠不夠了,這時(shí)便須要一個(gè)調度監控系統來(lái)完成這件事。調度監控系統是整個(gè)數據平臺的中樞系統,類(lèi)似于A(yíng)ppMaster,負責分配和監控任務(wù)。
  7.1 Apache Oozie
  Oozie是哪些?有什么功能?
  Oozie可以調度什么類(lèi)型的任務(wù)(程序)?
  Oozie可以支持什么任務(wù)觸發(fā)形式?
  安裝配置Oozie。
  7.2 其他開(kāi)源的任務(wù)調度系統
  Azkaban,light-task-scheduler,Zeus,等等。另外,我那邊是之前單獨開(kāi)發(fā)的任務(wù)調度與監控系統,具體請參考《大數據平臺任務(wù)調度與監控系統》。如果你認真完成了前面的學(xué)習和實(shí)踐,此時(shí),你的”大數據平臺”應該是這樣的:
  第八章:我的數據要實(shí)時(shí)
  在第六章介紹Kafka的時(shí)侯提及了一些須要實(shí)時(shí)指標的業(yè)務(wù)場(chǎng)景,實(shí)時(shí)基本可以分為絕對實(shí)時(shí)和準實(shí)時(shí),絕對實(shí)時(shí)的延后要求通常在毫秒級,準實(shí)時(shí)的延后要求通常在秒、分鐘級。對于須要絕對實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,用的比較多的是Storm,對于其他準實(shí)時(shí)的業(yè)務(wù)場(chǎng)景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話(huà),也可以自己寫(xiě)程序來(lái)做。
  8.1 Storm
  什么是Storm?有什么可能的應用場(chǎng)景?
  Storm由什么核心組件構成,各自兼任哪些角色?
  Storm的簡(jiǎn)單安裝和布署。
  自己編撰Demo程序,使用Storm完成實(shí)時(shí)數據流估算。
  8.2 Spark Streaming
  什么是Spark Streaming,它和Spark是哪些關(guān)系?
  Spark Streaming和Storm比較,各有哪些優(yōu)缺點(diǎn)?
  使用Kafka + Spark Streaming,完成實(shí)時(shí)估算的Demo程序。
  至此,你的大數據平臺底層構架早已成形了,其中包括了數據采集、數據儲存與估算(離線(xiàn)和實(shí)時(shí))、數據同步、任務(wù)調度與監控這幾大模塊。接下來(lái)是時(shí)侯考慮怎樣更好的對外提供數據了。
  第九章:數據要對外
  通常對外(業(yè)務(wù))提供數據訪(fǎng)問(wèn),大體上收錄以下方面。
  離線(xiàn):比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;離線(xiàn)數據的提供可以采用Sqoop、DataX等離線(xiàn)數據交換工具。
  實(shí)時(shí):比如,在線(xiàn)網(wǎng)站的推薦系統,需要實(shí)時(shí)從數據平臺中獲取給用戶(hù)的推薦數據,這種要求延時(shí)特別低(50毫秒以?xún)龋?。根據延時(shí)要求和實(shí)時(shí)數據的查詢(xún)須要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
  OLAP剖析:OLAP不僅要求底層的數據模型比較規范,另外,對查詢(xún)的響應速率要求也越來(lái)越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那么Kylin是最好的選擇。
  即席查詢(xún):即席查詢(xún)的數據比較隨便,一般很難構建通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。
  這么多比較成熟的框架和方案,需要結合自己的業(yè)務(wù)需求及數據平臺技術(shù)構架,選擇合適的。原則只有一個(gè):越簡(jiǎn)單越穩定的,就是最好的。點(diǎn)擊發(fā)放免費資料及課程
  如果你已然把握了怎樣挺好的對外(業(yè)務(wù))提供數據,那么你的“大數據平臺”應該是這樣的:
  第十章:牛逼高大上的機器學(xué)習
  關(guān)于這塊,也只能是簡(jiǎn)單介紹一下了,研究不深入。在業(yè)務(wù)中,遇到的能用機器學(xué)習解決的問(wèn)題大約如此三類(lèi):
  分類(lèi)問(wèn)題:包括二分類(lèi)和多分類(lèi),二分類(lèi)就是解決了預測的問(wèn)題,就像預測一封電郵是否垃圾郵件;多分類(lèi)解決的是文本的分類(lèi);
  聚類(lèi)問(wèn)題:從用戶(hù)搜索過(guò)的關(guān)鍵詞,對用戶(hù)進(jìn)行大約的歸類(lèi)。

SpringMVC開(kāi)發(fā)了Restful API參數采集方法

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

  內容
  1. Restful API的簡(jiǎn)單描述
  一種軟件架構風(fēng)格,設計風(fēng)格而不是標準,只是提供了一組設計原則和約束條件。Web 應用程序最重要的 REST 原則是,客戶(hù)端和服務(wù)器之間的交互在請求之間是無(wú)狀態(tài)的。從客戶(hù)端到服務(wù)器的每個(gè)請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求之間的任何時(shí)間點(diǎn)重啟,客戶(hù)端不會(huì )得到通知。此外,無(wú)狀態(tài)請求可以由任何可用服務(wù)器回答。
Rest:表述性狀態(tài)轉移
  
  在Server提供的RESTful API中,URL中僅使用名詞來(lái)指定資源. 原則上,不使用動(dòng)詞. HTTP協(xié)議中的動(dòng)詞用于添加,修改和刪除資源. 也就是說(shuō),資源狀態(tài)通過(guò)HTTP動(dòng)詞反轉:
  GET用于獲取資源,
  POST用于創(chuàng )建新資源(也可以用于更新資源)
  PUT用于更新資源,
  DELETE用于刪除資源.
  2. 采集參數問(wèn)題
  在設計Restful API時(shí),很多時(shí)候需要以不同的方式采集參數,例如登錄,更新帳戶(hù)等. 下面著(zhù)重介紹不同請求方法下的參數采集問(wèn)題. 原則上,前端和后端使用json作為數據交換格式. (用于: SpringMVC,JQuery,AJAX,JSP)
  測試按鈕編寫(xiě)表格:
  2.1RequestMethod.GET
  在get請求中,默認參數提交方法反映在url中. get請求是獲取服務(wù)器端數據. 不建議提交復雜的數據類(lèi)型. 如果涉及多種數據或復雜數據類(lèi)型,則需要更改為過(guò)帳. ,以下是獲取請求的示例:
  : 8080 / api / user?userName = kent&userId = 1
  背景寫(xiě)法:
   @RequestMapping(value = "/login",method = RequestMethod.GET)
public JsonResult login(@RequestParam("mydata") String data){
System.out.println(data);
return new SuccessResult().setData(data);
}
  JsonResult和SuccessResult是自定義數據結構,以促進(jìn)與Json的前端和后端交互. @RequestParam是用于接收請求參數的標簽,當變量名稱(chēng)與請求參數名稱(chēng)名稱(chēng)不一致時(shí),使用value來(lái)指定請求參數.
  示例請求網(wǎng)址: 9999 / login?mydata = hello
  前景符號:
  $("#button3").click(function () {
var mydata = "mydata=hello";
var url = "/login";
$.ajax({
url : url,
type : 'GET',
data : mydata
});
});
  請求數據以字符串形式進(jìn)行拼接,后臺采集的參數是你好
  2.2RequestMethod.POST
  在這種類(lèi)型的請求中,參數可以封裝在實(shí)體類(lèi)中. 當后臺接收到數據時(shí),框架將自動(dòng)解析并將數據映射到JavaBean. 郵政請求方法是將前端客戶(hù)輸入的數據提交到后臺進(jìn)行處理. 數據安全性.
  背景寫(xiě)作方法
  @RequestMapping(value = "/login",method = RequestMethod.POST)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前景符號:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'POST',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  規范前臺參數時(shí)要注意兩點(diǎn). 一種是內容類(lèi)型,默認的內容類(lèi)型是application / x-www-form-urlencoded. 如果要向服務(wù)器提交數據,則需要將內容類(lèi)型指定為application / json. 否則,服務(wù)器接收到的為空;第二點(diǎn)是使用JSON.strinify()函數將數據格式化為Json格式.
  2.3RequestMethod.PUT
  用于更新資源的參數提交方法類(lèi)似于post
  背景寫(xiě)法:
  @RequestMapping(value = "/login",method = RequestMethod.PUT)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前端寫(xiě)入方法:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'PUT',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  2.4RequestMethod.DELETE
  它用于刪除資源或注銷(xiāo)帳戶(hù). 您可以在url或Json表單中提交參數. 在大多數情況下,您只需要傳遞整數類(lèi)型的數據(例如,要刪除用戶(hù),只需提交用戶(hù)ID)
  背景寫(xiě)作形式:
  @RequestMapping(value = "/deleteUser/{id}",method = RequestMethod.DELETE
)
public JsonResult logout(@PathVariable Integer id){
//注銷(xiāo)session
userService.deleteById(id);
}
  使用@PathVariable批注支持從請求的URL中獲取數據. 應該注意的是,URL上的參數名稱(chēng)必須與方法中的變量名稱(chēng)一致. 查看全部

  內容
  1. Restful API的簡(jiǎn)單描述
  一種軟件架構風(fēng)格,設計風(fēng)格而不是標準,只是提供了一組設計原則和約束條件。Web 應用程序最重要的 REST 原則是,客戶(hù)端和服務(wù)器之間的交互在請求之間是無(wú)狀態(tài)的。從客戶(hù)端到服務(wù)器的每個(gè)請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求之間的任何時(shí)間點(diǎn)重啟,客戶(hù)端不會(huì )得到通知。此外,無(wú)狀態(tài)請求可以由任何可用服務(wù)器回答。
Rest:表述性狀態(tài)轉移
  
  在Server提供的RESTful API中,URL中僅使用名詞來(lái)指定資源. 原則上,不使用動(dòng)詞. HTTP協(xié)議中的動(dòng)詞用于添加,修改和刪除資源. 也就是說(shuō),資源狀態(tài)通過(guò)HTTP動(dòng)詞反轉:
  GET用于獲取資源,
  POST用于創(chuàng )建新資源(也可以用于更新資源)
  PUT用于更新資源,
  DELETE用于刪除資源.
  2. 采集參數問(wèn)題
  在設計Restful API時(shí),很多時(shí)候需要以不同的方式采集參數,例如登錄,更新帳戶(hù)等. 下面著(zhù)重介紹不同請求方法下的參數采集問(wèn)題. 原則上,前端和后端使用json作為數據交換格式. (用于: SpringMVC,JQuery,AJAX,JSP)
  測試按鈕編寫(xiě)表格:
  2.1RequestMethod.GET
  在get請求中,默認參數提交方法反映在url中. get請求是獲取服務(wù)器端數據. 不建議提交復雜的數據類(lèi)型. 如果涉及多種數據或復雜數據類(lèi)型,則需要更改為過(guò)帳. ,以下是獲取請求的示例:
  : 8080 / api / user?userName = kent&userId = 1
  背景寫(xiě)法:
   @RequestMapping(value = "/login",method = RequestMethod.GET)
public JsonResult login(@RequestParam("mydata") String data){
System.out.println(data);
return new SuccessResult().setData(data);
}
  JsonResult和SuccessResult是自定義數據結構,以促進(jìn)與Json的前端和后端交互. @RequestParam是用于接收請求參數的標簽,當變量名稱(chēng)與請求參數名稱(chēng)名稱(chēng)不一致時(shí),使用value來(lái)指定請求參數.
  示例請求網(wǎng)址: 9999 / login?mydata = hello
  前景符號:
  $("#button3").click(function () {
var mydata = "mydata=hello";
var url = "/login";
$.ajax({
url : url,
type : 'GET',
data : mydata
});
});
  請求數據以字符串形式進(jìn)行拼接,后臺采集的參數是你好
  2.2RequestMethod.POST
  在這種類(lèi)型的請求中,參數可以封裝在實(shí)體類(lèi)中. 當后臺接收到數據時(shí),框架將自動(dòng)解析并將數據映射到JavaBean. 郵政請求方法是將前端客戶(hù)輸入的數據提交到后臺進(jìn)行處理. 數據安全性.
  背景寫(xiě)作方法
  @RequestMapping(value = "/login",method = RequestMethod.POST)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前景符號:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'POST',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  規范前臺參數時(shí)要注意兩點(diǎn). 一種是內容類(lèi)型,默認的內容類(lèi)型是application / x-www-form-urlencoded. 如果要向服務(wù)器提交數據,則需要將內容類(lèi)型指定為application / json. 否則,服務(wù)器接收到的為空;第二點(diǎn)是使用JSON.strinify()函數將數據格式化為Json格式.
  2.3RequestMethod.PUT
  用于更新資源的參數提交方法類(lèi)似于post
  背景寫(xiě)法:
  @RequestMapping(value = "/login",method = RequestMethod.PUT)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
  前端寫(xiě)入方法:
   $("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'PUT',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
  2.4RequestMethod.DELETE
  它用于刪除資源或注銷(xiāo)帳戶(hù). 您可以在url或Json表單中提交參數. 在大多數情況下,您只需要傳遞整數類(lèi)型的數據(例如,要刪除用戶(hù),只需提交用戶(hù)ID)
  背景寫(xiě)作形式:
  @RequestMapping(value = "/deleteUser/{id}",method = RequestMethod.DELETE
)
public JsonResult logout(@PathVariable Integer id){
//注銷(xiāo)session
userService.deleteById(id);
}
  使用@PathVariable批注支持從請求的URL中獲取數據. 應該注意的是,URL上的參數名稱(chēng)必須與方法中的變量名稱(chēng)一致.

CMDB項目獲取今天的未收資產(chǎn)清單和API驗證

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

  獲取今天未收資產(chǎn)的列表:
  要點(diǎn):
  1. 在服務(wù)器表中添加兩個(gè)字段: latest_date(可以為空);服務(wù)器狀態(tài)信息;
  2. 在什么情況下會(huì )獲得未采集的服務(wù)器信息?
 ?、佼攍ast_date為空時(shí),例如尚未報告的資產(chǎn)的初始創(chuàng )建;
 ?、诮裉焐形床杉?,請注意latest_date__date__lt
 ?、鄯?wù)器狀態(tài)為在線(xiàn)
  3. 設置current_date = datetime.datetime.now();服務(wù)器更新資產(chǎn)時(shí).
  4,get_host_list函數:
  注意: 內容放置在response.text部分(response = request.get(url))
  代碼區:
  ###############服務(wù)端###############
@csrf_exempt
def server(request):
'''
requests不能發(fā)送字典類(lèi)型數據,縱觀(guān)我們學(xué)的form表單提交數據,
ajax發(fā)送數據,均是不支持字典類(lèi)型數據的發(fā)送的。
具體原因百度知曉。
:param request:
:return:
'''
if request.method == 'GET':
# 獲取今日未采集主機列表[latest_date為None或者latest_date不為今日且服務(wù)器狀態(tài)為在線(xiàn)]
current_date = date.today()
host_list = models.Server.objects.filter(
Q(Q(latest_date=None) | Q(latest_date__date__lt=current_date)) & Q(server_status_id=2)).values('hostname')
'''
['hostname':'c1.com']
'''
host_list = list(host_list)
print(host_list)
return HttpResponse(json.dumps(host_list))
  #############客戶(hù)端#############
class SshSaltClient(BaseClient):
def get_host_list(self):
response=requests.get(self.api) #
# print(response.text) # [{"hostname": "c1.com"}]注意這種用法
return json.loads(response.text)
  API驗證
  要點(diǎn): 通過(guò)三個(gè)級別
  第一級: 時(shí)間限制(超出客戶(hù)時(shí)間和服務(wù)器之間的時(shí)間,我們的團隊要求限制)
  第二遍: 加密規則限制(主要使用MD5加密)
  第三遍: 對于已訪(fǎng)問(wèn)的加密str,我們設置訪(fǎng)問(wèn)列表. 普通用戶(hù)不可能再次向服務(wù)器請求此訪(fǎng)問(wèn)數據. 如果列表中沒(méi)有str,則表明這是正常的用戶(hù)訪(fǎng)問(wèn). 請記住,數據已添加到訪(fǎng)問(wèn)列表.
  此內容將越來(lái)越大,并且實(shí)際上將應用于memcache和redis.
  最后三個(gè)級別基本上可以達到防止黑客攻擊的效果,但是并不排除黑客的網(wǎng)絡(luò )速度比我們的速度快. 我們最好對要發(fā)送的數據進(jìn)行加密,然后更早地提交黑客的網(wǎng)絡(luò )速度. 是否可以去服務(wù)器?
  代碼區:
  ##############客戶(hù)端##############
import requests
import time
import hashlib
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
ctime = str(time.time())
client_str = '%s|%s' % (key, ctime)
client_md5_str = md5(client_str)
client_header_str = '%s|%s' % (client_md5_str, ctime)
print(client_header_str)
response = requests.get(url='http://127.0.0.1:8000/api/tests.html', headers={'auth-api': 'cae76146bfa06482cfee7e4f899cc414|1506956350.973326'})
print(response.text)
  ##############服務(wù)端##############
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
vistied_str_dict={}
def tests(request):
client_header_str = request.META.get('HTTP_AUTH_API')
print(client_header_str)
client_md5_str, client_ctime = client_header_str.split('|', maxsplit=1)
client_float_ctime = float(client_ctime)
server_float_ctime = float(time.time())
# 第一關(guān)
if (client_float_ctime + 20) < server_float_ctime:
return HttpResponse("太慢了")
# 第二關(guān)
server_str = '%s|%s' % (key, client_ctime)
server_md5_str = md5(server_str)
if client_md5_str != server_md5_str:
return HttpResponse('休想')
# 第三關(guān)
if vistied_str_dict.get(client_md5_str):
return HttpResponse('放棄吧')
else:
vistied_str_dict[client_md5_str] = client_ctime
return HttpResponse('你得到我了')
  最后,裝飾器未使用,明天將添加. 查看全部

  獲取今天未收資產(chǎn)的列表:
  要點(diǎn):
  1. 在服務(wù)器表中添加兩個(gè)字段: latest_date(可以為空);服務(wù)器狀態(tài)信息;
  2. 在什么情況下會(huì )獲得未采集的服務(wù)器信息?
 ?、佼攍ast_date為空時(shí),例如尚未報告的資產(chǎn)的初始創(chuàng )建;
 ?、诮裉焐形床杉?,請注意latest_date__date__lt
 ?、鄯?wù)器狀態(tài)為在線(xiàn)
  3. 設置current_date = datetime.datetime.now();服務(wù)器更新資產(chǎn)時(shí).
  4,get_host_list函數:
  注意: 內容放置在response.text部分(response = request.get(url))
  代碼區:
  ###############服務(wù)端###############
@csrf_exempt
def server(request):
'''
requests不能發(fā)送字典類(lèi)型數據,縱觀(guān)我們學(xué)的form表單提交數據,
ajax發(fā)送數據,均是不支持字典類(lèi)型數據的發(fā)送的。
具體原因百度知曉。
:param request:
:return:
'''
if request.method == 'GET':
# 獲取今日未采集主機列表[latest_date為None或者latest_date不為今日且服務(wù)器狀態(tài)為在線(xiàn)]
current_date = date.today()
host_list = models.Server.objects.filter(
Q(Q(latest_date=None) | Q(latest_date__date__lt=current_date)) & Q(server_status_id=2)).values('hostname')
'''
['hostname':'c1.com']
'''
host_list = list(host_list)
print(host_list)
return HttpResponse(json.dumps(host_list))
  #############客戶(hù)端#############
class SshSaltClient(BaseClient):
def get_host_list(self):
response=requests.get(self.api) #
# print(response.text) # [{"hostname": "c1.com"}]注意這種用法
return json.loads(response.text)
  API驗證
  要點(diǎn): 通過(guò)三個(gè)級別
  第一級: 時(shí)間限制(超出客戶(hù)時(shí)間和服務(wù)器之間的時(shí)間,我們的團隊要求限制)
  第二遍: 加密規則限制(主要使用MD5加密)
  第三遍: 對于已訪(fǎng)問(wèn)的加密str,我們設置訪(fǎng)問(wèn)列表. 普通用戶(hù)不可能再次向服務(wù)器請求此訪(fǎng)問(wèn)數據. 如果列表中沒(méi)有str,則表明這是正常的用戶(hù)訪(fǎng)問(wèn). 請記住,數據已添加到訪(fǎng)問(wèn)列表.
  此內容將越來(lái)越大,并且實(shí)際上將應用于memcache和redis.
  最后三個(gè)級別基本上可以達到防止黑客攻擊的效果,但是并不排除黑客的網(wǎng)絡(luò )速度比我們的速度快. 我們最好對要發(fā)送的數據進(jìn)行加密,然后更早地提交黑客的網(wǎng)絡(luò )速度. 是否可以去服務(wù)器?
  代碼區:
  ##############客戶(hù)端##############
import requests
import time
import hashlib
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
ctime = str(time.time())
client_str = '%s|%s' % (key, ctime)
client_md5_str = md5(client_str)
client_header_str = '%s|%s' % (client_md5_str, ctime)
print(client_header_str)
response = requests.get(url='http://127.0.0.1:8000/api/tests.html', headers={'auth-api': 'cae76146bfa06482cfee7e4f899cc414|1506956350.973326'})
print(response.text)
  ##############服務(wù)端##############
def md5(arg):
md5 = hashlib.md5()
md5.update(arg.encode('utf-8'))
return md5.hexdigest()
key = 'asdfghjklmnbvcxz'
vistied_str_dict={}
def tests(request):
client_header_str = request.META.get('HTTP_AUTH_API')
print(client_header_str)
client_md5_str, client_ctime = client_header_str.split('|', maxsplit=1)
client_float_ctime = float(client_ctime)
server_float_ctime = float(time.time())
# 第一關(guān)
if (client_float_ctime + 20) < server_float_ctime:
return HttpResponse("太慢了")
# 第二關(guān)
server_str = '%s|%s' % (key, client_ctime)
server_md5_str = md5(server_str)
if client_md5_str != server_md5_str:
return HttpResponse('休想')
# 第三關(guān)
if vistied_str_dict.get(client_md5_str):
return HttpResponse('放棄吧')
else:
vistied_str_dict[client_md5_str] = client_ctime
return HttpResponse('你得到我了')
  最后,裝飾器未使用,明天將添加.

[Transfer] Dynamics CRM 365的從零開(kāi)始的入門(mén)學(xué)習(3)通過(guò)Dynamics

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

  要立即實(shí)現搜索產(chǎn)品功能,必須首先在頁(yè)面上顯示數據,然后前端將根據查詢(xún)要求對其進(jìn)行處理. 它以前是在salesforce中實(shí)現的. 您可以定義“搜索產(chǎn)品”頁(yè)面,然后訪(fǎng)問(wèn)查詢(xún)該頁(yè)面上數據的Web服務(wù). 但是在Dynamic 365中,沒(méi)有這種直接調用方法. 最后,找到一種方法,使前端頁(yè)面通過(guò)Js在工作流中調用Action,并將插件綁定到Action.
  實(shí)現效果
  
 ?。?)實(shí)現html頁(yè)面并將其導入系統
  在設置中找到自定義項,然后轉到自定義系統,選擇Web資源,然后將先前準備的頁(yè)面上傳到系統.
  
 ?。?)自定義操作
  首先創(chuàng )建一個(gè)新動(dòng)作,可以將實(shí)體設置設置為全局,也可以單獨設置一個(gè)實(shí)體.
  注意:
  注冊動(dòng)作,方法與插件注冊相同. 在注冊步驟時(shí),消息將選擇我們操作的唯一名稱(chēng). 許多人沒(méi)有在此步驟的消息中顯示操作的名稱(chēng). 請確保兩點(diǎn): 首先,您的操作已激活;其次,在您激活操作后打開(kāi)了插件注冊器.
  
  設置動(dòng)作后,在此設置兩個(gè)輸入參數和一個(gè)輸出參數. 設置后,保存并激活.
 ?。?)開(kāi)發(fā)插件項目
  在此我們簡(jiǎn)要介紹該插件的基本用法
  1. 要繼承IPlugin,并實(shí)現Executive方法.
  2. 從服務(wù)提供商那里獲取執行上下文
  3. 我們可以檢查啟動(dòng)插件的實(shí)體名稱(chēng)
  4. 您還可以檢查觸發(fā)的事件,無(wú)論是創(chuàng )建,更新還是刪除
  5. 在輸入參數中獲取觸發(fā)的實(shí)體
  6. 通過(guò)服務(wù)工廠(chǎng)獲取IOrganizationService. 如果CreateOrganizationService方法的參數為null,則表示系統用戶(hù);如果參數為context.UserId或Guid.Empty,則表示當前用戶(hù).
  7. 最后,DoAction方法,即插件的邏輯可以在這里實(shí)現.
  以下是實(shí)現該插件的代碼:
  
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService
(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider
.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
//傳入兩個(gè)參數
String InParameters1 = context.InputParameters["InParameters1"] as String;
String InParameters2 = context.InputParameters["InParameters2"] as String;
//查詢(xún)
//EntityReference entityRef = context.InputParameters["Target"] as EntityReference;
string fetchProductXml = @"












































";
EntityCollection products = service.RetrieveMultiple(new FetchExpression(fetchProductXml));
//傳出參數
context.OutputParameters["OutParameters"] = products;
//遍歷products
foreach (var pair in products.Entities)
{
foreach (var pa in pair.Attributes)
{
Console.WriteLine(pa.Key + ": " + pa.Value);
}
}
Console.WriteLine(products);
}
 ?。?)數據查詢(xún)方法,本文使用FetchXML
  在上面的代碼實(shí)現中,我使用FetchXML來(lái)實(shí)現它. 對于多條件跨表查詢(xún),返回多個(gè)記錄非常方便. 常用的結構如下,
  SDK中有很多類(lèi)似的情況.
  
  我們可以使用高級查詢(xún)來(lái)自動(dòng)生成XML
  
  最后我們可以導出XML文件
 ?。?)Js調用自定義操作
  
  最后,您可以看到輸出結果:
  
  摘要:
  在內部部署的開(kāi)發(fā)中,我們通常將復雜的業(yè)務(wù)處理邏輯封裝到用于前端js調用的接口中,但是在在線(xiàn)開(kāi)發(fā)中,這種開(kāi)發(fā)方法無(wú)疑會(huì )增加成本(必須設置設置另一臺服務(wù)器,添加域名并配置https協(xié)議證書(shū)等),通過(guò)網(wǎng)絡(luò )api調用動(dòng)作為我們提供了一種新的可行方式. 需求得到滿(mǎn)足. 在下一章中,我們將分享調試插件的方法. 查看全部

  要立即實(shí)現搜索產(chǎn)品功能,必須首先在頁(yè)面上顯示數據,然后前端將根據查詢(xún)要求對其進(jìn)行處理. 它以前是在salesforce中實(shí)現的. 您可以定義“搜索產(chǎn)品”頁(yè)面,然后訪(fǎng)問(wèn)查詢(xún)該頁(yè)面上數據的Web服務(wù). 但是在Dynamic 365中,沒(méi)有這種直接調用方法. 最后,找到一種方法,使前端頁(yè)面通過(guò)Js在工作流中調用Action,并將插件綁定到Action.
  實(shí)現效果
  
 ?。?)實(shí)現html頁(yè)面并將其導入系統
  在設置中找到自定義項,然后轉到自定義系統,選擇Web資源,然后將先前準備的頁(yè)面上傳到系統.
  
 ?。?)自定義操作
  首先創(chuàng )建一個(gè)新動(dòng)作,可以將實(shí)體設置設置為全局,也可以單獨設置一個(gè)實(shí)體.
  注意:
  注冊動(dòng)作,方法與插件注冊相同. 在注冊步驟時(shí),消息將選擇我們操作的唯一名稱(chēng). 許多人沒(méi)有在此步驟的消息中顯示操作的名稱(chēng). 請確保兩點(diǎn): 首先,您的操作已激活;其次,在您激活操作后打開(kāi)了插件注冊器.
  
  設置動(dòng)作后,在此設置兩個(gè)輸入參數和一個(gè)輸出參數. 設置后,保存并激活.
 ?。?)開(kāi)發(fā)插件項目
  在此我們簡(jiǎn)要介紹該插件的基本用法
  1. 要繼承IPlugin,并實(shí)現Executive方法.
  2. 從服務(wù)提供商那里獲取執行上下文
  3. 我們可以檢查啟動(dòng)插件的實(shí)體名稱(chēng)
  4. 您還可以檢查觸發(fā)的事件,無(wú)論是創(chuàng )建,更新還是刪除
  5. 在輸入參數中獲取觸發(fā)的實(shí)體
  6. 通過(guò)服務(wù)工廠(chǎng)獲取IOrganizationService. 如果CreateOrganizationService方法的參數為null,則表示系統用戶(hù);如果參數為context.UserId或Guid.Empty,則表示當前用戶(hù).
  7. 最后,DoAction方法,即插件的邏輯可以在這里實(shí)現.
  以下是實(shí)現該插件的代碼:
  
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService
(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider
.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
//傳入兩個(gè)參數
String InParameters1 = context.InputParameters["InParameters1"] as String;
String InParameters2 = context.InputParameters["InParameters2"] as String;
//查詢(xún)
//EntityReference entityRef = context.InputParameters["Target"] as EntityReference;
string fetchProductXml = @"












































";
EntityCollection products = service.RetrieveMultiple(new FetchExpression(fetchProductXml));
//傳出參數
context.OutputParameters["OutParameters"] = products;
//遍歷products
foreach (var pair in products.Entities)
{
foreach (var pa in pair.Attributes)
{
Console.WriteLine(pa.Key + ": " + pa.Value);
}
}
Console.WriteLine(products);
}
 ?。?)數據查詢(xún)方法,本文使用FetchXML
  在上面的代碼實(shí)現中,我使用FetchXML來(lái)實(shí)現它. 對于多條件跨表查詢(xún),返回多個(gè)記錄非常方便. 常用的結構如下,
  SDK中有很多類(lèi)似的情況.
  
  我們可以使用高級查詢(xún)來(lái)自動(dòng)生成XML
  
  最后我們可以導出XML文件
 ?。?)Js調用自定義操作
  
  最后,您可以看到輸出結果:
  
  摘要:
  在內部部署的開(kāi)發(fā)中,我們通常將復雜的業(yè)務(wù)處理邏輯封裝到用于前端js調用的接口中,但是在在線(xiàn)開(kāi)發(fā)中,這種開(kāi)發(fā)方法無(wú)疑會(huì )增加成本(必須設置設置另一臺服務(wù)器,添加域名并配置https協(xié)議證書(shū)等),通過(guò)網(wǎng)絡(luò )api調用動(dòng)作為我們提供了一種新的可行方式. 需求得到滿(mǎn)足. 在下一章中,我們將分享調試插件的方法.

微信公眾號文章采集并發(fā)布到WordPress

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

  優(yōu)采云數據采集平臺提供了微信官方帳戶(hù)文章的采集,并且可以輕松發(fā)布到WordPress和其他系統.
  1. 優(yōu)采云微信官方賬號文章集的主要特點(diǎn)
  1)可以通過(guò)官方帳戶(hù)名稱(chēng)或ID,關(guān)鍵字進(jìn)行采集,并支持輸入多個(gè)同時(shí)捕獲的數據;
  2)自動(dòng)訪(fǎng)問(wèn)一些商業(yè)IP代理以有效保證數據采集;
  3)多種圖像下載存儲方式(優(yōu)采云存儲,阿里云OSS,秦牛),解決了官方賬戶(hù)中圖片的防盜鏈接問(wèn)題;
  4)強大的數據處理功能(可以在采集前后進(jìn)行處理);
  5)簡(jiǎn)單的配置可以輕松發(fā)布到Wordpress或http界面.
  2. 采集微信公眾號文章的主要步驟1.創(chuàng )建“采集微信公眾號”任務(wù)
  登錄到Ucai Cloud控制臺,然后單擊以采集“微信官方帳戶(hù)”
  
  2,填寫(xiě)要采集的官方帳戶(hù)名稱(chēng)或ID或關(guān)鍵字
  填寫(xiě)如下基本信息:
  
  填寫(xiě)任務(wù)名稱(chēng),要采集的微信公眾號名稱(chēng)或ID,并用逗號分隔. 填寫(xiě)后,請點(diǎn)擊“保存”.
  提醒: 系統還提供數據處理,例如刪除圖片,刪除鏈接,添加版權說(shuō)明等. 如有必要,請進(jìn)行相應的選擇.
  3. 設置圖片下載(可選)
  由于微信公眾號圖片是防盜處理,采集到的原創(chuàng )圖片無(wú)法正常顯示. 如果需要圖片,則需要配置圖片下載:
  
  您可以選擇“臨時(shí)存儲優(yōu)采云(需要ftp返回到您的服務(wù)器)”或阿里云OSS或奇牛存儲,這里我們選擇阿里云OSS(數據存儲需要用戶(hù)根據實(shí)際情況進(jìn)行配置,一次配置即可)重新使用).
  4. 開(kāi)始采集
  圖片配置完成后,您可以單擊“開(kāi)始采集”以開(kāi)始采集數據:
  
  5. 結果數據處理和發(fā)布
  開(kāi)始采集后,將連續采集數據,可在“結果數據和發(fā)布”頁(yè)面上查看:
  
  您可以單擊一條數據以檢查其是否正常(通常驗證圖片或修改數據)
  
  結果數據正確后,您可以發(fā)布: 發(fā)布到WordPress教程
  
  發(fā)布結果:
  
  最終版本發(fā)布后的文章鏈接(此處已發(fā)布到優(yōu)采云測試站點(diǎn)):
  
  微信公眾號文章的采集和發(fā)布已經(jīng)結束. 查看全部

  優(yōu)采云數據采集平臺提供了微信官方帳戶(hù)文章的采集,并且可以輕松發(fā)布到WordPress和其他系統.
  1. 優(yōu)采云微信官方賬號文章集的主要特點(diǎn)
  1)可以通過(guò)官方帳戶(hù)名稱(chēng)或ID,關(guān)鍵字進(jìn)行采集,并支持輸入多個(gè)同時(shí)捕獲的數據;
  2)自動(dòng)訪(fǎng)問(wèn)一些商業(yè)IP代理以有效保證數據采集;
  3)多種圖像下載存儲方式(優(yōu)采云存儲,阿里云OSS,秦牛),解決了官方賬戶(hù)中圖片的防盜鏈接問(wèn)題;
  4)強大的數據處理功能(可以在采集前后進(jìn)行處理);
  5)簡(jiǎn)單的配置可以輕松發(fā)布到Wordpress或http界面.
  2. 采集微信公眾號文章的主要步驟1.創(chuàng )建“采集微信公眾號”任務(wù)
  登錄到Ucai Cloud控制臺,然后單擊以采集“微信官方帳戶(hù)”
  
  2,填寫(xiě)要采集的官方帳戶(hù)名稱(chēng)或ID或關(guān)鍵字
  填寫(xiě)如下基本信息:
  
  填寫(xiě)任務(wù)名稱(chēng),要采集的微信公眾號名稱(chēng)或ID,并用逗號分隔. 填寫(xiě)后,請點(diǎn)擊“保存”.
  提醒: 系統還提供數據處理,例如刪除圖片,刪除鏈接,添加版權說(shuō)明等. 如有必要,請進(jìn)行相應的選擇.
  3. 設置圖片下載(可選)
  由于微信公眾號圖片是防盜處理,采集到的原創(chuàng )圖片無(wú)法正常顯示. 如果需要圖片,則需要配置圖片下載:
  
  您可以選擇“臨時(shí)存儲優(yōu)采云(需要ftp返回到您的服務(wù)器)”或阿里云OSS或奇牛存儲,這里我們選擇阿里云OSS(數據存儲需要用戶(hù)根據實(shí)際情況進(jìn)行配置,一次配置即可)重新使用).
  4. 開(kāi)始采集
  圖片配置完成后,您可以單擊“開(kāi)始采集”以開(kāi)始采集數據:
  
  5. 結果數據處理和發(fā)布
  開(kāi)始采集后,將連續采集數據,可在“結果數據和發(fā)布”頁(yè)面上查看:
  
  您可以單擊一條數據以檢查其是否正常(通常驗證圖片或修改數據)
  
  結果數據正確后,您可以發(fā)布: 發(fā)布到WordPress教程
  
  發(fā)布結果:
  
  最終版本發(fā)布后的文章鏈接(此處已發(fā)布到優(yōu)采云測試站點(diǎn)):
  
  微信公眾號文章的采集和發(fā)布已經(jīng)結束.

Python網(wǎng)絡(luò )數據采集4: 使用API??

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

  通常情況下,程序員可以使用HTPP協(xié)議向API發(fā)起請求以獲取某些信息,并且API將以XML或JSON格式返回服務(wù)器的響應信息.
  通常,您不會(huì )考慮將API用作網(wǎng)絡(luò )數據采集,但實(shí)際上,兩者(都發(fā)送HTTP請求)和結果(都獲取信息)所使用的許多技術(shù)都是相似的;兩者通常是同一個(gè)鄭氏的關(guān)系.
  例如,將Wikipedia編輯歷史記錄(與編輯者的IP地址)和IP地址解析API結合起來(lái),以獲取Wikipedia條目的編輯者的地理位置.
  4.1 API概述
  Google API
  4.2 API通用規則
  API使用非常標準的規則集來(lái)生成數據,并且所生成的數據以非常標準的方式組織.
  四種方法: GET,POST,PUT,DELETE
  驗證: 需要客戶(hù)端驗證
  4.3服務(wù)器響應
  大多數反饋數據格式是XML和JSON
  過(guò)去,服務(wù)器使用PHP和.NET等程序作為API的接收端. 現在,服務(wù)器端還使用了一些JavaScript框架作為API的發(fā)送和接收端,例如Angular或Backbone.
  API調用:
  4.4回聲巢
  Echo Nest音樂(lè )數據網(wǎng)站
  4.5 Twitter API
  pip安裝推特
  from twitter import Twitter
t = Twitter(auth=OAuth(,,,))
pythonTweets = t.search.tweets(q = "#python")
print(pythonTweets)
  發(fā)布推文4.6 Google API
  無(wú)論您要處理哪種信息,包括語(yǔ)言翻譯,地理位置,日歷,甚至是遺傳數據,Google都會(huì )提供API. Google還為其一些知名應用程序(例如Gmail,YouTube和Blogger)提供API.
  4.7解析JSON數據
  import json
from urllib.request import urlopen
def getCountry(ipAddress):
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
responseJson = json.loads(response)
return responseJson.get("country_code")
print(getCountry("50.78.253.58"))
  4.8返回主題
  將多個(gè)數據源組合為新形式,或使用API??作為一種工具,從新的角度解釋采集的數據.
  首先要做一個(gè)基本程序來(lái)采集維基百科,找到編輯歷史記錄頁(yè)面,然后在編輯歷史記錄中找到IP地址
  # -*- coding: utf-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
import json
random.seed(datetime.datetime.now())
# https://en.wikipedia.org/wiki/Python_(programming_language)
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div",{"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
def getHistoryIPs(pageUrl):
# 編輯歷史頁(yè)面URL鏈接格式是:
# https://en.wikipedia.org/w/index.php?title=Python_(programming_language)&action=history
pageUrl = pageUrl.replace("/wiki/", "")
historyUrl = "https://en.wikipedia.org/w/ind ... ot%3B
print("history url is: "+historyUrl)
html = urlopen(historyUrl)
bsObj = BeautifulSoup(html)
# 找出class屬性是"mw-anonuserlink"的鏈接
# 它們用IP地址代替用戶(hù)名
ipAddresses = bsObj.findAll("a", {"class":"mw-anonuserlink"})
addressList = set()
for ipAddress in ipAddresses:
addressList.add(ipAddress.get_text())
return addressList
links = getLinks("/wiki/Python_(programming_language)")
def getCountry(ipAddress):
try:
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
except HTTPError:
return None
responseJson = json.loads(response)
return responseJson.get("country_code")
while (len(links) > 0):
for link in links:
print("-------------------")
historyIPs = getHistoryIPs(link.attrs["href"])
for historyIP in historyIPs:
#print(historyIP)
country = getCountry(historyIP)
if country is not None:
print(historyIP+" is from "+country)
newLink = links[random.randint(0, len(links)-1)].attrs["href"]
links = getLinks(newLink)
  4.9關(guān)于A(yíng)PI的更多信息
  Leonard Richardson,Mike Amundsen和Sam Ruby的RESTful Web API()為使用Web API提供了非常全面的理論和實(shí)踐指導. 此外,Mike Amundsen的精彩視頻教學(xué)課程“為Web()設計API”還可以教您創(chuàng )建自己的API. 如果您想方便地共享自己采集的數據,他的視頻非常有用 查看全部

  通常情況下,程序員可以使用HTPP協(xié)議向API發(fā)起請求以獲取某些信息,并且API將以XML或JSON格式返回服務(wù)器的響應信息.
  通常,您不會(huì )考慮將API用作網(wǎng)絡(luò )數據采集,但實(shí)際上,兩者(都發(fā)送HTTP請求)和結果(都獲取信息)所使用的許多技術(shù)都是相似的;兩者通常是同一個(gè)鄭氏的關(guān)系.
  例如,將Wikipedia編輯歷史記錄(與編輯者的IP地址)和IP地址解析API結合起來(lái),以獲取Wikipedia條目的編輯者的地理位置.
  4.1 API概述
  Google API
  4.2 API通用規則
  API使用非常標準的規則集來(lái)生成數據,并且所生成的數據以非常標準的方式組織.
  四種方法: GET,POST,PUT,DELETE
  驗證: 需要客戶(hù)端驗證
  4.3服務(wù)器響應
  大多數反饋數據格式是XML和JSON
  過(guò)去,服務(wù)器使用PHP和.NET等程序作為API的接收端. 現在,服務(wù)器端還使用了一些JavaScript框架作為API的發(fā)送和接收端,例如Angular或Backbone.
  API調用:
  4.4回聲巢
  Echo Nest音樂(lè )數據網(wǎng)站
  4.5 Twitter API
  pip安裝推特
  from twitter import Twitter
t = Twitter(auth=OAuth(,,,))
pythonTweets = t.search.tweets(q = "#python")
print(pythonTweets)
  發(fā)布推文4.6 Google API
  無(wú)論您要處理哪種信息,包括語(yǔ)言翻譯,地理位置,日歷,甚至是遺傳數據,Google都會(huì )提供API. Google還為其一些知名應用程序(例如Gmail,YouTube和Blogger)提供API.
  4.7解析JSON數據
  import json
from urllib.request import urlopen
def getCountry(ipAddress):
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
responseJson = json.loads(response)
return responseJson.get("country_code")
print(getCountry("50.78.253.58"))
  4.8返回主題
  將多個(gè)數據源組合為新形式,或使用API??作為一種工具,從新的角度解釋采集的數據.
  首先要做一個(gè)基本程序來(lái)采集維基百科,找到編輯歷史記錄頁(yè)面,然后在編輯歷史記錄中找到IP地址
  # -*- coding: utf-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
import json
random.seed(datetime.datetime.now())
# https://en.wikipedia.org/wiki/Python_(programming_language)
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div",{"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
def getHistoryIPs(pageUrl):
# 編輯歷史頁(yè)面URL鏈接格式是:
# https://en.wikipedia.org/w/index.php?title=Python_(programming_language)&action=history
pageUrl = pageUrl.replace("/wiki/", "")
historyUrl = "https://en.wikipedia.org/w/ind ... ot%3B
print("history url is: "+historyUrl)
html = urlopen(historyUrl)
bsObj = BeautifulSoup(html)
# 找出class屬性是"mw-anonuserlink"的鏈接
# 它們用IP地址代替用戶(hù)名
ipAddresses = bsObj.findAll("a", {"class":"mw-anonuserlink"})
addressList = set()
for ipAddress in ipAddresses:
addressList.add(ipAddress.get_text())
return addressList
links = getLinks("/wiki/Python_(programming_language)")
def getCountry(ipAddress):
try:
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
except HTTPError:
return None
responseJson = json.loads(response)
return responseJson.get("country_code")
while (len(links) > 0):
for link in links:
print("-------------------")
historyIPs = getHistoryIPs(link.attrs["href"])
for historyIP in historyIPs:
#print(historyIP)
country = getCountry(historyIP)
if country is not None:
print(historyIP+" is from "+country)
newLink = links[random.randint(0, len(links)-1)].attrs["href"]
links = getLinks(newLink)
  4.9關(guān)于A(yíng)PI的更多信息
  Leonard Richardson,Mike Amundsen和Sam Ruby的RESTful Web API()為使用Web API提供了非常全面的理論和實(shí)踐指導. 此外,Mike Amundsen的精彩視頻教學(xué)課程“為Web()設計API”還可以教您創(chuàng )建自己的API. 如果您想方便地共享自己采集的數據,他的視頻非常有用

數據導出-導出到Excel,CSV,HTML,數據庫,API

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

  此視頻介紹了數據查看和導出.
  本地采集的數據(如果采集了重復的數據). 單擊“導出數據”后,將提示您是否刪除重復項. 您可以選擇導出所有數據,也可以選擇在重復數據刪除后導出.
  導出后,本地數據不會(huì )自動(dòng)清除. 您可以下次再次導出它或清除數據.
  如果從云采集數據中采集了重復數據,則將在存儲之前自動(dòng)對它們進(jìn)行重復數據刪除,也就是說(shuō),您查看的所有數據都是唯一的.
  導出后,云采集數據不會(huì )自動(dòng)清除. 您下次可以再次導出或清除數據. 數據僅在云中存儲3個(gè)月(根據采集時(shí)間計算),有效日期將自動(dòng)清除.
  云采集數據按狀態(tài)分類(lèi):
  所有數據: 每次云采集數據時(shí)都會(huì )累積此任務(wù)的所有數據,如果不清除,則始終可以查看和導出.
  未導出的數據: 新采集的數據從未導出過(guò),但是任何導出格式或方法(只要已導出一次)都不是未導出的數據.
  數據導出格式/方法:
  Excel表文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以導出. 如果一行數據太長(cháng),該行將被截斷. )
  CSV文本文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以進(jìn)行導出. 單行數據太長(cháng)且不會(huì )被截斷. )
  HTML網(wǎng)頁(yè)文件(一行數據,一個(gè)文件,如果采集了100個(gè)數據,則選擇此格式將導出100個(gè)文件)
  導出到數據庫,支持三種類(lèi)型的數據庫: SQL Server,MySQL和Oracle. 支持自動(dòng)導出到數據庫,未導出的數據將按計劃定期導出.
  API接口導出,API文檔參考 查看全部

  此視頻介紹了數據查看和導出.
  本地采集的數據(如果采集了重復的數據). 單擊“導出數據”后,將提示您是否刪除重復項. 您可以選擇導出所有數據,也可以選擇在重復數據刪除后導出.
  導出后,本地數據不會(huì )自動(dòng)清除. 您可以下次再次導出它或清除數據.
  如果從云采集數據中采集了重復數據,則將在存儲之前自動(dòng)對它們進(jìn)行重復數據刪除,也就是說(shuō),您查看的所有數據都是唯一的.
  導出后,云采集數據不會(huì )自動(dòng)清除. 您下次可以再次導出或清除數據. 數據僅在云中存儲3個(gè)月(根據采集時(shí)間計算),有效日期將自動(dòng)清除.
  云采集數據按狀態(tài)分類(lèi):
  所有數據: 每次云采集數據時(shí)都會(huì )累積此任務(wù)的所有數據,如果不清除,則始終可以查看和導出.
  未導出的數據: 新采集的數據從未導出過(guò),但是任何導出格式或方法(只要已導出一次)都不是未導出的數據.
  數據導出格式/方法:
  Excel表文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以導出. 如果一行數據太長(cháng),該行將被截斷. )
  CSV文本文件(每個(gè)文件最多有20,000個(gè)數據,超過(guò)20,000個(gè)將自動(dòng)拆分多個(gè)文件以進(jìn)行導出. 單行數據太長(cháng)且不會(huì )被截斷. )
  HTML網(wǎng)頁(yè)文件(一行數據,一個(gè)文件,如果采集了100個(gè)數據,則選擇此格式將導出100個(gè)文件)
  導出到數據庫,支持三種類(lèi)型的數據庫: SQL Server,MySQL和Oracle. 支持自動(dòng)導出到數據庫,未導出的數據將按計劃定期導出.
  API接口導出,API文檔參考

2019年最新的站群優(yōu)化超級蜘蛛池對于排水至關(guān)重要,可以在后臺出售,自動(dòng)采集,支持推斷

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

  資源源網(wǎng)絡(luò ),如果需要授權,請更改源代碼,該模塊僅供學(xué)習,如果需要商業(yè)使用,請購買(mǎi)正版授權
  蜘蛛池排水站組蜘蛛池2019seo優(yōu)化超級蜘蛛池自動(dòng)采集網(wǎng)站優(yōu)化必不可少
  Seo優(yōu)化網(wǎng)站用戶(hù)組特征
  安全,高效,優(yōu)化地使用PHP性能,使操作平穩,穩定
  原創(chuàng )內容無(wú)需緩存即可刷新,從而節省了硬盤(pán). 阻止搜索引擎識別蜘蛛池
  蜘蛛池算法,易于構建的網(wǎng)站(電影,新聞,圖片,論壇等)
  您可以個(gè)性化每個(gè)網(wǎng)站的樣式,內容,網(wǎng)站模式,關(guān)鍵字,外部鏈接等
 ?。ㄗ远xtkd,自定義外部鏈關(guān)鍵字,自定義域名前綴)
  什么是蜘蛛池?蜘蛛池是一個(gè)利用大型平臺的權重來(lái)獲取百度的納入和排名的程序. 程序員經(jīng)常稱(chēng)其為“蜘蛛池”. 這是一個(gè)可以快速提高網(wǎng)站排名的程序. 值得一提的是,它可以自動(dòng)提高網(wǎng)站排名和網(wǎng)站包容性. 這個(gè)效果非常出色. 蜘蛛池程序可以為我們做什么?鏈接外部發(fā)布的帖子尚未包括在內,但競爭對手發(fā)布了相同的網(wǎng)站,他們還沒(méi)有發(fā)布鏈接并將其收錄在內,對!答: (因為人們有大量的百度隨附蜘蛛爬蟲(chóng),所以可以使用蜘蛛池來(lái)做到這一點(diǎn))
  有些退伍軍人會(huì )說(shuō),我也擁有百度蜘蛛,為什么不包括它們?
<p>答案: (因為您的百度索引蜘蛛不多且不夠寬,所以來(lái)回搜索的是那些劣質(zhì)的百度收錄的爬蟲(chóng),收錄緩慢,甚至根本不收錄??!-蜘蛛池有多個(gè)服務(wù)器,多個(gè)域,常規內容站點(diǎn)托管著(zhù)包括蜘蛛在內的百度,并且分布廣泛,具有許多域名,面向團隊的蜘蛛,許多源站點(diǎn),高品質(zhì),并且每天都有新的蜘蛛在爬行,以包括您的推斷帖子) 查看全部

  資源源網(wǎng)絡(luò ),如果需要授權,請更改源代碼,該模塊僅供學(xué)習,如果需要商業(yè)使用,請購買(mǎi)正版授權
  蜘蛛池排水站組蜘蛛池2019seo優(yōu)化超級蜘蛛池自動(dòng)采集網(wǎng)站優(yōu)化必不可少
  Seo優(yōu)化網(wǎng)站用戶(hù)組特征
  安全,高效,優(yōu)化地使用PHP性能,使操作平穩,穩定
  原創(chuàng )內容無(wú)需緩存即可刷新,從而節省了硬盤(pán). 阻止搜索引擎識別蜘蛛池
  蜘蛛池算法,易于構建的網(wǎng)站(電影,新聞,圖片,論壇等)
  您可以個(gè)性化每個(gè)網(wǎng)站的樣式,內容,網(wǎng)站模式,關(guān)鍵字,外部鏈接等
 ?。ㄗ远xtkd,自定義外部鏈關(guān)鍵字,自定義域名前綴)
  什么是蜘蛛池?蜘蛛池是一個(gè)利用大型平臺的權重來(lái)獲取百度的納入和排名的程序. 程序員經(jīng)常稱(chēng)其為“蜘蛛池”. 這是一個(gè)可以快速提高網(wǎng)站排名的程序. 值得一提的是,它可以自動(dòng)提高網(wǎng)站排名和網(wǎng)站包容性. 這個(gè)效果非常出色. 蜘蛛池程序可以為我們做什么?鏈接外部發(fā)布的帖子尚未包括在內,但競爭對手發(fā)布了相同的網(wǎng)站,他們還沒(méi)有發(fā)布鏈接并將其收錄在內,對!答: (因為人們有大量的百度隨附蜘蛛爬蟲(chóng),所以可以使用蜘蛛池來(lái)做到這一點(diǎn))
  有些退伍軍人會(huì )說(shuō),我也擁有百度蜘蛛,為什么不包括它們?
<p>答案: (因為您的百度索引蜘蛛不多且不夠寬,所以來(lái)回搜索的是那些劣質(zhì)的百度收錄的爬蟲(chóng),收錄緩慢,甚至根本不收錄??!-蜘蛛池有多個(gè)服務(wù)器,多個(gè)域,常規內容站點(diǎn)托管著(zhù)包括蜘蛛在內的百度,并且分布廣泛,具有許多域名,面向團隊的蜘蛛,許多源站點(diǎn),高品質(zhì),并且每天都有新的蜘蛛在爬行,以包括您的推斷帖子)

DoozyUI丨API: UIButton

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

  [為什么要學(xué)習爬網(wǎng)? 】1.爬網(wǎng)程序易于入門(mén),但難以深入. 如何編寫(xiě)高效的采集器,如何編寫(xiě)高度靈活和可伸縮的采集器是一項技術(shù)任務(wù). 此外,在爬網(wǎng)過(guò)程中,經(jīng)常容易遇到反爬蟲(chóng),例如字體防爬網(wǎng),IP識別,驗證碼等. 如何克服困難并獲得所需的數據,您可以學(xué)習此課程! 2.如果您是其他行業(yè)的開(kāi)發(fā)人員,例如應用程序開(kāi)發(fā),網(wǎng)站開(kāi)發(fā),那么學(xué)習爬蟲(chóng)程序可以增強您的技術(shù)知識,并開(kāi)發(fā)更安全的軟件和網(wǎng)站[課程設計]完整的爬蟲(chóng)程序,無(wú)論大小,它可以分為三個(gè)步驟,即: 網(wǎng)絡(luò )請求: 模擬瀏覽器的行為以從Internet抓取數據. 數據分析: 過(guò)濾請求的數據并提取所需的數據. 數據存儲: 將提取的數據存儲到硬盤(pán)或內存中. 例如,使用mysql數據庫或redis. 然后按照這些步驟逐步解釋本課程,使學(xué)生充分掌握每個(gè)步驟的技術(shù). 另外,由于爬行器的多樣性,在爬行過(guò)程中可能會(huì )發(fā)生反爬行和低效率的情況. 因此,我們增加了兩章來(lái)提高采集器程序的靈活性. 它們是: 高級采集器: 包括IP代理,多線(xiàn)程采集器,圖形驗證碼識別,JS加密和解密,動(dòng)態(tài)Web采集器,字體反搜尋識別等. Scrapy和分布式爬蟲(chóng): Scrapy框架,Scrapy-redis組件,分布式爬蟲(chóng)等. 我們可以通過(guò)爬蟲(chóng)的高級知識點(diǎn)來(lái)處理大量反爬蟲(chóng)網(wǎng)站,并且Scrapy框架是使用它的專(zhuān)業(yè)爬蟲(chóng)框架可以快速提高我們的抓取程序的效率和速度. 此外,如果一臺計算機無(wú)法滿(mǎn)足您的需求,我們可以使用分布式爬網(wǎng)程序讓多臺計算機幫助您快速爬網(wǎng)數據. 從基本的采集器到商業(yè)應用程序采集器,這套課程都可以滿(mǎn)足您的所有需求! [課程服務(wù)]獨家付費社區+每個(gè)星期三的討論會(huì )+ 1v1問(wèn)答 查看全部

  [為什么要學(xué)習爬網(wǎng)? 】1.爬網(wǎng)程序易于入門(mén),但難以深入. 如何編寫(xiě)高效的采集器,如何編寫(xiě)高度靈活和可伸縮的采集器是一項技術(shù)任務(wù). 此外,在爬網(wǎng)過(guò)程中,經(jīng)常容易遇到反爬蟲(chóng),例如字體防爬網(wǎng),IP識別,驗證碼等. 如何克服困難并獲得所需的數據,您可以學(xué)習此課程! 2.如果您是其他行業(yè)的開(kāi)發(fā)人員,例如應用程序開(kāi)發(fā),網(wǎng)站開(kāi)發(fā),那么學(xué)習爬蟲(chóng)程序可以增強您的技術(shù)知識,并開(kāi)發(fā)更安全的軟件和網(wǎng)站[課程設計]完整的爬蟲(chóng)程序,無(wú)論大小,它可以分為三個(gè)步驟,即: 網(wǎng)絡(luò )請求: 模擬瀏覽器的行為以從Internet抓取數據. 數據分析: 過(guò)濾請求的數據并提取所需的數據. 數據存儲: 將提取的數據存儲到硬盤(pán)或內存中. 例如,使用mysql數據庫或redis. 然后按照這些步驟逐步解釋本課程,使學(xué)生充分掌握每個(gè)步驟的技術(shù). 另外,由于爬行器的多樣性,在爬行過(guò)程中可能會(huì )發(fā)生反爬行和低效率的情況. 因此,我們增加了兩章來(lái)提高采集器程序的靈活性. 它們是: 高級采集器: 包括IP代理,多線(xiàn)程采集器,圖形驗證碼識別,JS加密和解密,動(dòng)態(tài)Web采集器,字體反搜尋識別等. Scrapy和分布式爬蟲(chóng): Scrapy框架,Scrapy-redis組件,分布式爬蟲(chóng)等. 我們可以通過(guò)爬蟲(chóng)的高級知識點(diǎn)來(lái)處理大量反爬蟲(chóng)網(wǎng)站,并且Scrapy框架是使用它的專(zhuān)業(yè)爬蟲(chóng)框架可以快速提高我們的抓取程序的效率和速度. 此外,如果一臺計算機無(wú)法滿(mǎn)足您的需求,我們可以使用分布式爬網(wǎng)程序讓多臺計算機幫助您快速爬網(wǎng)數據. 從基本的采集器到商業(yè)應用程序采集器,這套課程都可以滿(mǎn)足您的所有需求! [課程服務(wù)]獨家付費社區+每個(gè)星期三的討論會(huì )+ 1v1問(wèn)答

威盟智能營(yíng)銷(xiāo): 企業(yè)數據嵌入和干貨實(shí)現

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

  
  在數據驅動(dòng)的精細營(yíng)銷(xiāo)時(shí)代,越來(lái)越多的公司開(kāi)始重視數據的價(jià)值. 但是,由于落后的技術(shù)和過(guò)時(shí)的方法,傳統數據統計服務(wù)提供者提供的簡(jiǎn)單粗粒度的數據采集服務(wù)(例如訪(fǎng)問(wèn),活躍用戶(hù)和注冊)無(wú)法滿(mǎn)足現代企業(yè)的需求. Weimob Smart Marketing集成了兩種掩埋技術(shù): 代碼掩埋點(diǎn)和無(wú)掩埋點(diǎn),并根據公司的要求推出了兩項數據采集技術(shù)服務(wù),即“全鏈接掩埋點(diǎn)解決方案”和“智能站點(diǎn)構建系統”,以幫助公司實(shí)現最大化靈活,完善的數據采集功能的部署將幫助公司準確,全面地采集數據,并在數據資產(chǎn)洞察方面邁出關(guān)鍵的一步.
  
  1. 自定義智能掩埋點(diǎn),精細采集所有場(chǎng)景
  數據采集是數據分析的基礎,埋葬點(diǎn)是主要的采集方法. 智能營(yíng)銷(xiāo)前端代碼掩埋點(diǎn)+后端API對接的雙數據掩埋系統為企業(yè)提供了全鏈接數據采集技術(shù)解決方案,可以輕松突破過(guò)去數據掩埋點(diǎn)的困惑,數據團隊和業(yè)務(wù)團隊之間的協(xié)作,以及缺乏有效的技術(shù)手段等待痛點(diǎn). 它可以幫助企業(yè)“進(jìn)行詳細而準確的數據采集”,同時(shí)降低研發(fā)人員的成本. 同時(shí),為了實(shí)現最大程度的定制化和靈活的數據采集,Weimob Smart Marketing與百度統計SDK和渠道參數高度兼容,并與百度統計共享相同的參數名稱(chēng),從而降低了學(xué)習和部署成本. 企業(yè).
  1. 靈活部署前端代碼,動(dòng)態(tài)監控和深度采集
  在前端,Smart Marketing使用代碼嵌入技術(shù)為公司提供了高度靈活和智能的數據嵌入和采集解決方案: 當公司在前端頁(yè)面上初始化SDK代碼時(shí),它將執行頁(yè)面PV, UV,并訪(fǎng)問(wèn)非嵌入式數據統計信息(例如時(shí)間),并支持多頁(yè)和單頁(yè)應用程序.
  
  此外,當用戶(hù)觸發(fā)公司指定的業(yè)務(wù)行為和用戶(hù)行為時(shí),將在相應的邏輯中調用內置數據接口以將數據發(fā)送給公司,公司可以動(dòng)態(tài)查看用戶(hù)的行為數據在后臺實(shí)時(shí)顯示.
  
  例如,當企業(yè)想要監視移動(dòng)官方網(wǎng)站上某個(gè)按鈕的點(diǎn)擊次數時(shí),可以在按鈕的相應功能中執行SDK的掩埋方法: 例如,當按鈕A已被單擊,您可以監視按鈕單擊事件并動(dòng)態(tài)返回相應的數據:
  A_clickA
  通過(guò)在智能營(yíng)銷(xiāo)的前端部署復雜的用戶(hù)數據采集系統,公司可以拆分不同的站點(diǎn)和不同的促銷(xiāo)渠道,查看和監視從用戶(hù)訪(fǎng)問(wèn),瀏覽,單擊,在線(xiàn)咨詢(xún)和填寫(xiě)到整個(gè)交互過(guò)程. 形式,并借助漏斗分析和路徑分析等分析模型,將分析降低到流量分布和流量水平,深入了解用戶(hù)行為與用戶(hù)價(jià)值增強之間的潛在關(guān)系,并使用數據分析來(lái)持續推動(dòng)產(chǎn)品升級并改善整體營(yíng)銷(xiāo)效果.
  2. 后端數據已完全集成,準確的洞察力有助于決策
  隨著(zhù)公司產(chǎn)品線(xiàn)的日益成熟,單個(gè)前端用戶(hù)行為的捕獲和采集顯然無(wú)法滿(mǎn)足公司對數據分析的需求. 該公司需要為用戶(hù)數據構建完善的分析系統. 例如,當公司進(jìn)行在線(xiàn)促銷(xiāo)活動(dòng)時(shí),某些用戶(hù)單擊以觸發(fā)“添加到購物車(chē)”行為,但他們并未下訂單以完成實(shí)際的購買(mǎi)和消費行為. 這時(shí),他們僅依靠前端來(lái)采集用戶(hù)行為數據將導致單面數據問(wèn)題,這可以通過(guò)實(shí)現有關(guān)系統實(shí)時(shí)狀態(tài)的統計數據(例如實(shí)際訂單量)來(lái)解決后端嵌入式技術(shù)實(shí)現交易額和交易額.
  
  在這里,Smart Marketing通過(guò)API訪(fǎng)問(wèn)為企業(yè)提供了一個(gè)便捷的后端數據采集解決方案: 僅需要根據規范管理后端的用戶(hù)屬性和用戶(hù)行為事件,企業(yè)就可以實(shí)現智能營(yíng)銷(xiāo)和企業(yè)CRM,客戶(hù)服務(wù)系統,ERP和其他自己的業(yè)務(wù)系統的無(wú)縫連接. 根據企業(yè)的實(shí)際業(yè)務(wù)需求實(shí)時(shí)采集數據,在保證核心數據準確性和安全性的前提下,多源數據整合后的準確分析,為企業(yè)制定營(yíng)銷(xiāo)策略提供了依據.
  2. 著(zhù)陸頁(yè)的可視化,準確的營(yíng)銷(xiāo)分析和優(yōu)化
  在廣告和事件等在線(xiàn)營(yíng)銷(xiāo)方案中,公司通常會(huì )在同一目標頁(yè)面上放置多個(gè)渠道. 這時(shí),細化頁(yè)面數據分析的實(shí)現對于優(yōu)化整體營(yíng)銷(xiāo)策略至關(guān)重要. 然而,為每個(gè)登陸頁(yè)面執行預先埋入代碼的動(dòng)作,付出很高的研發(fā)成本顯然是不現實(shí)的. 因此,基于封裝的代碼嵌入技術(shù)并支持企業(yè)一鍵式調用的智能營(yíng)銷(xiāo)智能網(wǎng)站建設系統可以完全滿(mǎn)足企業(yè)的需求.
  
  企業(yè)可以通過(guò)使用智能網(wǎng)站構建系統和多個(gè)可視組件,在3-5分鐘內構建滿(mǎn)足當前業(yè)務(wù)需求的登錄頁(yè)面. 啟動(dòng)頁(yè)面后,企業(yè)可以完全查看頁(yè)面PV和UV號等流量數據,而無(wú)需進(jìn)行二次開(kāi)發(fā);轉換行為數據,例如表單提交和手機號碼授權;諸如人均停留時(shí)間和頁(yè)面轉發(fā)時(shí)間等訪(fǎng)問(wèn)者行為之類(lèi)的多維數據,為企業(yè)實(shí)現單個(gè)頁(yè)面或控件的分析提供了精確的數據基礎,并優(yōu)化了整體營(yíng)銷(xiāo)效果.
  
  同時(shí),智能網(wǎng)站建設系統還提供強大的數據可視化技術(shù)功能,以支持企業(yè)在日,周,月等多個(gè)時(shí)間領(lǐng)域實(shí)現數據統計. 然后,通過(guò)多種類(lèi)型的可視化圖表(例如熱圖,訪(fǎng)問(wèn)者行為趨勢和頁(yè)面報告),清晰地復制頁(yè)面不同部分的精煉數據,例如客戶(hù)點(diǎn)擊次數,停留時(shí)間,訪(fǎng)問(wèn)深度和來(lái)源屬性,幫助公司更直觀(guān)地了解營(yíng)銷(xiāo)效果.
  
  3. 結論
  在企業(yè)數據采集,傳輸,建模/存儲,挖掘和可視化的數據處理路徑中,數據采集是第一步,也是其關(guān)鍵. Smart Marketing之前和之后的全鏈接數據采集解決方案和智能網(wǎng)站構建系統可滿(mǎn)足不同公司,不同平臺和不同部門(mén)對數據采集的需求,并與客戶(hù),營(yíng)銷(xiāo),業(yè)務(wù)和其他數據連接以實(shí)現正確的用戶(hù)基于個(gè)性化屬性,行為事件的精確標記和分組,并使用自動(dòng)化營(yíng)銷(xiāo)技術(shù)和完整的生命周期模型進(jìn)行精確營(yíng)銷(xiāo),并真正實(shí)現數據的營(yíng)銷(xiāo)授權. 查看全部

  
  在數據驅動(dòng)的精細營(yíng)銷(xiāo)時(shí)代,越來(lái)越多的公司開(kāi)始重視數據的價(jià)值. 但是,由于落后的技術(shù)和過(guò)時(shí)的方法,傳統數據統計服務(wù)提供者提供的簡(jiǎn)單粗粒度的數據采集服務(wù)(例如訪(fǎng)問(wèn),活躍用戶(hù)和注冊)無(wú)法滿(mǎn)足現代企業(yè)的需求. Weimob Smart Marketing集成了兩種掩埋技術(shù): 代碼掩埋點(diǎn)和無(wú)掩埋點(diǎn),并根據公司的要求推出了兩項數據采集技術(shù)服務(wù),即“全鏈接掩埋點(diǎn)解決方案”和“智能站點(diǎn)構建系統”,以幫助公司實(shí)現最大化靈活,完善的數據采集功能的部署將幫助公司準確,全面地采集數據,并在數據資產(chǎn)洞察方面邁出關(guān)鍵的一步.
  
  1. 自定義智能掩埋點(diǎn),精細采集所有場(chǎng)景
  數據采集是數據分析的基礎,埋葬點(diǎn)是主要的采集方法. 智能營(yíng)銷(xiāo)前端代碼掩埋點(diǎn)+后端API對接的雙數據掩埋系統為企業(yè)提供了全鏈接數據采集技術(shù)解決方案,可以輕松突破過(guò)去數據掩埋點(diǎn)的困惑,數據團隊和業(yè)務(wù)團隊之間的協(xié)作,以及缺乏有效的技術(shù)手段等待痛點(diǎn). 它可以幫助企業(yè)“進(jìn)行詳細而準確的數據采集”,同時(shí)降低研發(fā)人員的成本. 同時(shí),為了實(shí)現最大程度的定制化和靈活的數據采集,Weimob Smart Marketing與百度統計SDK和渠道參數高度兼容,并與百度統計共享相同的參數名稱(chēng),從而降低了學(xué)習和部署成本. 企業(yè).
  1. 靈活部署前端代碼,動(dòng)態(tài)監控和深度采集
  在前端,Smart Marketing使用代碼嵌入技術(shù)為公司提供了高度靈活和智能的數據嵌入和采集解決方案: 當公司在前端頁(yè)面上初始化SDK代碼時(shí),它將執行頁(yè)面PV, UV,并訪(fǎng)問(wèn)非嵌入式數據統計信息(例如時(shí)間),并支持多頁(yè)和單頁(yè)應用程序.
  
  此外,當用戶(hù)觸發(fā)公司指定的業(yè)務(wù)行為和用戶(hù)行為時(shí),將在相應的邏輯中調用內置數據接口以將數據發(fā)送給公司,公司可以動(dòng)態(tài)查看用戶(hù)的行為數據在后臺實(shí)時(shí)顯示.
  
  例如,當企業(yè)想要監視移動(dòng)官方網(wǎng)站上某個(gè)按鈕的點(diǎn)擊次數時(shí),可以在按鈕的相應功能中執行SDK的掩埋方法: 例如,當按鈕A已被單擊,您可以監視按鈕單擊事件并動(dòng)態(tài)返回相應的數據:
  A_clickA
  通過(guò)在智能營(yíng)銷(xiāo)的前端部署復雜的用戶(hù)數據采集系統,公司可以拆分不同的站點(diǎn)和不同的促銷(xiāo)渠道,查看和監視從用戶(hù)訪(fǎng)問(wèn),瀏覽,單擊,在線(xiàn)咨詢(xún)和填寫(xiě)到整個(gè)交互過(guò)程. 形式,并借助漏斗分析和路徑分析等分析模型,將分析降低到流量分布和流量水平,深入了解用戶(hù)行為與用戶(hù)價(jià)值增強之間的潛在關(guān)系,并使用數據分析來(lái)持續推動(dòng)產(chǎn)品升級并改善整體營(yíng)銷(xiāo)效果.
  2. 后端數據已完全集成,準確的洞察力有助于決策
  隨著(zhù)公司產(chǎn)品線(xiàn)的日益成熟,單個(gè)前端用戶(hù)行為的捕獲和采集顯然無(wú)法滿(mǎn)足公司對數據分析的需求. 該公司需要為用戶(hù)數據構建完善的分析系統. 例如,當公司進(jìn)行在線(xiàn)促銷(xiāo)活動(dòng)時(shí),某些用戶(hù)單擊以觸發(fā)“添加到購物車(chē)”行為,但他們并未下訂單以完成實(shí)際的購買(mǎi)和消費行為. 這時(shí),他們僅依靠前端來(lái)采集用戶(hù)行為數據將導致單面數據問(wèn)題,這可以通過(guò)實(shí)現有關(guān)系統實(shí)時(shí)狀態(tài)的統計數據(例如實(shí)際訂單量)來(lái)解決后端嵌入式技術(shù)實(shí)現交易額和交易額.
  
  在這里,Smart Marketing通過(guò)API訪(fǎng)問(wèn)為企業(yè)提供了一個(gè)便捷的后端數據采集解決方案: 僅需要根據規范管理后端的用戶(hù)屬性和用戶(hù)行為事件,企業(yè)就可以實(shí)現智能營(yíng)銷(xiāo)和企業(yè)CRM,客戶(hù)服務(wù)系統,ERP和其他自己的業(yè)務(wù)系統的無(wú)縫連接. 根據企業(yè)的實(shí)際業(yè)務(wù)需求實(shí)時(shí)采集數據,在保證核心數據準確性和安全性的前提下,多源數據整合后的準確分析,為企業(yè)制定營(yíng)銷(xiāo)策略提供了依據.
  2. 著(zhù)陸頁(yè)的可視化,準確的營(yíng)銷(xiāo)分析和優(yōu)化
  在廣告和事件等在線(xiàn)營(yíng)銷(xiāo)方案中,公司通常會(huì )在同一目標頁(yè)面上放置多個(gè)渠道. 這時(shí),細化頁(yè)面數據分析的實(shí)現對于優(yōu)化整體營(yíng)銷(xiāo)策略至關(guān)重要. 然而,為每個(gè)登陸頁(yè)面執行預先埋入代碼的動(dòng)作,付出很高的研發(fā)成本顯然是不現實(shí)的. 因此,基于封裝的代碼嵌入技術(shù)并支持企業(yè)一鍵式調用的智能營(yíng)銷(xiāo)智能網(wǎng)站建設系統可以完全滿(mǎn)足企業(yè)的需求.
  
  企業(yè)可以通過(guò)使用智能網(wǎng)站構建系統和多個(gè)可視組件,在3-5分鐘內構建滿(mǎn)足當前業(yè)務(wù)需求的登錄頁(yè)面. 啟動(dòng)頁(yè)面后,企業(yè)可以完全查看頁(yè)面PV和UV號等流量數據,而無(wú)需進(jìn)行二次開(kāi)發(fā);轉換行為數據,例如表單提交和手機號碼授權;諸如人均停留時(shí)間和頁(yè)面轉發(fā)時(shí)間等訪(fǎng)問(wèn)者行為之類(lèi)的多維數據,為企業(yè)實(shí)現單個(gè)頁(yè)面或控件的分析提供了精確的數據基礎,并優(yōu)化了整體營(yíng)銷(xiāo)效果.
  
  同時(shí),智能網(wǎng)站建設系統還提供強大的數據可視化技術(shù)功能,以支持企業(yè)在日,周,月等多個(gè)時(shí)間領(lǐng)域實(shí)現數據統計. 然后,通過(guò)多種類(lèi)型的可視化圖表(例如熱圖,訪(fǎng)問(wèn)者行為趨勢和頁(yè)面報告),清晰地復制頁(yè)面不同部分的精煉數據,例如客戶(hù)點(diǎn)擊次數,停留時(shí)間,訪(fǎng)問(wèn)深度和來(lái)源屬性,幫助公司更直觀(guān)地了解營(yíng)銷(xiāo)效果.
  
  3. 結論
  在企業(yè)數據采集,傳輸,建模/存儲,挖掘和可視化的數據處理路徑中,數據采集是第一步,也是其關(guān)鍵. Smart Marketing之前和之后的全鏈接數據采集解決方案和智能網(wǎng)站構建系統可滿(mǎn)足不同公司,不同平臺和不同部門(mén)對數據采集的需求,并與客戶(hù),營(yíng)銷(xiāo),業(yè)務(wù)和其他數據連接以實(shí)現正確的用戶(hù)基于個(gè)性化屬性,行為事件的精確標記和分組,并使用自動(dòng)化營(yíng)銷(xiāo)技術(shù)和完整的生命周期模型進(jìn)行精確營(yíng)銷(xiāo),并真正實(shí)現數據的營(yíng)銷(xiāo)授權.

太棒了!使用新界面抓取微信公眾號的所有文章

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

  
  伙計們,您一定遭受了采集微信公眾號的困擾!特別! ! ! ! ! !公開(kāi)帳戶(hù)歷史記錄信息! ! !除了通過(guò)中間代理采集APP外,實(shí)際上沒(méi)有任何技巧可以獲取數據!
  直到···········
  前一段時(shí)間,微信在當晚正式發(fā)布了一篇文章:
  
  媽媽?zhuān)∵@不是始終需要的采集接口!嘿,上帝也幫助我!來(lái)...讓我們談?wù)勔话惴椒?
  1. 首先,您需要一個(gè)訂閱帳戶(hù)!我不知道官方帳戶(hù)和企業(yè)帳戶(hù)是否可行. 因為我沒(méi)有...
  2. 接下來(lái),您需要登錄!
  我沒(méi)有仔細查看微信官方帳戶(hù)登錄.
  暫且不說(shuō),我使用硒的方法來(lái)驅動(dòng)瀏覽器獲取cookie以達到登錄效果.
  3. 使用請求攜帶cookie,登錄以獲取URL的令牌(這很重要,您需要在每個(gè)請求中都帶上它),如下所示:
  
  4. 使用獲取的令牌和官方賬號的微信ID(即數字+字符)來(lái)獲取官方賬號的偽造品(可以了解官方賬號的身份)
  
  當我們搜索官方帳戶(hù)時(shí),瀏覽器使用GET方法向帶參數的紅色框中的URL發(fā)起了請求. 請求參數如下:
  
  請求如下:
  
  代碼如下:
  
  好的,讓我們繼續:
  5. 單擊我們搜索的官方帳戶(hù)后,發(fā)現了另一個(gè)請求:
  
  請求參數如下:
  
  返回結果如下:
  
  代碼如下:
  
  好吧···最后一步,要獲取所有文章,您需要處理翻頁(yè). 翻頁(yè)請求如下:
  
  我可能看了一眼. 極客學(xué)院的每一頁(yè)至少有5條信息,即文章總數/ 5 /有多少頁(yè). 但是有小數,我們將其四舍五入,然后加1以得到總頁(yè)數.
  代碼如下:
  
  item.get(‘link’)是我們需要的官方帳戶(hù)文章鏈接!繼續請求該URL以提取其中的內容!
  結束. 查看全部

  
  伙計們,您一定遭受了采集微信公眾號的困擾!特別! ! ! ! ! !公開(kāi)帳戶(hù)歷史記錄信息! ! !除了通過(guò)中間代理采集APP外,實(shí)際上沒(méi)有任何技巧可以獲取數據!
  直到···········
  前一段時(shí)間,微信在當晚正式發(fā)布了一篇文章:
  
  媽媽?zhuān)∵@不是始終需要的采集接口!嘿,上帝也幫助我!來(lái)...讓我們談?wù)勔话惴椒?
  1. 首先,您需要一個(gè)訂閱帳戶(hù)!我不知道官方帳戶(hù)和企業(yè)帳戶(hù)是否可行. 因為我沒(méi)有...
  2. 接下來(lái),您需要登錄!
  我沒(méi)有仔細查看微信官方帳戶(hù)登錄.
  暫且不說(shuō),我使用硒的方法來(lái)驅動(dòng)瀏覽器獲取cookie以達到登錄效果.
  3. 使用請求攜帶cookie,登錄以獲取URL的令牌(這很重要,您需要在每個(gè)請求中都帶上它),如下所示:
  
  4. 使用獲取的令牌和官方賬號的微信ID(即數字+字符)來(lái)獲取官方賬號的偽造品(可以了解官方賬號的身份)
  
  當我們搜索官方帳戶(hù)時(shí),瀏覽器使用GET方法向帶參數的紅色框中的URL發(fā)起了請求. 請求參數如下:
  
  請求如下:
  
  代碼如下:
  
  好的,讓我們繼續:
  5. 單擊我們搜索的官方帳戶(hù)后,發(fā)現了另一個(gè)請求:
  
  請求參數如下:
  
  返回結果如下:
  
  代碼如下:
  
  好吧···最后一步,要獲取所有文章,您需要處理翻頁(yè). 翻頁(yè)請求如下:
  
  我可能看了一眼. 極客學(xué)院的每一頁(yè)至少有5條信息,即文章總數/ 5 /有多少頁(yè). 但是有小數,我們將其四舍五入,然后加1以得到總頁(yè)數.
  代碼如下:
  
  item.get(‘link’)是我們需要的官方帳戶(hù)文章鏈接!繼續請求該URL以提取其中的內容!
  結束.

關(guān)于數據采集的那些事情

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

  數據采集是數據分析的基礎,掩埋點(diǎn)是最重要的采集方法. 那么數據掩埋點(diǎn)集合到底是什么?我們主要從三個(gè)方面來(lái)研究它: 埋葬點(diǎn)是什么,如何設計埋葬點(diǎn),以及埋葬點(diǎn)的應用.
  首先,數據采集和常見(jiàn)數據問(wèn)題
  1. 數據采集
  一切都必須有目的和目標,數據分析也不例外. 在進(jìn)行數據分析之前,我們需要考慮為什么我們需要進(jìn)行數據分析?您希望通過(guò)此數據分析為公司解決哪些問(wèn)題?
  有很多采集數據的方法,并且隱埋點(diǎn)采集是其中非常重要的一部分. 它是c-end和b-end產(chǎn)品的主要采集方法. 顧名思義,數據采集就是采集相應的數據,即整個(gè)數據流. 起點(diǎn)是不正確的采集(對還是錯),直接決定數據的廣度和質(zhì)量,并影響所有后續鏈接. 在數據采集有效性和完整性較差的公司中,業(yè)務(wù)中發(fā)現的數據通常會(huì )發(fā)生重大變化.
  數據處理通常包括以下5個(gè)步驟:
  
  2. 常見(jiàn)數據問(wèn)題
  大致了解了數據采集及其體系結構之后,讓我們看一下我們在工作中遇到的問(wèn)題,其中有多少與數據采集鏈接有關(guān):
 ?。?)數據與背景之間存在較大差距,數據不準確-統計口徑不同,掩埋點(diǎn)的定義不同,采集方法帶來(lái)誤差;
 ?。?)當我要使用它時(shí),沒(méi)有我想要的數據-沒(méi)有提及數據采集要求,并且掩埋點(diǎn)不正確且不完整;
 ?。?)事件太多,含義不明確-埋點(diǎn)設計方法,埋點(diǎn)更新迭代的規則和維護;
 ?。?)我不知道在分析數據時(shí)要看哪些數據和指標-數據的定義不清楚并且缺乏分析思路
  我們需要從根本上解決問(wèn)題: 將館藏視為獨立的研發(fā)業(yè)務(wù),而不是產(chǎn)品開(kāi)發(fā)的附件.
  
  第二,什么是掩埋點(diǎn)
  1. 什么是埋藏點(diǎn)
  所謂的掩埋點(diǎn)是數據采集領(lǐng)域中的一個(gè)術(shù)語(yǔ). 它的學(xué)名叫“事件跟蹤”,對應的英文是“事件跟蹤”,它是指捕獲,處理和發(fā)送特定用戶(hù)行為或事件的相關(guān)技術(shù)和實(shí)現過(guò)程.
  數據埋藏點(diǎn)是數據分析師,數據產(chǎn)品經(jīng)理和數據操作. 根據業(yè)務(wù)需求或產(chǎn)品需求,開(kāi)發(fā)每個(gè)用戶(hù)行為事件的對應位置并掩埋點(diǎn),并通過(guò)SDK報告掩埋點(diǎn)的數據結果,并對記錄進(jìn)行匯總. 分析數據后,它可以促進(jìn)產(chǎn)品優(yōu)化并指導操作.
  該過(guò)程隨附規范. 通過(guò)該定義,我們看到特定的用戶(hù)行為和事件是我們采集的重點(diǎn),并且我們還需要處理和發(fā)送相關(guān)的技術(shù)和實(shí)現過(guò)程;數據掩埋點(diǎn)是為產(chǎn)品服務(wù)的,它來(lái)自產(chǎn)品. 因此,它與產(chǎn)品密切相關(guān),而埋藏點(diǎn)在于具體的實(shí)戰過(guò)程,這與每個(gè)人對基礎數據的理解有關(guān).
  
  2. 為什么要埋點(diǎn)?
  掩埋點(diǎn)的目的是對產(chǎn)品進(jìn)行全方位的連續跟蹤,并通過(guò)數據分析不斷地指導和優(yōu)化產(chǎn)品. 數據掩埋點(diǎn)的質(zhì)量直接影響數據,產(chǎn)品,操作等的質(zhì)量.
 ?。?)數據驅動(dòng)的埋藏點(diǎn)深入分析了交通分布和流量水平的深度,通過(guò)統計分析對宏觀(guān)指標進(jìn)行了深入分析,發(fā)現了指標背后的問(wèn)題,并深入了解了用戶(hù)行為與增值之間的關(guān)系潛在相關(guān).
 ?。?)產(chǎn)品優(yōu)化-對于產(chǎn)品,用戶(hù)在產(chǎn)品中的工作方式,在產(chǎn)品中停留的時(shí)間以及任何異常情況都需要引起注意. 這些問(wèn)題可以通過(guò)掩埋點(diǎn)來(lái)實(shí)現.
 ?。?)精致的運營(yíng)掩埋點(diǎn)可以實(shí)現整個(gè)產(chǎn)品生命周期,流量質(zhì)量和不同來(lái)源的分布,人群的行為特征和關(guān)系以及用戶(hù)行為與提升業(yè)務(wù)價(jià)值之間的潛在關(guān)聯(lián)
  3. 如何掩埋點(diǎn)
  掩埋點(diǎn)有哪些方法?目前,大多數公司使用客戶(hù)端和服務(wù)器的組合.
  
  精度: 代碼掩埋點(diǎn)>可視化掩埋點(diǎn)>完全掩埋點(diǎn)
  三,掩埋點(diǎn)的框架和設計
  1. 掩埋點(diǎn)集合的頂層設計
  所謂的頂層設計是弄清楚如何掩埋點(diǎn),使用哪種方法,上載機制是什么,如何定義它,如何實(shí)現它,等等. 我們遵循唯一性,可伸縮性,一致性等原則. 我們必須設計一些常見(jiàn)的字段和生成機制,例如: cid,idfa,idfv等.
  用戶(hù)識別: 用戶(hù)識別機制的混亂將導致兩個(gè)結果: 一個(gè)是不正確的數據,例如UV數據不正確;另一個(gè)是不正確的數據. 另一個(gè)是渠道分析鏈接中的異常. 因此,應為: 嚴格規范ID自身的識別機制; b. 跨平臺用戶(hù)識別.
  相似的抽象: 相似的抽象包括事件抽象和屬性抽象. 事件抽象是指瀏覽事件和點(diǎn)擊事件的集合;屬性抽象意味著(zhù)將大多數可重復使用的場(chǎng)景合并以增加源差異.
  一致集合: 一致集合包括兩點(diǎn): 一是跨平臺頁(yè)面的一致命名,其二是按鈕的一致命名. 設置嵌入點(diǎn)本身的過(guò)程就是對基礎數據進(jìn)行標準化的過(guò)程,因此一致性特別重要. 只有這樣,才可以使用它.
  頻道配置: 頻道主要指促銷(xiāo)頻道,登錄頁(yè)面,Web促銷(xiāo)頁(yè)面,APP促銷(xiāo)頁(yè)面等. 此登錄頁(yè)面的配置必須具有統一的規范和標準
  2. 埋點(diǎn)采集事件和屬性設計
  在設計屬性和事件時(shí),我們需要知道哪些經(jīng)常更改,哪些不更改,哪些是業(yè)務(wù)行為以及哪些是基本屬性. 基于基本屬性事件,我們認為必須采集屬性,但是屬性中的事件屬性會(huì )根據不同業(yè)務(wù)進(jìn)行調整. 因此,我們可以將掩埋點(diǎn)集合分為協(xié)議層和業(yè)務(wù)層掩埋點(diǎn).
  業(yè)務(wù)分解: 整理并確認業(yè)務(wù)流程,操作路徑和不同的細分方案,并定義用戶(hù)行為路徑. 分析指標: 定義特定事件,需要數據的核心業(yè)務(wù)指標進(jìn)行事件設計: APP啟動(dòng),退出,頁(yè)面瀏覽,事件暴露單擊屬性設計: 用戶(hù)屬性,事件屬性,對象屬性,環(huán)境屬性
  3. 數據采集事件和屬性設計
  
  Ev事件的命名也遵循一些規則. 當同一類(lèi)型的函數出現在不同的頁(yè)面或位置時(shí),將根據函數名稱(chēng)進(jìn)行命名,并在ev參數中區分頁(yè)面和位置. 當僅單擊按鈕時(shí),它以按鈕名稱(chēng)命名.
  ev事件格式: ev分為ev標識和ev參數
  規則:
  使用“#”在ev標記和ev參數(一級連接器)之間進(jìn)行連接
  使用“ /”在ev參數和ev參數(二級連接器)之間進(jìn)行連接
  ev參數使用key = value的結構. 當一個(gè)鍵對應多個(gè)值時(shí),請使用“,”在value1和value2(三級連接器)之間進(jìn)行連接
  當埋點(diǎn)只有ev標記而沒(méi)有ev參數時(shí),則無(wú)需帶#
  備注:
  ev ID: 作為掩埋點(diǎn)的唯一ID,用于區分掩埋點(diǎn)的位置和屬性. 它是不可變的,不能修改.
  ev參數: 埋點(diǎn)需要返回的參數,ev參數的順序是可變的,可以修改)
  調整應用嵌入點(diǎn)后,ev標記保持不變,并且僅修改后續嵌入點(diǎn)參數(參數值更改或參數類(lèi)型增加)
  常規嵌入點(diǎn)文檔中收錄的圖紙的名稱(chēng)和功能:
  A. 暴露掩埋點(diǎn)摘要;
  B. 點(diǎn)擊和瀏覽隱藏點(diǎn)的摘要;
  C. 失效埋點(diǎn)匯總: 通常會(huì )記錄失效點(diǎn)的失效版本或時(shí)間;
  與D,PC和M頁(yè)面的嵌入點(diǎn)相對應的pageid;
  E. 在線(xiàn)每個(gè)版本的時(shí)間記錄;
  在埋點(diǎn)文檔中,所有列名稱(chēng)和函數都包括:
  
  4. 基于埋點(diǎn)的統計
  如何使用隱藏的統計數據查找隱藏的ev事件:
 ?。?)指定掩埋點(diǎn)的類(lèi)型(單擊/曝光/瀏覽)-過(guò)濾類(lèi)型字段
 ?。?)指定按鈕所屬的頁(yè)面(頁(yè)面或功能)-過(guò)濾功能模塊字段
 ?。?)指定掩埋點(diǎn)事件的名稱(chēng)-過(guò)濾名稱(chēng)字段
 ?。?)知道ev標識符,您可以直接使用ev進(jìn)行過(guò)濾
  如何根據ev事件查詢(xún)統計信息: 當查詢(xún)按鈕單擊統計信息時(shí),您可以直接使用ev徽標進(jìn)行查詢(xún),并且當存在區別時(shí),可以限制掩埋點(diǎn)參數的值. 由于ev參數的順序不需要是可變的,因此在查詢(xún)統計信息時(shí),不能根據參數的順序對其進(jìn)行限制.
  四個(gè)應用程序-數據流的基礎
  
  1. 指標體系
  系統化指標可以整合不同指標和不同維度進(jìn)行全面分析,從而迅速發(fā)現當前產(chǎn)品和業(yè)務(wù)流程中存在的問(wèn)題.
  
  2. 可視化
  人類(lèi)對圖像信息的解釋比文本更有效. 可視化對于數據分析極為重要. 使用數據可視化可以揭示數據中的復雜關(guān)系.
  
  3. 提供了埋點(diǎn)元信息api
  數據采集服務(wù)會(huì )將采集的掩埋點(diǎn)寫(xiě)入Kafka. 為了滿(mǎn)足每個(gè)企業(yè)的實(shí)時(shí)數據消耗需求,我們?yōu)槊總€(gè)企業(yè)提供了單獨的Kafka,流量分配模塊將定期讀取掩埋點(diǎn)管理平臺. 所提供的元信息會(huì )在Kafka中為每個(gè)業(yè)務(wù)實(shí)時(shí)分配流量.
  
  數據采集就像設計產(chǎn)品一樣,不能過(guò)多. 我們不僅要留出擴展的空間,還應該考慮數據是否完整,不完整,詳細,穩定和快速. 查看全部

  數據采集是數據分析的基礎,掩埋點(diǎn)是最重要的采集方法. 那么數據掩埋點(diǎn)集合到底是什么?我們主要從三個(gè)方面來(lái)研究它: 埋葬點(diǎn)是什么,如何設計埋葬點(diǎn),以及埋葬點(diǎn)的應用.
  首先,數據采集和常見(jiàn)數據問(wèn)題
  1. 數據采集
  一切都必須有目的和目標,數據分析也不例外. 在進(jìn)行數據分析之前,我們需要考慮為什么我們需要進(jìn)行數據分析?您希望通過(guò)此數據分析為公司解決哪些問(wèn)題?
  有很多采集數據的方法,并且隱埋點(diǎn)采集是其中非常重要的一部分. 它是c-end和b-end產(chǎn)品的主要采集方法. 顧名思義,數據采集就是采集相應的數據,即整個(gè)數據流. 起點(diǎn)是不正確的采集(對還是錯),直接決定數據的廣度和質(zhì)量,并影響所有后續鏈接. 在數據采集有效性和完整性較差的公司中,業(yè)務(wù)中發(fā)現的數據通常會(huì )發(fā)生重大變化.
  數據處理通常包括以下5個(gè)步驟:
  
  2. 常見(jiàn)數據問(wèn)題
  大致了解了數據采集及其體系結構之后,讓我們看一下我們在工作中遇到的問(wèn)題,其中有多少與數據采集鏈接有關(guān):
 ?。?)數據與背景之間存在較大差距,數據不準確-統計口徑不同,掩埋點(diǎn)的定義不同,采集方法帶來(lái)誤差;
 ?。?)當我要使用它時(shí),沒(méi)有我想要的數據-沒(méi)有提及數據采集要求,并且掩埋點(diǎn)不正確且不完整;
 ?。?)事件太多,含義不明確-埋點(diǎn)設計方法,埋點(diǎn)更新迭代的規則和維護;
 ?。?)我不知道在分析數據時(shí)要看哪些數據和指標-數據的定義不清楚并且缺乏分析思路
  我們需要從根本上解決問(wèn)題: 將館藏視為獨立的研發(fā)業(yè)務(wù),而不是產(chǎn)品開(kāi)發(fā)的附件.
  
  第二,什么是掩埋點(diǎn)
  1. 什么是埋藏點(diǎn)
  所謂的掩埋點(diǎn)是數據采集領(lǐng)域中的一個(gè)術(shù)語(yǔ). 它的學(xué)名叫“事件跟蹤”,對應的英文是“事件跟蹤”,它是指捕獲,處理和發(fā)送特定用戶(hù)行為或事件的相關(guān)技術(shù)和實(shí)現過(guò)程.
  數據埋藏點(diǎn)是數據分析師,數據產(chǎn)品經(jīng)理和數據操作. 根據業(yè)務(wù)需求或產(chǎn)品需求,開(kāi)發(fā)每個(gè)用戶(hù)行為事件的對應位置并掩埋點(diǎn),并通過(guò)SDK報告掩埋點(diǎn)的數據結果,并對記錄進(jìn)行匯總. 分析數據后,它可以促進(jìn)產(chǎn)品優(yōu)化并指導操作.
  該過(guò)程隨附規范. 通過(guò)該定義,我們看到特定的用戶(hù)行為和事件是我們采集的重點(diǎn),并且我們還需要處理和發(fā)送相關(guān)的技術(shù)和實(shí)現過(guò)程;數據掩埋點(diǎn)是為產(chǎn)品服務(wù)的,它來(lái)自產(chǎn)品. 因此,它與產(chǎn)品密切相關(guān),而埋藏點(diǎn)在于具體的實(shí)戰過(guò)程,這與每個(gè)人對基礎數據的理解有關(guān).
  
  2. 為什么要埋點(diǎn)?
  掩埋點(diǎn)的目的是對產(chǎn)品進(jìn)行全方位的連續跟蹤,并通過(guò)數據分析不斷地指導和優(yōu)化產(chǎn)品. 數據掩埋點(diǎn)的質(zhì)量直接影響數據,產(chǎn)品,操作等的質(zhì)量.
 ?。?)數據驅動(dòng)的埋藏點(diǎn)深入分析了交通分布和流量水平的深度,通過(guò)統計分析對宏觀(guān)指標進(jìn)行了深入分析,發(fā)現了指標背后的問(wèn)題,并深入了解了用戶(hù)行為與增值之間的關(guān)系潛在相關(guān).
 ?。?)產(chǎn)品優(yōu)化-對于產(chǎn)品,用戶(hù)在產(chǎn)品中的工作方式,在產(chǎn)品中停留的時(shí)間以及任何異常情況都需要引起注意. 這些問(wèn)題可以通過(guò)掩埋點(diǎn)來(lái)實(shí)現.
 ?。?)精致的運營(yíng)掩埋點(diǎn)可以實(shí)現整個(gè)產(chǎn)品生命周期,流量質(zhì)量和不同來(lái)源的分布,人群的行為特征和關(guān)系以及用戶(hù)行為與提升業(yè)務(wù)價(jià)值之間的潛在關(guān)聯(lián)
  3. 如何掩埋點(diǎn)
  掩埋點(diǎn)有哪些方法?目前,大多數公司使用客戶(hù)端和服務(wù)器的組合.
  
  精度: 代碼掩埋點(diǎn)>可視化掩埋點(diǎn)>完全掩埋點(diǎn)
  三,掩埋點(diǎn)的框架和設計
  1. 掩埋點(diǎn)集合的頂層設計
  所謂的頂層設計是弄清楚如何掩埋點(diǎn),使用哪種方法,上載機制是什么,如何定義它,如何實(shí)現它,等等. 我們遵循唯一性,可伸縮性,一致性等原則. 我們必須設計一些常見(jiàn)的字段和生成機制,例如: cid,idfa,idfv等.
  用戶(hù)識別: 用戶(hù)識別機制的混亂將導致兩個(gè)結果: 一個(gè)是不正確的數據,例如UV數據不正確;另一個(gè)是不正確的數據. 另一個(gè)是渠道分析鏈接中的異常. 因此,應為: 嚴格規范ID自身的識別機制; b. 跨平臺用戶(hù)識別.
  相似的抽象: 相似的抽象包括事件抽象和屬性抽象. 事件抽象是指瀏覽事件和點(diǎn)擊事件的集合;屬性抽象意味著(zhù)將大多數可重復使用的場(chǎng)景合并以增加源差異.
  一致集合: 一致集合包括兩點(diǎn): 一是跨平臺頁(yè)面的一致命名,其二是按鈕的一致命名. 設置嵌入點(diǎn)本身的過(guò)程就是對基礎數據進(jìn)行標準化的過(guò)程,因此一致性特別重要. 只有這樣,才可以使用它.
  頻道配置: 頻道主要指促銷(xiāo)頻道,登錄頁(yè)面,Web促銷(xiāo)頁(yè)面,APP促銷(xiāo)頁(yè)面等. 此登錄頁(yè)面的配置必須具有統一的規范和標準
  2. 埋點(diǎn)采集事件和屬性設計
  在設計屬性和事件時(shí),我們需要知道哪些經(jīng)常更改,哪些不更改,哪些是業(yè)務(wù)行為以及哪些是基本屬性. 基于基本屬性事件,我們認為必須采集屬性,但是屬性中的事件屬性會(huì )根據不同業(yè)務(wù)進(jìn)行調整. 因此,我們可以將掩埋點(diǎn)集合分為協(xié)議層和業(yè)務(wù)層掩埋點(diǎn).
  業(yè)務(wù)分解: 整理并確認業(yè)務(wù)流程,操作路徑和不同的細分方案,并定義用戶(hù)行為路徑. 分析指標: 定義特定事件,需要數據的核心業(yè)務(wù)指標進(jìn)行事件設計: APP啟動(dòng),退出,頁(yè)面瀏覽,事件暴露單擊屬性設計: 用戶(hù)屬性,事件屬性,對象屬性,環(huán)境屬性
  3. 數據采集事件和屬性設計
  
  Ev事件的命名也遵循一些規則. 當同一類(lèi)型的函數出現在不同的頁(yè)面或位置時(shí),將根據函數名稱(chēng)進(jìn)行命名,并在ev參數中區分頁(yè)面和位置. 當僅單擊按鈕時(shí),它以按鈕名稱(chēng)命名.
  ev事件格式: ev分為ev標識和ev參數
  規則:
  使用“#”在ev標記和ev參數(一級連接器)之間進(jìn)行連接
  使用“ /”在ev參數和ev參數(二級連接器)之間進(jìn)行連接
  ev參數使用key = value的結構. 當一個(gè)鍵對應多個(gè)值時(shí),請使用“,”在value1和value2(三級連接器)之間進(jìn)行連接
  當埋點(diǎn)只有ev標記而沒(méi)有ev參數時(shí),則無(wú)需帶#
  備注:
  ev ID: 作為掩埋點(diǎn)的唯一ID,用于區分掩埋點(diǎn)的位置和屬性. 它是不可變的,不能修改.
  ev參數: 埋點(diǎn)需要返回的參數,ev參數的順序是可變的,可以修改)
  調整應用嵌入點(diǎn)后,ev標記保持不變,并且僅修改后續嵌入點(diǎn)參數(參數值更改或參數類(lèi)型增加)
  常規嵌入點(diǎn)文檔中收錄的圖紙的名稱(chēng)和功能:
  A. 暴露掩埋點(diǎn)摘要;
  B. 點(diǎn)擊和瀏覽隱藏點(diǎn)的摘要;
  C. 失效埋點(diǎn)匯總: 通常會(huì )記錄失效點(diǎn)的失效版本或時(shí)間;
  與D,PC和M頁(yè)面的嵌入點(diǎn)相對應的pageid;
  E. 在線(xiàn)每個(gè)版本的時(shí)間記錄;
  在埋點(diǎn)文檔中,所有列名稱(chēng)和函數都包括:
  
  4. 基于埋點(diǎn)的統計
  如何使用隱藏的統計數據查找隱藏的ev事件:
 ?。?)指定掩埋點(diǎn)的類(lèi)型(單擊/曝光/瀏覽)-過(guò)濾類(lèi)型字段
 ?。?)指定按鈕所屬的頁(yè)面(頁(yè)面或功能)-過(guò)濾功能模塊字段
 ?。?)指定掩埋點(diǎn)事件的名稱(chēng)-過(guò)濾名稱(chēng)字段
 ?。?)知道ev標識符,您可以直接使用ev進(jìn)行過(guò)濾
  如何根據ev事件查詢(xún)統計信息: 當查詢(xún)按鈕單擊統計信息時(shí),您可以直接使用ev徽標進(jìn)行查詢(xún),并且當存在區別時(shí),可以限制掩埋點(diǎn)參數的值. 由于ev參數的順序不需要是可變的,因此在查詢(xún)統計信息時(shí),不能根據參數的順序對其進(jìn)行限制.
  四個(gè)應用程序-數據流的基礎
  
  1. 指標體系
  系統化指標可以整合不同指標和不同維度進(jìn)行全面分析,從而迅速發(fā)現當前產(chǎn)品和業(yè)務(wù)流程中存在的問(wèn)題.
  
  2. 可視化
  人類(lèi)對圖像信息的解釋比文本更有效. 可視化對于數據分析極為重要. 使用數據可視化可以揭示數據中的復雜關(guān)系.
  
  3. 提供了埋點(diǎn)元信息api
  數據采集服務(wù)會(huì )將采集的掩埋點(diǎn)寫(xiě)入Kafka. 為了滿(mǎn)足每個(gè)企業(yè)的實(shí)時(shí)數據消耗需求,我們?yōu)槊總€(gè)企業(yè)提供了單獨的Kafka,流量分配模塊將定期讀取掩埋點(diǎn)管理平臺. 所提供的元信息會(huì )在Kafka中為每個(gè)業(yè)務(wù)實(shí)時(shí)分配流量.
  
  數據采集就像設計產(chǎn)品一樣,不能過(guò)多. 我們不僅要留出擴展的空間,還應該考慮數據是否完整,不完整,詳細,穩定和快速.

Android音頻和視頻開(kāi)發(fā)(四): 使用Camera API采集視頻數據

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

  本文將主要使用Camera API采集視頻數據并將其保存到文件中,使用SurfaceView和TextureView分別預覽Camera數據,并獲取NV21的數據回調.
  注意: 需要許可:
  1. 預覽相機數據
  已經(jīng)完成Android開(kāi)發(fā)的人們通常知道有兩種方法可以做到這一點(diǎn): SurfaceView和TextureView.
  以下是使用SurfaceView預覽數據的方法:
  SurfaceView surfaceView;<br />Camera camera;<br /><br />@Override<br />protected void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.activity_main);<br /><br /> surfaceView = (SurfaceView) findViewById(R.id.surface_view);<br /> surfaceView.getHolder().addCallback(this);<br /><br /> // 打開(kāi)攝像頭并將展示方向旋轉90度<br /> camera = Camera.open();<br /> camera.setDisplayOrientation(90);<br /><br />}<br /><br />//------ Surface 預覽 -------<br />@Override<br />public void surfaceCreated(SurfaceHolder surfaceHolder) {<br /> try {<br /> camera.setPreviewDisplay(surfaceHolder);<br /> camera.startPreview();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br />}<br /><br /><br />@Override<br />public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {<br /><br />}<br /><br />@Override<br />public void surfaceDestroyed(SurfaceHolder surfaceHolder) {<br /> camera.release();<br />}
  以下是使用TextureView預覽數據的方法:
   TextureView textureView;
Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textureView = (TextureView) findViewById(R.id.texture_view);
textureView.setSurfaceTextureListener(this);// 打開(kāi)攝像頭并將展示方向旋轉90度
camera = Camera.open();
camera.setDisplayOrientation(90);
}<br />  //------ Texture 預覽 -------
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
try {
camera.setPreviewTexture(surfaceTexture);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i1) {
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
camera.release();
return false;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
}
  二,獲取NV21的數據回調
  Google在A(yíng)ndroid中支持“相機預覽回調”的兩種常見(jiàn)YUV格式: 一種是NV21,另一種是YV12. 默認情況下,Android通常使用YCbCr_420_SP格式(NV21).
  我們可以配置數據回調的格式:
  Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewFormat(ImageFormat.NV21);
camera.setParameters(parameters);
  通過(guò)setPreviewCallback方法收聽(tīng)預覽的回調:
  camera.setPreviewCallback(new Camera.PreviewCallback() {<br /> @Override<br /> public void onPreviewFrame(byte[] bytes, Camera camera) {<br /><br /> }<br />});
  此處的字節數據是NV21格式的數據.
  在以下文章中,將對這些數據進(jìn)行處理以滿(mǎn)足相關(guān)的需求情況. 查看全部

  本文將主要使用Camera API采集視頻數據并將其保存到文件中,使用SurfaceView和TextureView分別預覽Camera數據,并獲取NV21的數據回調.
  注意: 需要許可:
  1. 預覽相機數據
  已經(jīng)完成Android開(kāi)發(fā)的人們通常知道有兩種方法可以做到這一點(diǎn): SurfaceView和TextureView.
  以下是使用SurfaceView預覽數據的方法:
  SurfaceView surfaceView;<br />Camera camera;<br /><br />@Override<br />protected void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.activity_main);<br /><br /> surfaceView = (SurfaceView) findViewById(R.id.surface_view);<br /> surfaceView.getHolder().addCallback(this);<br /><br /> // 打開(kāi)攝像頭并將展示方向旋轉90度<br /> camera = Camera.open();<br /> camera.setDisplayOrientation(90);<br /><br />}<br /><br />//------ Surface 預覽 -------<br />@Override<br />public void surfaceCreated(SurfaceHolder surfaceHolder) {<br /> try {<br /> camera.setPreviewDisplay(surfaceHolder);<br /> camera.startPreview();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br />}<br /><br /><br />@Override<br />public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {<br /><br />}<br /><br />@Override<br />public void surfaceDestroyed(SurfaceHolder surfaceHolder) {<br /> camera.release();<br />}
  以下是使用TextureView預覽數據的方法:
   TextureView textureView;
Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textureView = (TextureView) findViewById(R.id.texture_view);
textureView.setSurfaceTextureListener(this);// 打開(kāi)攝像頭并將展示方向旋轉90度
camera = Camera.open();
camera.setDisplayOrientation(90);
}<br />  //------ Texture 預覽 -------
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
try {
camera.setPreviewTexture(surfaceTexture);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i1) {
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
camera.release();
return false;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
}
  二,獲取NV21的數據回調
  Google在A(yíng)ndroid中支持“相機預覽回調”的兩種常見(jiàn)YUV格式: 一種是NV21,另一種是YV12. 默認情況下,Android通常使用YCbCr_420_SP格式(NV21).
  我們可以配置數據回調的格式:
  Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewFormat(ImageFormat.NV21);
camera.setParameters(parameters);
  通過(guò)setPreviewCallback方法收聽(tīng)預覽的回調:
  camera.setPreviewCallback(new Camera.PreviewCallback() {<br /> @Override<br /> public void onPreviewFrame(byte[] bytes, Camera camera) {<br /><br /> }<br />});
  此處的字節數據是NV21格式的數據.
  在以下文章中,將對這些數據進(jìn)行處理以滿(mǎn)足相關(guān)的需求情況.

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

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