
文章采集調用
事實(shí):老老實(shí)實(shí)看論文api接口,簡(jiǎn)單好用安全穩定
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2022-12-22 15:54
文章采集調用的是字符串分詞實(shí)現,和爬蟲(chóng)spider基本一致。
建議老老實(shí)實(shí)看論文的代碼,
百度統計api接口。接口文檔比較全面了,
就百度統計比較有保障,
自薦一下看山論文api接口,簡(jiǎn)單好用安全穩定,定制化產(chǎn)品化開(kāi)發(fā)接口可與數據源捆綁分析維度匹配,全網(wǎng)數據對接提供搜索一級,二級,推薦一級和推薦二級數據服務(wù),歡迎免費注冊開(kāi)發(fā)接口,
靠譜的沒(méi)有,有靠譜的產(chǎn)品嗎?還是靠你自己去找呢?我的話(huà)找的bdp個(gè)人版,有成套的數據挖掘分析和api開(kāi)發(fā)服務(wù),還有自助式數據服務(wù),
世紀互聯(lián)-專(zhuān)業(yè)的互聯(lián)網(wǎng)數據產(chǎn)品服務(wù)商
其實(shí)啊,方法還是很多的,比如淘寶的搜索數據也好excel加一些可視化的東西都可以看圖說(shuō)話(huà)。
你用的百度統計,肯定是可以淘寶統計的網(wǎng)站爬蟲(chóng),你要給出真實(shí)的流量,也可以用google的ga,excel文件的數據肯定是不行的。
pandas有個(gè)scatter.py文件
python爬蟲(chóng)抓取加上文本分析也是一大任務(wù),先上面有幾個(gè)詳細的代碼我也不知道他是怎么調用的 查看全部
事實(shí):老老實(shí)實(shí)看論文api接口,簡(jiǎn)單好用安全穩定
文章采集調用的是字符串分詞實(shí)現,和爬蟲(chóng)spider基本一致。
建議老老實(shí)實(shí)看論文的代碼,
百度統計api接口。接口文檔比較全面了,

就百度統計比較有保障,
自薦一下看山論文api接口,簡(jiǎn)單好用安全穩定,定制化產(chǎn)品化開(kāi)發(fā)接口可與數據源捆綁分析維度匹配,全網(wǎng)數據對接提供搜索一級,二級,推薦一級和推薦二級數據服務(wù),歡迎免費注冊開(kāi)發(fā)接口,
靠譜的沒(méi)有,有靠譜的產(chǎn)品嗎?還是靠你自己去找呢?我的話(huà)找的bdp個(gè)人版,有成套的數據挖掘分析和api開(kāi)發(fā)服務(wù),還有自助式數據服務(wù),
世紀互聯(lián)-專(zhuān)業(yè)的互聯(lián)網(wǎng)數據產(chǎn)品服務(wù)商

其實(shí)啊,方法還是很多的,比如淘寶的搜索數據也好excel加一些可視化的東西都可以看圖說(shuō)話(huà)。
你用的百度統計,肯定是可以淘寶統計的網(wǎng)站爬蟲(chóng),你要給出真實(shí)的流量,也可以用google的ga,excel文件的數據肯定是不行的。
pandas有個(gè)scatter.py文件
python爬蟲(chóng)抓取加上文本分析也是一大任務(wù),先上面有幾個(gè)詳細的代碼我也不知道他是怎么調用的
核心方法:帝國php調用文章列表,帝國cms列表頁(yè)調用文章關(guān)鍵詞與tag的方法
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 148 次瀏覽 ? 2022-12-22 13:10
1、打開(kāi)e/class/connect.php文件,找到如下代碼
搜索部分鏈接
添加
$listtemp=str_replace('[!--keyboard--]',$r[keyboard],$listtemp);
在列表頁(yè)面模板的列表內容模板(list.var)(*)中調用
帝王CMS列表頁(yè)調用本文關(guān)鍵詞TAGS的方法
一般我們在填寫(xiě)關(guān)鍵詞的時(shí)候,會(huì )同時(shí)把關(guān)鍵詞復制到標簽中,這樣才能對文章進(jìn)行分類(lèi),達到更好的SEO優(yōu)化效果。 有的朋友還想把關(guān)鍵詞或者標簽的鏈接放在欄目和列表頁(yè)上,以獲得更好的曝光率。 下面, cms大學(xué)小編就給大家分享一下調用方法。 希望新手朋友可以使用。
$nsmalltext=$r[smalltext];
$ntext=strip_tags($nsmalltext);//去除內容介紹中的HTML標簽
$newtext=esub($ntext,100,'...') ;//限制100個(gè)字
$keyboard=$r[鍵盤(pán)];
$r_tag=explode(",",$keyboard);
$tempid=1;//這里是搜索模板ID
對于($i=0;$i
{
如果($r_tag[$i])
{
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r_tag[$i];//鏈接
$tags.="".$r_tag[$i]." ";
}
}
$listtemp='
[! - 標題 - ]
'.$newtext.'...
標簽:'.$標簽。' 2010-12-16
';
將上述代碼復制到列表頁(yè)模板,即list.var中,并勾選使用程序代碼。
使用后效果如下:
具體可以根據自己的需要選擇。
最佳實(shí)踐:php cms引用css樣式
帝國CMS技術(shù)互助群:540946827 一群大神帶你裝強帶你飛! 還有美女陪你玩!
我們在使用PHPCMS V9默認的采集功能進(jìn)行文章采集時(shí),并不能完全過(guò)濾掉采集目標頁(yè)面內容的CSS樣式。 如果不過(guò)濾掉CSS樣式,文章發(fā)布后可能布局會(huì )亂。
下面CMS資源網(wǎng)教大家通過(guò)添加一個(gè)函數來(lái)過(guò)濾掉采集目標頁(yè)面的CSS樣式。 詳細方法如下:
Step 1. 找到并打開(kāi)/php cms /libs/functions/global.func.php文件,然后在其后面添加如下代碼:
函數 htmrp($str) { $str = preg_replace("/
第二步:修改當前模板中的文章內容頁(yè)模板show.html
界面—模板樣式—詳情列表—內容—show.html
在里面找到 {if $allow_visitor==1} {$content}
將其更改為 {htmrp($content)}
修改完成后保存!
如果您對本文有任何疑問(wèn),請提交至交流社區,熱心網(wǎng)友將為您解答! !點(diǎn)擊進(jìn)入社區
打賞,我們將為您提供更多優(yōu)質(zhì)資源!
您的所有打賞都將用于采集更多優(yōu)質(zhì)資源!
掃描二維碼打賞,說(shuō)多少就多少
打開(kāi)微信掃一掃,即可掃碼打賞 查看全部
核心方法:帝國php調用文章列表,帝國cms列表頁(yè)調用文章關(guān)鍵詞與tag的方法
1、打開(kāi)e/class/connect.php文件,找到如下代碼
搜索部分鏈接
添加
$listtemp=str_replace('[!--keyboard--]',$r[keyboard],$listtemp);
在列表頁(yè)面模板的列表內容模板(list.var)(*)中調用
帝王CMS列表頁(yè)調用本文關(guān)鍵詞TAGS的方法
一般我們在填寫(xiě)關(guān)鍵詞的時(shí)候,會(huì )同時(shí)把關(guān)鍵詞復制到標簽中,這樣才能對文章進(jìn)行分類(lèi),達到更好的SEO優(yōu)化效果。 有的朋友還想把關(guān)鍵詞或者標簽的鏈接放在欄目和列表頁(yè)上,以獲得更好的曝光率。 下面, cms大學(xué)小編就給大家分享一下調用方法。 希望新手朋友可以使用。
$nsmalltext=$r[smalltext];
$ntext=strip_tags($nsmalltext);//去除內容介紹中的HTML標簽

$newtext=esub($ntext,100,'...') ;//限制100個(gè)字
$keyboard=$r[鍵盤(pán)];
$r_tag=explode(",",$keyboard);
$tempid=1;//這里是搜索模板ID
對于($i=0;$i
{
如果($r_tag[$i])
{
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r_tag[$i];//鏈接
$tags.="".$r_tag[$i]." ";
}

}
$listtemp='
[! - 標題 - ]
'.$newtext.'...
標簽:'.$標簽。' 2010-12-16
';
將上述代碼復制到列表頁(yè)模板,即list.var中,并勾選使用程序代碼。
使用后效果如下:
具體可以根據自己的需要選擇。
最佳實(shí)踐:php cms引用css樣式
帝國CMS技術(shù)互助群:540946827 一群大神帶你裝強帶你飛! 還有美女陪你玩!
我們在使用PHPCMS V9默認的采集功能進(jìn)行文章采集時(shí),并不能完全過(guò)濾掉采集目標頁(yè)面內容的CSS樣式。 如果不過(guò)濾掉CSS樣式,文章發(fā)布后可能布局會(huì )亂。
下面CMS資源網(wǎng)教大家通過(guò)添加一個(gè)函數來(lái)過(guò)濾掉采集目標頁(yè)面的CSS樣式。 詳細方法如下:
Step 1. 找到并打開(kāi)/php cms /libs/functions/global.func.php文件,然后在其后面添加如下代碼:
函數 htmrp($str) { $str = preg_replace("/

第二步:修改當前模板中的文章內容頁(yè)模板show.html
界面—模板樣式—詳情列表—內容—show.html
在里面找到 {if $allow_visitor==1} {$content}
將其更改為 {htmrp($content)}
修改完成后保存!
如果您對本文有任何疑問(wèn),請提交至交流社區,熱心網(wǎng)友將為您解答! !點(diǎn)擊進(jìn)入社區
打賞,我們將為您提供更多優(yōu)質(zhì)資源!

您的所有打賞都將用于采集更多優(yōu)質(zhì)資源!
掃描二維碼打賞,說(shuō)多少就多少
打開(kāi)微信掃一掃,即可掃碼打賞
教程:Dedecms搜索頁(yè)面調用全站文章的方法
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 87 次瀏覽 ? 2022-12-22 12:59
《德德cms搜索頁(yè)調用全站文章》一文章已被存檔,站長(cháng)之家將不再顯示相關(guān)內容。 以下為站長(cháng)之家自動(dòng)寫(xiě)作機器人提取的文章重點(diǎn)內容。 這個(gè)人工智能還很年輕,請聯(lián)系我們幫助它成長(cháng):
在dede cms搜索頁(yè)面添加最新的文章調用代碼,發(fā)現無(wú)法實(shí)現文章列表調用。 原因是織夢(mèng)CMS的arclist標簽適用于封面模板index.htm、列表模板list_arcitle.htm和文檔模板article_article.htm,所以在搜索頁(yè)面使用最新的文章標簽是無(wú)法調用的,不僅最新文章,還有使用 Arclist 標簽的隨機文章和熱門(mén)文章...
2. 首先選擇一種列表樣式。 “呼喚欄目”不局限于全站文章的欄目,可以在下拉菜單中選擇單獨的分類(lèi); “限定通道”和“附加屬性”同上; 【排序順序】選擇發(fā)布時(shí)間即調用最新文章; 【都是中文的,沒(méi)有詳細介紹】....
……
本文由站長(cháng)之家用戶(hù)“博客欄”投稿。 本平臺僅提供信息索引服務(wù)。 由于內容發(fā)布時(shí)間超過(guò)平臺更新維護時(shí)間,為保證文章信息的及時(shí)性和內容瀏覽的準確性,平臺將不提供完整的內容展示,本頁(yè)面內容僅用于平臺搜索索引。 需要閱讀完整內容的用戶(hù),請聯(lián)系作者獲取原文。
即將跳轉到外部網(wǎng)站
未知安全,是否繼續
繼續
內容分享:哪個(gè)文章采集軟件比較好
優(yōu)采云 采集器是一款快速采集網(wǎng)頁(yè)信息的工具,常用于采集網(wǎng)站文章、網(wǎng)站信息數據等。有優(yōu)采云有免費版和收費版。
在SEO優(yōu)化過(guò)程中,收錄往往會(huì )影響網(wǎng)站的權重和關(guān)鍵詞的排名。 一般來(lái)說(shuō),網(wǎng)站的收錄率也是衡量網(wǎng)站質(zhì)量的一個(gè)關(guān)鍵因素。 那么怎樣才能保證網(wǎng)站有高收錄呢? 這里博客君根據一些注意事項給大家簡(jiǎn)單介紹一下,如下:
1.服務(wù)器選擇
網(wǎng)站服務(wù)器影響SEO優(yōu)化效果的問(wèn)題已經(jīng)說(shuō)了很多遍了,但即便如此,很多人還是沒(méi)有引起足夠的重視。 穩定的服務(wù)器不僅可以提升用戶(hù)體驗,還可以幫助搜索引擎收錄,所以我們在選擇服務(wù)器的時(shí)候,從實(shí)用的角度出發(fā),根據實(shí)際需要來(lái)選擇空間的大??; 從安全的角度來(lái)說(shuō),我們要選擇正規的服務(wù)器,穩定性和速度有保障,同時(shí)可以防止網(wǎng)站被黑。
2、靈活優(yōu)化
當搜索引擎發(fā)現我們的網(wǎng)頁(yè)質(zhì)量低下時(shí),采取的措施往往是提高收錄要求,減少對我們網(wǎng)站的收錄。 如果這種情況長(cháng)期持續下去,這可以說(shuō)是搜索引擎對我們的警示,我們一定要及時(shí)進(jìn)行數據分析,無(wú)論是加強關(guān)鍵詞密度還是使用文章采集器采集高優(yōu)質(zhì)文章排序等,根據實(shí)際情況優(yōu)化或調整我們現有的方法。
有沒(méi)有好的免費文章采集工具,我不需要發(fā)布,我采集文章然后修改...
3、不要輕易更改版本
網(wǎng)站運營(yíng)一段時(shí)間后中途改版,多數情況下會(huì )導致網(wǎng)站收錄量大大減少,也可能出現死鏈接,為保證網(wǎng)站收錄多數情況下不建議進(jìn)行改版。 有時(shí)網(wǎng)站修改是最后的手段。 既然下定決心要進(jìn)行改版,就要做好最好的準備,做最壞的打算。 做好404頁(yè)面,把我們的損失降到最低。
4.優(yōu)質(zhì)內容
想要更高的網(wǎng)站收錄,高質(zhì)量的內容(原創(chuàng )/偽原創(chuàng ))必不可少。 擁有一個(gè)內容優(yōu)質(zhì)的網(wǎng)站是我們網(wǎng)站收錄的根本。 如果我們的網(wǎng)站有很多優(yōu)質(zhì)的內容,那么百度蜘蛛也會(huì )樂(lè )在其中。 它關(guān)心我們的網(wǎng)站每天都會(huì )抓取新鮮文章,我們的網(wǎng)站收錄也會(huì )相應增加。 所以,收錄的提升在于網(wǎng)站內容的不斷更新,那么如何才能保持這么高的頻率呢? 更新它。
使用文章采集器無(wú)需專(zhuān)業(yè)技能,簡(jiǎn)單幾步即可輕松完成采集、偽原創(chuàng )、翻譯、發(fā)布、主動(dòng)推送。
用戶(hù)只需在文章采集器中點(diǎn)擊規則即可完成設置。 完成后,系統根據用戶(hù)設置的關(guān)鍵詞、采集時(shí)間、是否偽原創(chuàng )、是否翻譯、發(fā)布時(shí)間等匹配內容和圖片,自動(dòng)進(jìn)行文章聚合。
文章采集器SEO功能全面,支持市面上大部分CMS,支持在標題和內容中插入關(guān)鍵詞,替換圖片本地化,支持實(shí)時(shí)監控網(wǎng)站進(jìn)度,查看網(wǎng)站收錄狀態(tài),網(wǎng)站權重狀態(tài)。
5.優(yōu)質(zhì)友情鏈接
友情鏈接的建立也很重要。 如果我們的友情鏈接權重比較高,本身的相關(guān)性也比較高,那么對于我們的網(wǎng)站被收錄也是很有幫助的,但是為了讓排名更好,我們必須要對友情鏈接進(jìn)行“監控”才能防止不良情況影響網(wǎng)站。
以上幾點(diǎn)是博主認為在增加收錄時(shí)不能忽視的。 無(wú)論是原創(chuàng )還是利用文章采集器采集相關(guān)文章進(jìn)行參考,都是為了提高網(wǎng)站的質(zhì)量,讓我們的網(wǎng)站排名更好,這對于我們網(wǎng)站來(lái)說(shuō),后期的收獲會(huì )更多。
文章編輯除了采集文章,還有偽原創(chuàng )文章,而且都是批量的。 優(yōu)采云的智能文章采集系統的這些功能不會(huì )顯得繁瑣。 可以提高網(wǎng)絡(luò )編輯的工作效率。
目前采集器的流程是采集、優(yōu)化、發(fā)布。 查看全部
教程:Dedecms搜索頁(yè)面調用全站文章的方法
《德德cms搜索頁(yè)調用全站文章》一文章已被存檔,站長(cháng)之家將不再顯示相關(guān)內容。 以下為站長(cháng)之家自動(dòng)寫(xiě)作機器人提取的文章重點(diǎn)內容。 這個(gè)人工智能還很年輕,請聯(lián)系我們幫助它成長(cháng):
在dede cms搜索頁(yè)面添加最新的文章調用代碼,發(fā)現無(wú)法實(shí)現文章列表調用。 原因是織夢(mèng)CMS的arclist標簽適用于封面模板index.htm、列表模板list_arcitle.htm和文檔模板article_article.htm,所以在搜索頁(yè)面使用最新的文章標簽是無(wú)法調用的,不僅最新文章,還有使用 Arclist 標簽的隨機文章和熱門(mén)文章...

2. 首先選擇一種列表樣式。 “呼喚欄目”不局限于全站文章的欄目,可以在下拉菜單中選擇單獨的分類(lèi); “限定通道”和“附加屬性”同上; 【排序順序】選擇發(fā)布時(shí)間即調用最新文章; 【都是中文的,沒(méi)有詳細介紹】....
……
本文由站長(cháng)之家用戶(hù)“博客欄”投稿。 本平臺僅提供信息索引服務(wù)。 由于內容發(fā)布時(shí)間超過(guò)平臺更新維護時(shí)間,為保證文章信息的及時(shí)性和內容瀏覽的準確性,平臺將不提供完整的內容展示,本頁(yè)面內容僅用于平臺搜索索引。 需要閱讀完整內容的用戶(hù),請聯(lián)系作者獲取原文。

即將跳轉到外部網(wǎng)站
未知安全,是否繼續
繼續
內容分享:哪個(gè)文章采集軟件比較好
優(yōu)采云 采集器是一款快速采集網(wǎng)頁(yè)信息的工具,常用于采集網(wǎng)站文章、網(wǎng)站信息數據等。有優(yōu)采云有免費版和收費版。
在SEO優(yōu)化過(guò)程中,收錄往往會(huì )影響網(wǎng)站的權重和關(guān)鍵詞的排名。 一般來(lái)說(shuō),網(wǎng)站的收錄率也是衡量網(wǎng)站質(zhì)量的一個(gè)關(guān)鍵因素。 那么怎樣才能保證網(wǎng)站有高收錄呢? 這里博客君根據一些注意事項給大家簡(jiǎn)單介紹一下,如下:
1.服務(wù)器選擇
網(wǎng)站服務(wù)器影響SEO優(yōu)化效果的問(wèn)題已經(jīng)說(shuō)了很多遍了,但即便如此,很多人還是沒(méi)有引起足夠的重視。 穩定的服務(wù)器不僅可以提升用戶(hù)體驗,還可以幫助搜索引擎收錄,所以我們在選擇服務(wù)器的時(shí)候,從實(shí)用的角度出發(fā),根據實(shí)際需要來(lái)選擇空間的大??; 從安全的角度來(lái)說(shuō),我們要選擇正規的服務(wù)器,穩定性和速度有保障,同時(shí)可以防止網(wǎng)站被黑。
2、靈活優(yōu)化
當搜索引擎發(fā)現我們的網(wǎng)頁(yè)質(zhì)量低下時(shí),采取的措施往往是提高收錄要求,減少對我們網(wǎng)站的收錄。 如果這種情況長(cháng)期持續下去,這可以說(shuō)是搜索引擎對我們的警示,我們一定要及時(shí)進(jìn)行數據分析,無(wú)論是加強關(guān)鍵詞密度還是使用文章采集器采集高優(yōu)質(zhì)文章排序等,根據實(shí)際情況優(yōu)化或調整我們現有的方法。
有沒(méi)有好的免費文章采集工具,我不需要發(fā)布,我采集文章然后修改...

3、不要輕易更改版本
網(wǎng)站運營(yíng)一段時(shí)間后中途改版,多數情況下會(huì )導致網(wǎng)站收錄量大大減少,也可能出現死鏈接,為保證網(wǎng)站收錄多數情況下不建議進(jìn)行改版。 有時(shí)網(wǎng)站修改是最后的手段。 既然下定決心要進(jìn)行改版,就要做好最好的準備,做最壞的打算。 做好404頁(yè)面,把我們的損失降到最低。
4.優(yōu)質(zhì)內容
想要更高的網(wǎng)站收錄,高質(zhì)量的內容(原創(chuàng )/偽原創(chuàng ))必不可少。 擁有一個(gè)內容優(yōu)質(zhì)的網(wǎng)站是我們網(wǎng)站收錄的根本。 如果我們的網(wǎng)站有很多優(yōu)質(zhì)的內容,那么百度蜘蛛也會(huì )樂(lè )在其中。 它關(guān)心我們的網(wǎng)站每天都會(huì )抓取新鮮文章,我們的網(wǎng)站收錄也會(huì )相應增加。 所以,收錄的提升在于網(wǎng)站內容的不斷更新,那么如何才能保持這么高的頻率呢? 更新它。
使用文章采集器無(wú)需專(zhuān)業(yè)技能,簡(jiǎn)單幾步即可輕松完成采集、偽原創(chuàng )、翻譯、發(fā)布、主動(dòng)推送。
用戶(hù)只需在文章采集器中點(diǎn)擊規則即可完成設置。 完成后,系統根據用戶(hù)設置的關(guān)鍵詞、采集時(shí)間、是否偽原創(chuàng )、是否翻譯、發(fā)布時(shí)間等匹配內容和圖片,自動(dòng)進(jìn)行文章聚合。

文章采集器SEO功能全面,支持市面上大部分CMS,支持在標題和內容中插入關(guān)鍵詞,替換圖片本地化,支持實(shí)時(shí)監控網(wǎng)站進(jìn)度,查看網(wǎng)站收錄狀態(tài),網(wǎng)站權重狀態(tài)。
5.優(yōu)質(zhì)友情鏈接
友情鏈接的建立也很重要。 如果我們的友情鏈接權重比較高,本身的相關(guān)性也比較高,那么對于我們的網(wǎng)站被收錄也是很有幫助的,但是為了讓排名更好,我們必須要對友情鏈接進(jìn)行“監控”才能防止不良情況影響網(wǎng)站。
以上幾點(diǎn)是博主認為在增加收錄時(shí)不能忽視的。 無(wú)論是原創(chuàng )還是利用文章采集器采集相關(guān)文章進(jìn)行參考,都是為了提高網(wǎng)站的質(zhì)量,讓我們的網(wǎng)站排名更好,這對于我們網(wǎng)站來(lái)說(shuō),后期的收獲會(huì )更多。
文章編輯除了采集文章,還有偽原創(chuàng )文章,而且都是批量的。 優(yōu)采云的智能文章采集系統的這些功能不會(huì )顯得繁瑣。 可以提高網(wǎng)絡(luò )編輯的工作效率。
目前采集器的流程是采集、優(yōu)化、發(fā)布。
解決方案:Labwindows\CVI通過(guò)調用DLL文件與非NI采集卡通信
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 112 次瀏覽 ? 2022-12-22 07:52
菜鳥(niǎo)學(xué)習筆記:Java基礎1(走進(jìn)Java,數據類(lèi)型與轉換)
菜鳥(niǎo)學(xué)習筆記:Java基礎1(基礎語(yǔ)法、面向對象) 寫(xiě)在前面 關(guān)于學(xué)習資源 關(guān)于學(xué)習方法 1.Java的發(fā)展歷史 功能快捷鍵 標題的合理創(chuàng )建有助于目錄的生成 如何改變樣式文本插入 鏈接和圖片 如何插入一段漂亮的代碼 生成適合你的列表 創(chuàng )建表格 設置內容居中、左、右 SmartyPants 創(chuàng )建自定義列表 如何創(chuàng )建腳注 注釋也是必不可少的 KaTeX 數學(xué)公式New Gan 特別圖功能,豐富你的文章UML圖表 FLowchart 流程圖 導出導入 導出導入 第一次發(fā)博我寫(xiě)在前面了,還是有點(diǎn)緊張,哈哈,先自我介紹一下,我只是畢業(yè)于小白
Spring Cloud開(kāi)放Feign系列【4】集成OkHttp與連接池配置詳解
文章目錄 Feign 如何發(fā)送請求 Client 接口 默認類(lèi) Proxied 類(lèi) Feign 支持其他 HTTP 客戶(hù)端框架 支持項 HTTP 連接池 Feign 集成 Ok Http1. 添加 okhttp 依賴(lài)2。 添加配置3。 連接池配置 4. 簡(jiǎn)單測試Feign如何發(fā)送Request 在前面的文檔中可以了解到Feign集成了其他HTTP客戶(hù)端框架來(lái)發(fā)送請求。 實(shí)際的發(fā)送請求是由Feign中的Client接口實(shí)現類(lèi)處理的。 默認是 Defalut 類(lèi),它使用 HttpURLConnection。
2.java版商城商戶(hù)平臺搭建 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商戶(hù)入駐商城直播帶貨商城電商_企業(yè)軟件定制博客-程序員寶貝
一個(gè)好的SpringCloud+SpringBoot b2b2c電商平臺涉及到哪些技術(shù)和運營(yíng)方案? 以下是我根據公司產(chǎn)品的總結,希望對大家有所幫助! 1、涉及平臺平臺管理、商戶(hù)端(PC端、移動(dòng)端)、買(mǎi)家平臺(H5/公眾號、小程序、APP端(IOS/Android))、微服務(wù)平臺(業(yè)務(wù)服務(wù)) 2、核心架構Spring Cloud、Spring Boot ,Mybatis,Redis3.前端框架VUE,Uniapp,Bootstrap/H5/CSS3,IOS,Android,小程序
VUE中一個(gè)頁(yè)面調用另一個(gè)頁(yè)面的方法并修改data數據(還記得你曾經(jīng)入過(guò)的坑嗎)_denglei12315的博客-程序員寶寶
頁(yè)面 <template> <div> <el-form ref="form" :model="params" label-width="80px"> <el-row> <el-...
5-38 序列求和-增強版(20分)
給定一個(gè)數AA(1\le A\le 91≤A≤9)和一個(gè)非負整數NN(0\le N\le 1000000≤N≤100000),求序列S = A + AA的和+ AAA + \ cdots + AA\cdots AS=A+AA+AAA+?+AA?A (NN AAs)。 例如當A=1A=1,N=3N=3,S=1+11+111=123S=1+11+111=123.輸入框
【長(cháng)nèng-Logstash】入門(mén)(二)——使用Logstash解析Apache Web日志(使用Filebeat采集數據)
文章目錄 1.簡(jiǎn)介 2.實(shí)現 2.1 下載安裝 2.2 配置輸入filebeat2.3 配置logstash2.3 使用Grok過(guò)濾插件解析web日志編輯 2.4 使用Geoip過(guò)濾插件增強數據編輯 2.5 輸出到es源碼地址 項目推薦 本系列博客是Logstash的學(xué)習應用,部分示例來(lái)自官方文檔。 參考:官方文檔 使用Logstash解析日志 1.介紹示例來(lái)自官網(wǎng)。 在本節中,您將創(chuàng )建一個(gè)...
云優(yōu)采集接口 解決方案:實(shí)踐GoF的設計模式:代理模式
簡(jiǎn)介:代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
本文分享自華為云社區《【Go實(shí)現】練GoF的23種設計模式:代理模式》,作者:袁君子。
介紹
GoF 定義 Proxy Pattern 如下:
為另一個(gè)對象提供代理或占位符以控制對它的訪(fǎng)問(wèn)。
也就是說(shuō),代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
是一種使用率非常高的設計模式,在現實(shí)生活中也很常見(jiàn)。 例如,演唱會(huì )票黃牛。 假設你需要看一場(chǎng)演唱會(huì ),但是官網(wǎng)上的票已經(jīng)賣(mài)完了,你當天就去現場(chǎng),通過(guò)黃牛高價(jià)買(mǎi)了一張。 在這個(gè)例子中,黃牛相當于演唱會(huì )門(mén)票的代理人。 當無(wú)法通過(guò)官方渠道購買(mǎi)到門(mén)票時(shí),您已經(jīng)通過(guò)代理完成了目標。
從演唱會(huì )門(mén)票的例子我們也可以看出,使用代理模式的關(guān)鍵是在客戶(hù)端不方便直接訪(fǎng)問(wèn)某個(gè)對象的時(shí)候,提供一個(gè)代理對象來(lái)控制對象的訪(fǎng)問(wèn)。 客戶(hù)端實(shí)際訪(fǎng)問(wèn)的是代理對象,代理對象會(huì )將客戶(hù)端的請求傳遞給本體對象進(jìn)行處理。
UML結構
場(chǎng)景語(yǔ)境
在一個(gè)簡(jiǎn)單的分布式應用系統(示例代碼項目)中,db模塊用于存儲服務(wù)注冊和監控信息,是一個(gè)key-value數據庫。 為了提高訪(fǎng)問(wèn)數據庫的性能,我們決定為其添加一層新的緩存:
另外,我們希望客戶(hù)端在使用數據庫時(shí)不會(huì )察覺(jué)到緩存的存在。 代理模式可以做到這一點(diǎn)。
代碼
// demo/db/cache.go
package db
// 關(guān)鍵點(diǎn)1: 定義代理對象,實(shí)現被代理對象的接口
type CacheProxy struct {
// 關(guān)鍵點(diǎn)2: 組合被代理對象,這里應該是抽象接口,提升可擴展性
db Db
cache sync.Map // key為tableName,value為sync.Map[key: primaryId, value: interface{}]
hit int
miss int
}
// 關(guān)鍵點(diǎn)3: 在具體接口實(shí)現上,嵌入代理本身的邏輯
func (c *CacheProxy) Query(tableName string, primaryKey interface{}, result interface{}) error {
cache, ok := c.cache.Load(tableName)
if ok {
if record, ok := cache.(*sync.Map).Load(primaryKey); ok {
c.hit++
result = record
return nil
}
}
c.miss++
if err := c.db.Query(tableName, primaryKey, result); err != nil {
return err
}
cache.(*sync.Map).Store(primaryKey, result)
return nil
}
func (c *CacheProxy) Insert(tableName string, primaryKey interface{}, record interface{}) error {
if err := c.db.Insert(tableName, primaryKey, record); err != nil {
return err
}
cache, ok := c.cache.Load(tableName)
if !ok {
return nil
}
cache.(*sync.Map).Store(primaryKey, record)
return nil
<p>
}
...
// 關(guān)鍵點(diǎn)4: 代理也可以有自己特有方法,提供一些輔助的功能
func (c *CacheProxy) Hit() int {
return c.hit
}
func (c *CacheProxy) Miss() int {
return c.miss
}
...</p>
客戶(hù)端像這樣使用它:
// 客戶(hù)端只看到抽象的Db接口
func client(db Db) {
table := NewTable("region").
WithType(reflect.TypeOf(new(testRegion))).
WithTableIteratorFactory(NewRandomTableIteratorFactory())
db.CreateTable(table)
table.Insert(1, &testRegion{Id: 1, Name: "region"})
result := new(testRegion)
db.Query("region", 1, result)
}
func main() {
// 關(guān)鍵點(diǎn)5: 在初始化階段,完成緩存的實(shí)例化,并依賴(lài)注入到客戶(hù)端
cache := NewCacheProxy(&memoryDb{tables: sync.Map{}})
client(cache)
}
本例中,Subject是Db接口,Proxy是CacheProxy對象,SubjectImpl是memoryDb對象:
總結一下實(shí)現代理模式的幾個(gè)關(guān)鍵點(diǎn):
定義代理對象,實(shí)現代理對象的接口。 在這個(gè)例子中,前者是CacheProxy對象,后者是Db接口。 代理對象組合代理對象。 這里應該結合抽象接口,使代理更具可擴展性。 在這個(gè)例子中,CacheProxy 對象結合了 Db 接口。 代理對象在具體接口的實(shí)現中嵌入了代理本身的邏輯。 本例中CacheProxy在Query、Insert等方法中加入了cache sync.Map的讀寫(xiě)邏輯。 代理對象也可以有自己獨特的方法來(lái)提供一些輔助功能。 本例中CacheProxy增加了Hit、Miss等方法來(lái)統計緩存的命中率。 最后,在初始化階段,代理被實(shí)例化并注入到客戶(hù)端中。 這就要求客戶(hù)端依賴(lài)抽象接口而不是具體實(shí)現,否則代理是不透明的。在Go標準庫中擴展反向代理
代理模式最典型的應用場(chǎng)景就是遠程代理,其中反向代理是最常用的一種。
以Web應用為例,反向代理位于Web服務(wù)器的前端,將客戶(hù)端(如Web瀏覽器)的請求轉發(fā)給后端Web服務(wù)器。 反向代理通常用于幫助提高安全性、性能和可靠性,例如負載平衡、SSL 安全連接。
Go標準庫的net包也提供了一個(gè)反向代理ReverseProxy,位于net/http/httputil/reverseproxy.go下,它實(shí)現了http.Handler接口。 http.Handler提供了處理Http請求的能力,相當于一個(gè)Http服務(wù)器。 那么,對應UML結構圖,http.Handler是Subject,ReverseProxy是Proxy:
ReverseProxy的部分核心代碼如下:
// net/http/httputil/reverseproxy.go
package httputil
type ReverseProxy struct {
// 修改前端請求,然后通過(guò)Transport將修改后的請求轉發(fā)給后端
Director func(*http.Request)
// 可理解為Subject,通過(guò)Transport來(lái)調用被代理對象的ServeHTTP方法處理請求
Transport http.RoundTripper
// 修改后端響應,并將修改后的響應返回給前端
ModifyResponse func(*http.Response) error
// 錯誤處理
ErrorHandler func(http.ResponseWriter, *http.Request, error)
...
}
func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
// 初始化transport
transport := p.Transport
<p>
if transport == nil {
transport = http.DefaultTransport
}
...
// 修改前端請求
p.Director(outreq)
...
// 將請求轉發(fā)給后端
res, err := transport.RoundTrip(outreq)
...
// 修改后端響應
if !p.modifyResponse(rw, res, outreq) {
return
}
...
// 給前端返回響應
err = p.copyResponse(rw, res.Body, p.flushInterval(res))
...
}</p>
ReverseProxy是代理模式的典型實(shí)現,遠程代理不能直接引用后端的對象引用,所以這里通過(guò)引入Transport來(lái)遠程訪(fǎng)問(wèn)后端服務(wù),Transport可以理解為一個(gè)Subject。
您可以像這樣使用 ReverseProxy:
func proxy(c *gin.Context) {
remote, err := url.Parse("https://yrunz.com")
if err != nil {
panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(remote)
proxy.Director = func(req *http.Request) {
req.Header = c.Request.Header
req.Host = remote.Host
req.URL.Scheme = remote.Scheme
req.URL.Host = remote.Host
req.URL.Path = c.Param("proxyPath")
}
proxy.ServeHTTP(c.Writer, c.Request)
}
func main() {
r := gin.Default()
r.Any("/*proxyPath", proxy)
r.Run(":8080")
}
典型應用場(chǎng)景優(yōu)缺點(diǎn)優(yōu)缺點(diǎn)與其他模式的關(guān)聯(lián)
從結構上看,裝飾模式和代理模式相似度很高,但兩者的側重點(diǎn)不同。 前者強調為本體對象增加新的功能,后者強調對本體對象的訪(fǎng)問(wèn)控制。
帶圖片的文章
文章的繪制方法可以在Keynote手繪風(fēng)格繪圖中找到。
參考
[1]【Go實(shí)現】實(shí)踐GoF的23種設計模式:SOLID原則,元君子
[2]【Go實(shí)現】實(shí)踐GoF的23種設計模式:裝飾模式,元君子
[3] 設計模式,第 4 章結構模式,GoF
[4]代理模式,
[5] 什么是反向代理? , 云耀斑
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云的新鮮技術(shù)~ 查看全部
解決方案:Labwindows\CVI通過(guò)調用DLL文件與非NI采集卡通信
菜鳥(niǎo)學(xué)習筆記:Java基礎1(走進(jìn)Java,數據類(lèi)型與轉換)
菜鳥(niǎo)學(xué)習筆記:Java基礎1(基礎語(yǔ)法、面向對象) 寫(xiě)在前面 關(guān)于學(xué)習資源 關(guān)于學(xué)習方法 1.Java的發(fā)展歷史 功能快捷鍵 標題的合理創(chuàng )建有助于目錄的生成 如何改變樣式文本插入 鏈接和圖片 如何插入一段漂亮的代碼 生成適合你的列表 創(chuàng )建表格 設置內容居中、左、右 SmartyPants 創(chuàng )建自定義列表 如何創(chuàng )建腳注 注釋也是必不可少的 KaTeX 數學(xué)公式New Gan 特別圖功能,豐富你的文章UML圖表 FLowchart 流程圖 導出導入 導出導入 第一次發(fā)博我寫(xiě)在前面了,還是有點(diǎn)緊張,哈哈,先自我介紹一下,我只是畢業(yè)于小白
Spring Cloud開(kāi)放Feign系列【4】集成OkHttp與連接池配置詳解
文章目錄 Feign 如何發(fā)送請求 Client 接口 默認類(lèi) Proxied 類(lèi) Feign 支持其他 HTTP 客戶(hù)端框架 支持項 HTTP 連接池 Feign 集成 Ok Http1. 添加 okhttp 依賴(lài)2。 添加配置3。 連接池配置 4. 簡(jiǎn)單測試Feign如何發(fā)送Request 在前面的文檔中可以了解到Feign集成了其他HTTP客戶(hù)端框架來(lái)發(fā)送請求。 實(shí)際的發(fā)送請求是由Feign中的Client接口實(shí)現類(lèi)處理的。 默認是 Defalut 類(lèi),它使用 HttpURLConnection。

2.java版商城商戶(hù)平臺搭建 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商戶(hù)入駐商城直播帶貨商城電商_企業(yè)軟件定制博客-程序員寶貝
一個(gè)好的SpringCloud+SpringBoot b2b2c電商平臺涉及到哪些技術(shù)和運營(yíng)方案? 以下是我根據公司產(chǎn)品的總結,希望對大家有所幫助! 1、涉及平臺平臺管理、商戶(hù)端(PC端、移動(dòng)端)、買(mǎi)家平臺(H5/公眾號、小程序、APP端(IOS/Android))、微服務(wù)平臺(業(yè)務(wù)服務(wù)) 2、核心架構Spring Cloud、Spring Boot ,Mybatis,Redis3.前端框架VUE,Uniapp,Bootstrap/H5/CSS3,IOS,Android,小程序
VUE中一個(gè)頁(yè)面調用另一個(gè)頁(yè)面的方法并修改data數據(還記得你曾經(jīng)入過(guò)的坑嗎)_denglei12315的博客-程序員寶寶
頁(yè)面 <template> <div> <el-form ref="form" :model="params" label-width="80px"> <el-row> <el-...

5-38 序列求和-增強版(20分)
給定一個(gè)數AA(1\le A\le 91≤A≤9)和一個(gè)非負整數NN(0\le N\le 1000000≤N≤100000),求序列S = A + AA的和+ AAA + \ cdots + AA\cdots AS=A+AA+AAA+?+AA?A (NN AAs)。 例如當A=1A=1,N=3N=3,S=1+11+111=123S=1+11+111=123.輸入框
【長(cháng)nèng-Logstash】入門(mén)(二)——使用Logstash解析Apache Web日志(使用Filebeat采集數據)
文章目錄 1.簡(jiǎn)介 2.實(shí)現 2.1 下載安裝 2.2 配置輸入filebeat2.3 配置logstash2.3 使用Grok過(guò)濾插件解析web日志編輯 2.4 使用Geoip過(guò)濾插件增強數據編輯 2.5 輸出到es源碼地址 項目推薦 本系列博客是Logstash的學(xué)習應用,部分示例來(lái)自官方文檔。 參考:官方文檔 使用Logstash解析日志 1.介紹示例來(lái)自官網(wǎng)。 在本節中,您將創(chuàng )建一個(gè)...
云優(yōu)采集接口 解決方案:實(shí)踐GoF的設計模式:代理模式
簡(jiǎn)介:代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
本文分享自華為云社區《【Go實(shí)現】練GoF的23種設計模式:代理模式》,作者:袁君子。
介紹
GoF 定義 Proxy Pattern 如下:
為另一個(gè)對象提供代理或占位符以控制對它的訪(fǎng)問(wèn)。
也就是說(shuō),代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
是一種使用率非常高的設計模式,在現實(shí)生活中也很常見(jiàn)。 例如,演唱會(huì )票黃牛。 假設你需要看一場(chǎng)演唱會(huì ),但是官網(wǎng)上的票已經(jīng)賣(mài)完了,你當天就去現場(chǎng),通過(guò)黃牛高價(jià)買(mǎi)了一張。 在這個(gè)例子中,黃牛相當于演唱會(huì )門(mén)票的代理人。 當無(wú)法通過(guò)官方渠道購買(mǎi)到門(mén)票時(shí),您已經(jīng)通過(guò)代理完成了目標。
從演唱會(huì )門(mén)票的例子我們也可以看出,使用代理模式的關(guān)鍵是在客戶(hù)端不方便直接訪(fǎng)問(wèn)某個(gè)對象的時(shí)候,提供一個(gè)代理對象來(lái)控制對象的訪(fǎng)問(wèn)。 客戶(hù)端實(shí)際訪(fǎng)問(wèn)的是代理對象,代理對象會(huì )將客戶(hù)端的請求傳遞給本體對象進(jìn)行處理。
UML結構
場(chǎng)景語(yǔ)境
在一個(gè)簡(jiǎn)單的分布式應用系統(示例代碼項目)中,db模塊用于存儲服務(wù)注冊和監控信息,是一個(gè)key-value數據庫。 為了提高訪(fǎng)問(wèn)數據庫的性能,我們決定為其添加一層新的緩存:
另外,我們希望客戶(hù)端在使用數據庫時(shí)不會(huì )察覺(jué)到緩存的存在。 代理模式可以做到這一點(diǎn)。
代碼
// demo/db/cache.go
package db
// 關(guān)鍵點(diǎn)1: 定義代理對象,實(shí)現被代理對象的接口
type CacheProxy struct {
// 關(guān)鍵點(diǎn)2: 組合被代理對象,這里應該是抽象接口,提升可擴展性
db Db
cache sync.Map // key為tableName,value為sync.Map[key: primaryId, value: interface{}]
hit int
miss int
}
// 關(guān)鍵點(diǎn)3: 在具體接口實(shí)現上,嵌入代理本身的邏輯
func (c *CacheProxy) Query(tableName string, primaryKey interface{}, result interface{}) error {
cache, ok := c.cache.Load(tableName)
if ok {
if record, ok := cache.(*sync.Map).Load(primaryKey); ok {
c.hit++
result = record
return nil
}
}
c.miss++
if err := c.db.Query(tableName, primaryKey, result); err != nil {
return err
}
cache.(*sync.Map).Store(primaryKey, result)
return nil
}
func (c *CacheProxy) Insert(tableName string, primaryKey interface{}, record interface{}) error {
if err := c.db.Insert(tableName, primaryKey, record); err != nil {
return err
}
cache, ok := c.cache.Load(tableName)
if !ok {
return nil
}
cache.(*sync.Map).Store(primaryKey, record)
return nil
<p>

}
...
// 關(guān)鍵點(diǎn)4: 代理也可以有自己特有方法,提供一些輔助的功能
func (c *CacheProxy) Hit() int {
return c.hit
}
func (c *CacheProxy) Miss() int {
return c.miss
}
...</p>
客戶(hù)端像這樣使用它:
// 客戶(hù)端只看到抽象的Db接口
func client(db Db) {
table := NewTable("region").
WithType(reflect.TypeOf(new(testRegion))).
WithTableIteratorFactory(NewRandomTableIteratorFactory())
db.CreateTable(table)
table.Insert(1, &testRegion{Id: 1, Name: "region"})
result := new(testRegion)
db.Query("region", 1, result)
}
func main() {
// 關(guān)鍵點(diǎn)5: 在初始化階段,完成緩存的實(shí)例化,并依賴(lài)注入到客戶(hù)端
cache := NewCacheProxy(&memoryDb{tables: sync.Map{}})
client(cache)
}
本例中,Subject是Db接口,Proxy是CacheProxy對象,SubjectImpl是memoryDb對象:
總結一下實(shí)現代理模式的幾個(gè)關(guān)鍵點(diǎn):
定義代理對象,實(shí)現代理對象的接口。 在這個(gè)例子中,前者是CacheProxy對象,后者是Db接口。 代理對象組合代理對象。 這里應該結合抽象接口,使代理更具可擴展性。 在這個(gè)例子中,CacheProxy 對象結合了 Db 接口。 代理對象在具體接口的實(shí)現中嵌入了代理本身的邏輯。 本例中CacheProxy在Query、Insert等方法中加入了cache sync.Map的讀寫(xiě)邏輯。 代理對象也可以有自己獨特的方法來(lái)提供一些輔助功能。 本例中CacheProxy增加了Hit、Miss等方法來(lái)統計緩存的命中率。 最后,在初始化階段,代理被實(shí)例化并注入到客戶(hù)端中。 這就要求客戶(hù)端依賴(lài)抽象接口而不是具體實(shí)現,否則代理是不透明的。在Go標準庫中擴展反向代理
代理模式最典型的應用場(chǎng)景就是遠程代理,其中反向代理是最常用的一種。
以Web應用為例,反向代理位于Web服務(wù)器的前端,將客戶(hù)端(如Web瀏覽器)的請求轉發(fā)給后端Web服務(wù)器。 反向代理通常用于幫助提高安全性、性能和可靠性,例如負載平衡、SSL 安全連接。
Go標準庫的net包也提供了一個(gè)反向代理ReverseProxy,位于net/http/httputil/reverseproxy.go下,它實(shí)現了http.Handler接口。 http.Handler提供了處理Http請求的能力,相當于一個(gè)Http服務(wù)器。 那么,對應UML結構圖,http.Handler是Subject,ReverseProxy是Proxy:
ReverseProxy的部分核心代碼如下:
// net/http/httputil/reverseproxy.go
package httputil
type ReverseProxy struct {
// 修改前端請求,然后通過(guò)Transport將修改后的請求轉發(fā)給后端
Director func(*http.Request)
// 可理解為Subject,通過(guò)Transport來(lái)調用被代理對象的ServeHTTP方法處理請求
Transport http.RoundTripper
// 修改后端響應,并將修改后的響應返回給前端
ModifyResponse func(*http.Response) error
// 錯誤處理
ErrorHandler func(http.ResponseWriter, *http.Request, error)
...
}
func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
// 初始化transport
transport := p.Transport
<p>

if transport == nil {
transport = http.DefaultTransport
}
...
// 修改前端請求
p.Director(outreq)
...
// 將請求轉發(fā)給后端
res, err := transport.RoundTrip(outreq)
...
// 修改后端響應
if !p.modifyResponse(rw, res, outreq) {
return
}
...
// 給前端返回響應
err = p.copyResponse(rw, res.Body, p.flushInterval(res))
...
}</p>
ReverseProxy是代理模式的典型實(shí)現,遠程代理不能直接引用后端的對象引用,所以這里通過(guò)引入Transport來(lái)遠程訪(fǎng)問(wèn)后端服務(wù),Transport可以理解為一個(gè)Subject。
您可以像這樣使用 ReverseProxy:
func proxy(c *gin.Context) {
remote, err := url.Parse("https://yrunz.com")
if err != nil {
panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(remote)
proxy.Director = func(req *http.Request) {
req.Header = c.Request.Header
req.Host = remote.Host
req.URL.Scheme = remote.Scheme
req.URL.Host = remote.Host
req.URL.Path = c.Param("proxyPath")
}
proxy.ServeHTTP(c.Writer, c.Request)
}
func main() {
r := gin.Default()
r.Any("/*proxyPath", proxy)
r.Run(":8080")
}
典型應用場(chǎng)景優(yōu)缺點(diǎn)優(yōu)缺點(diǎn)與其他模式的關(guān)聯(lián)
從結構上看,裝飾模式和代理模式相似度很高,但兩者的側重點(diǎn)不同。 前者強調為本體對象增加新的功能,后者強調對本體對象的訪(fǎng)問(wèn)控制。
帶圖片的文章
文章的繪制方法可以在Keynote手繪風(fēng)格繪圖中找到。
參考
[1]【Go實(shí)現】實(shí)踐GoF的23種設計模式:SOLID原則,元君子
[2]【Go實(shí)現】實(shí)踐GoF的23種設計模式:裝飾模式,元君子
[3] 設計模式,第 4 章結構模式,GoF
[4]代理模式,
[5] 什么是反向代理? , 云耀斑
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云的新鮮技術(shù)~
匯總:大數據采集[被帶去派出所采集信息]
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 143 次瀏覽 ? 2022-12-15 11:21
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,
大家好,我是建筑先生,一個(gè)會(huì )寫(xiě)代碼會(huì )吟詩(shī)的架構師。今天講講大數據采集【被帶到派出所采集信息】,希望能幫助大家進(jìn)步?。?!
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,真的很累。雖然那時(shí)候C#還是很牛的,但是我也想過(guò)能不能通過(guò)程序批量獲?。ㄋ赃€是多點(diǎn)想法比較好)。幾經(jīng)周折,終于發(fā)現了HtmlAgilityPack這個(gè)神器。這幾年我也用HtmlAgilityPack采集來(lái)處理很多類(lèi)型的數據,尤其是足球比賽數據庫采集和天氣數據采集的數據。HTML敏捷包,
今天的主要內容是HtmlAgilityPack的基本介紹、使用和實(shí)戰代碼。最后,我們以采集天氣數據為例,介紹一下實(shí)際的采集分析過(guò)程和簡(jiǎn)單的代碼。我們將在下一篇文章中開(kāi)源天氣數據庫和C#運行代碼。采集核心就介紹到這里了。其實(shí)核心代碼都在,你自己處理就可以了。同時(shí),也免費向有需要的人開(kāi)放。詳情請關(guān)注下期文章。
.NET開(kāi)源目錄:本博客其他.NET開(kāi)源項目的【目錄】文章目錄
本文原文地址:C#+HtmlAgilityPack+XPath為您帶來(lái)采集數據(以采集天氣數據為例)
一、HtmlAgilityPack簡(jiǎn)介
HtmlAgilityPack 是一個(gè)用于解析 HTML 元素的開(kāi)源類(lèi)庫。它最大的特點(diǎn)是可以通過(guò)XPath來(lái)解析HMTL。如果您以前使用過(guò) C# 操作過(guò) XML,那么您將能夠輕松使用 HtmlAgilityPack。目前最新版本是1.4.6,下載地址如下: 目前穩定版是1.4.6,最后一次更新是2012年,所以很穩定,基礎功能也很全面,沒(méi)必要更新它。
說(shuō)到HtmlAgilityPack,就不得不介紹一個(gè)輔助工具了。不知道別人用的時(shí)候是怎么分析頁(yè)面結構的。反正我用的是官方的工具HAPExplorer。很有用。下面我們就來(lái)介紹下我們在使用的時(shí)候如何使用。
2. XPath技術(shù)介紹及使用 2.1 XPath簡(jiǎn)介
XPath即XML路徑語(yǔ)言,是一種用于確定XML(標準通用標記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言。XPath基于XML的樹(shù)結構,提供了在數據結構樹(shù)中查找節點(diǎn)的能力。XPath 的初衷是將其用作 XPointer 和 XSL 之間的通用語(yǔ)法模型。但 XPath 作為一種小型查詢(xún)語(yǔ)言很快被開(kāi)發(fā)人員采用。
XPath 是 W3C 標準。它的主要目的是在 XML1.0 或 XML1.1 文檔節點(diǎn)樹(shù)中定位節點(diǎn)。目前有XPath1.0和XPath2.0兩個(gè)版本。其中XPath1.0于1999年成為W3C標準,XPath2.0標準于2007年確立。W3C關(guān)于XPath的詳細英文文檔請見(jiàn):。
2.2 XPath的路徑表達式
XPath是XML的一種查詢(xún)語(yǔ)言,其作用與SQL非常相似。下面以XML為例介紹XPath的語(yǔ)法。下面的資料是幾年前學(xué)習這個(gè)的時(shí)候從網(wǎng)上和博客園得到的一些資料。暫時(shí)找不到出處。例子和文字基本上是為了參考。再次感謝你。如果您找到類(lèi)似的 文章,請告訴我鏈接,我會(huì )添加參考。下面XPath的相關(guān)表達式也很基礎,基本夠用了。
Empire Burlesque
Bob Dylan
10.90
只聽(tīng)見(jiàn)建筑師辦公室傳來(lái)建筑師的聲音:
病骨斷冠廣,孤臣千里江。有誰(shuí)會(huì )配上聯(lián)或下聯(lián)嗎?
定位節點(diǎn):XML是樹(shù)狀結構,類(lèi)似于文件系統中的文件夾結構,XPath也類(lèi)似于文件系統的路徑命名方式。但是,XPath是一種模式(Pattern),它可以選擇XML文件中路徑與某種模式相匹配的所有節點(diǎn)。例如,要選擇目錄下 cd 中的所有價(jià)格元素,可以使用:
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/cd/price
如果 XPath 以斜杠 (/) 開(kāi)頭,則表示它是絕對路徑。如果開(kāi)頭有兩個(gè)斜杠 (//),則將選擇文件中與模式匹配的所有元素,即使它們在樹(shù)中處于不同級別。以下語(yǔ)法將選擇文件中所有名為 cd 的元素(將選擇樹(shù)中的任何級別)://cd
選擇未知元素:使用星號 (*) 選擇未知元素。以下語(yǔ)法選擇 /catalog/cd 的所有子元素:
/catalog/cd/*
以下語(yǔ)法將選擇收錄價(jià)格作為子元素的所有目錄子元素。
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/*/price
以下語(yǔ)法選擇具有兩個(gè)名為 price 的父級級別的所有元素。
/*/*/price
需要注意的是,如果要訪(fǎng)問(wèn)不分層次的元素,XPath 語(yǔ)法必須以?xún)蓚€(gè)斜杠(//)開(kāi)頭,如果要訪(fǎng)問(wèn)未知元素,則必須使用星號(*)。星號只能表示未知 name 的元素不能表示未知層次結構的元素。
選擇分支:使用方括號選擇一個(gè)分支。以下語(yǔ)法從目錄的子元素中獲取名為 cd 的第一個(gè)元素。在 XPath 的定義中沒(méi)有第 0 個(gè)元素這樣的東西。
/catalog/cd[1]
以下語(yǔ)法選擇目錄中的最后一個(gè) cd 元素:(XPathj 沒(méi)有定義像 first() 這樣的函數,在上例中使用 [1] 來(lái)提取第一個(gè)元素。
/catalog/cd[last()]
以下語(yǔ)法選擇 price 元素的值等于 10.90 的所有 /catalog/cd 元素
/catalog/cd[price=10.90]
選擇屬性:在XPath中,除了選擇元素外,還可以選擇屬性。屬性都以@開(kāi)頭。例如選擇文件中名為 country 的所有屬性:
//@country
以下語(yǔ)法選擇 country 屬性值為 UK 的 cd 元素
//cd[@country='UK']
3. 采集Weather網(wǎng)站案例3.1需求分析
我們要的采集是全國各個(gè)城市的天氣信息,網(wǎng)站是:,網(wǎng)站數據分為兩種,一種是歷史數據,涵蓋2011年至今,一種是天氣預報數據,歷史數據就是天氣預報,也就是實(shí)際的天氣數據。采集 必須覆蓋全國主要城市,最好是所有城市。通過(guò)分析網(wǎng)站的頁(yè)面,確實(shí)符合要求。天氣信息,包括實(shí)際天氣狀況、風(fēng)力狀況和溫度狀況,包括最小和最大間隔。
結合基本需求,我們進(jìn)入網(wǎng)站,分析一些通用的特征,以及主頁(yè)面的結構。
3.2 網(wǎng)站頁(yè)面結構分析
對于采集大量信息,網(wǎng)站頁(yè)面的詳細分析和總結是必要的。因為機器采集不是人,所以需要動(dòng)態(tài)構造URL、請求或頁(yè)面html,然后解析。所以分析網(wǎng)站頁(yè)面結構是第一步,也是很關(guān)鍵的一步。我們首先進(jìn)入總歷史頁(yè)面:,如下圖:
很明顯,這個(gè)總頁(yè)是按省劃分的??梢钥吹矫總€(gè)省份和地級市名稱(chēng)的鏈接格式是固定的,只是拼音縮寫(xiě)不一樣。每個(gè)省的第一個(gè)城市是省會(huì )城市。需要注意的是,在程序上,要區分省會(huì )城市和其他地級市。當然,省會(huì )城市也可以省略,畢竟只有30多個(gè),人工標注也很快。這個(gè)頁(yè)面我們主要會(huì )用到采集省份的縮寫(xiě)信息,然后我們選擇一個(gè)省份,點(diǎn)擊進(jìn)入,可以看到每個(gè)省份的具體城市信息,比如我們選擇遼寧?。喝缦聢D:
同樣,每個(gè)省下面的地區也有單獨的鏈接,格式和上面類(lèi)似,按照城市的拼音。我們可以看到,每個(gè)省下面都有大的地級行政區,每個(gè)地級市區再細分為小縣城和市區。我們隨意點(diǎn)開(kāi)大連市的鏈接,進(jìn)去看看具體的氣象歷史信息:
本頁(yè)包括該市從2011年1月到2015年至今的歷史數據,以月為單位。鏈接的特征也很固定,包括城市名的拼音和年月信息。所以構建這個(gè)鏈接很容易。以下是每個(gè)月的情況:
我屏蔽了一些廣告,請手動(dòng)清除。每個(gè)城市的月度天氣信息比較簡(jiǎn)單,直接表格填寫(xiě)數據,日期,天氣情況,溫度和風(fēng)力。這些步驟是根據頁(yè)面上的鏈接一步步引導的,所以上面的過(guò)程很清楚,給采集的信息也很清楚,有一個(gè)大概的思路:
先采集整個(gè)省的拼音代碼,然后依次獲取每個(gè)省的每個(gè)地級市的名稱(chēng)和拼音代碼,以及對應的縣級市,最后循環(huán)遍歷每個(gè)縣級市按月獲取所有歷史數據。下面將著(zhù)重分析幾個(gè)頁(yè)面的節點(diǎn),即如何使用HtmlAgilityPack和Xpath獲取你想要的數據信息。至于存入資料庫,就讓八仙過(guò)海大展神通吧。我使用 XCode 組件。
3.3 分析省縣結構頁(yè)面
仍以遼寧省為例:打開(kāi)頁(yè)面,右鍵獲取網(wǎng)頁(yè)源代碼,粘貼到HAPExplorer中,或者直接在HAPExplorer中打開(kāi)鏈接,如下動(dòng)圖所示:
我們可以看到右邊的XPath地址,div結束后,下面有dl標簽,就是我們要采集的行。下面我們使用代碼獲取上面的結構體。先看代碼獲取頁(yè)面源碼:
public?static?string?GetWebClient(string?url)
{
string?strHTML?=?"";
WebClient?myWebClient?=?new?WebClient();????????????
Stream?myStream?=?myWebClient.OpenRead(url);
StreamReader?sr?=?new?StreamReader(myStream,?Encoding.Default);//注意編碼
strHTML?=?sr.ReadToEnd();
myStream.Close();
return?strHTML;
}
下面是分析各省下縣市的程序。限于篇幅,我們省略了數據庫部分,僅采集城市和拼音代碼,輸出:
<p>///?添加省級-地區-縣市?的城市信息,注意?省會(huì )城市?標記5
///?省份代碼
public?static?void?ParsePageByArea(String?cityCode)
{
//更加鏈接格式和省份代碼構造URL
String?url?=?String.Format("http://www.tianqihoubao.com/lishi/{0}.htm",?cityCode);
//下載網(wǎng)頁(yè)源代碼?
var?docText?=?HtmlHelper.GetWebClient(url);
//加載源代碼,獲取文檔對象
var?doc?=?new?HtmlDocument();?doc.LoadHtml(docText);
//更加xpath獲取總的對象,如果不為空,就繼續選擇dl標簽
var?res?=?doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[1]/div[6]/div[1]/div[1]/div[3]");
if?(res?!=?null)
{
var?list?=?res.SelectNodes(@"dl");//選擇標簽數組
if?(list.Count? 查看全部
匯總:大數據采集[被帶去派出所采集信息]
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,
大家好,我是建筑先生,一個(gè)會(huì )寫(xiě)代碼會(huì )吟詩(shī)的架構師。今天講講大數據采集【被帶到派出所采集信息】,希望能幫助大家進(jìn)步?。?!
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,真的很累。雖然那時(shí)候C#還是很牛的,但是我也想過(guò)能不能通過(guò)程序批量獲?。ㄋ赃€是多點(diǎn)想法比較好)。幾經(jīng)周折,終于發(fā)現了HtmlAgilityPack這個(gè)神器。這幾年我也用HtmlAgilityPack采集來(lái)處理很多類(lèi)型的數據,尤其是足球比賽數據庫采集和天氣數據采集的數據。HTML敏捷包,
今天的主要內容是HtmlAgilityPack的基本介紹、使用和實(shí)戰代碼。最后,我們以采集天氣數據為例,介紹一下實(shí)際的采集分析過(guò)程和簡(jiǎn)單的代碼。我們將在下一篇文章中開(kāi)源天氣數據庫和C#運行代碼。采集核心就介紹到這里了。其實(shí)核心代碼都在,你自己處理就可以了。同時(shí),也免費向有需要的人開(kāi)放。詳情請關(guān)注下期文章。
.NET開(kāi)源目錄:本博客其他.NET開(kāi)源項目的【目錄】文章目錄
本文原文地址:C#+HtmlAgilityPack+XPath為您帶來(lái)采集數據(以采集天氣數據為例)
一、HtmlAgilityPack簡(jiǎn)介
HtmlAgilityPack 是一個(gè)用于解析 HTML 元素的開(kāi)源類(lèi)庫。它最大的特點(diǎn)是可以通過(guò)XPath來(lái)解析HMTL。如果您以前使用過(guò) C# 操作過(guò) XML,那么您將能夠輕松使用 HtmlAgilityPack。目前最新版本是1.4.6,下載地址如下: 目前穩定版是1.4.6,最后一次更新是2012年,所以很穩定,基礎功能也很全面,沒(méi)必要更新它。
說(shuō)到HtmlAgilityPack,就不得不介紹一個(gè)輔助工具了。不知道別人用的時(shí)候是怎么分析頁(yè)面結構的。反正我用的是官方的工具HAPExplorer。很有用。下面我們就來(lái)介紹下我們在使用的時(shí)候如何使用。
2. XPath技術(shù)介紹及使用 2.1 XPath簡(jiǎn)介
XPath即XML路徑語(yǔ)言,是一種用于確定XML(標準通用標記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言。XPath基于XML的樹(shù)結構,提供了在數據結構樹(shù)中查找節點(diǎn)的能力。XPath 的初衷是將其用作 XPointer 和 XSL 之間的通用語(yǔ)法模型。但 XPath 作為一種小型查詢(xún)語(yǔ)言很快被開(kāi)發(fā)人員采用。
XPath 是 W3C 標準。它的主要目的是在 XML1.0 或 XML1.1 文檔節點(diǎn)樹(shù)中定位節點(diǎn)。目前有XPath1.0和XPath2.0兩個(gè)版本。其中XPath1.0于1999年成為W3C標準,XPath2.0標準于2007年確立。W3C關(guān)于XPath的詳細英文文檔請見(jiàn):。
2.2 XPath的路徑表達式
XPath是XML的一種查詢(xún)語(yǔ)言,其作用與SQL非常相似。下面以XML為例介紹XPath的語(yǔ)法。下面的資料是幾年前學(xué)習這個(gè)的時(shí)候從網(wǎng)上和博客園得到的一些資料。暫時(shí)找不到出處。例子和文字基本上是為了參考。再次感謝你。如果您找到類(lèi)似的 文章,請告訴我鏈接,我會(huì )添加參考。下面XPath的相關(guān)表達式也很基礎,基本夠用了。
Empire Burlesque
Bob Dylan
10.90
只聽(tīng)見(jiàn)建筑師辦公室傳來(lái)建筑師的聲音:
病骨斷冠廣,孤臣千里江。有誰(shuí)會(huì )配上聯(lián)或下聯(lián)嗎?
定位節點(diǎn):XML是樹(shù)狀結構,類(lèi)似于文件系統中的文件夾結構,XPath也類(lèi)似于文件系統的路徑命名方式。但是,XPath是一種模式(Pattern),它可以選擇XML文件中路徑與某種模式相匹配的所有節點(diǎn)。例如,要選擇目錄下 cd 中的所有價(jià)格元素,可以使用:
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/cd/price
如果 XPath 以斜杠 (/) 開(kāi)頭,則表示它是絕對路徑。如果開(kāi)頭有兩個(gè)斜杠 (//),則將選擇文件中與模式匹配的所有元素,即使它們在樹(shù)中處于不同級別。以下語(yǔ)法將選擇文件中所有名為 cd 的元素(將選擇樹(shù)中的任何級別)://cd
選擇未知元素:使用星號 (*) 選擇未知元素。以下語(yǔ)法選擇 /catalog/cd 的所有子元素:
/catalog/cd/*
以下語(yǔ)法將選擇收錄價(jià)格作為子元素的所有目錄子元素。
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/*/price
以下語(yǔ)法選擇具有兩個(gè)名為 price 的父級級別的所有元素。
/*/*/price
需要注意的是,如果要訪(fǎng)問(wèn)不分層次的元素,XPath 語(yǔ)法必須以?xún)蓚€(gè)斜杠(//)開(kāi)頭,如果要訪(fǎng)問(wèn)未知元素,則必須使用星號(*)。星號只能表示未知 name 的元素不能表示未知層次結構的元素。
選擇分支:使用方括號選擇一個(gè)分支。以下語(yǔ)法從目錄的子元素中獲取名為 cd 的第一個(gè)元素。在 XPath 的定義中沒(méi)有第 0 個(gè)元素這樣的東西。
/catalog/cd[1]
以下語(yǔ)法選擇目錄中的最后一個(gè) cd 元素:(XPathj 沒(méi)有定義像 first() 這樣的函數,在上例中使用 [1] 來(lái)提取第一個(gè)元素。
/catalog/cd[last()]
以下語(yǔ)法選擇 price 元素的值等于 10.90 的所有 /catalog/cd 元素
/catalog/cd[price=10.90]
選擇屬性:在XPath中,除了選擇元素外,還可以選擇屬性。屬性都以@開(kāi)頭。例如選擇文件中名為 country 的所有屬性:
//@country
以下語(yǔ)法選擇 country 屬性值為 UK 的 cd 元素
//cd[@country='UK']
3. 采集Weather網(wǎng)站案例3.1需求分析
我們要的采集是全國各個(gè)城市的天氣信息,網(wǎng)站是:,網(wǎng)站數據分為兩種,一種是歷史數據,涵蓋2011年至今,一種是天氣預報數據,歷史數據就是天氣預報,也就是實(shí)際的天氣數據。采集 必須覆蓋全國主要城市,最好是所有城市。通過(guò)分析網(wǎng)站的頁(yè)面,確實(shí)符合要求。天氣信息,包括實(shí)際天氣狀況、風(fēng)力狀況和溫度狀況,包括最小和最大間隔。
結合基本需求,我們進(jìn)入網(wǎng)站,分析一些通用的特征,以及主頁(yè)面的結構。
3.2 網(wǎng)站頁(yè)面結構分析
對于采集大量信息,網(wǎng)站頁(yè)面的詳細分析和總結是必要的。因為機器采集不是人,所以需要動(dòng)態(tài)構造URL、請求或頁(yè)面html,然后解析。所以分析網(wǎng)站頁(yè)面結構是第一步,也是很關(guān)鍵的一步。我們首先進(jìn)入總歷史頁(yè)面:,如下圖:
很明顯,這個(gè)總頁(yè)是按省劃分的??梢钥吹矫總€(gè)省份和地級市名稱(chēng)的鏈接格式是固定的,只是拼音縮寫(xiě)不一樣。每個(gè)省的第一個(gè)城市是省會(huì )城市。需要注意的是,在程序上,要區分省會(huì )城市和其他地級市。當然,省會(huì )城市也可以省略,畢竟只有30多個(gè),人工標注也很快。這個(gè)頁(yè)面我們主要會(huì )用到采集省份的縮寫(xiě)信息,然后我們選擇一個(gè)省份,點(diǎn)擊進(jìn)入,可以看到每個(gè)省份的具體城市信息,比如我們選擇遼寧?。喝缦聢D:

同樣,每個(gè)省下面的地區也有單獨的鏈接,格式和上面類(lèi)似,按照城市的拼音。我們可以看到,每個(gè)省下面都有大的地級行政區,每個(gè)地級市區再細分為小縣城和市區。我們隨意點(diǎn)開(kāi)大連市的鏈接,進(jìn)去看看具體的氣象歷史信息:
本頁(yè)包括該市從2011年1月到2015年至今的歷史數據,以月為單位。鏈接的特征也很固定,包括城市名的拼音和年月信息。所以構建這個(gè)鏈接很容易。以下是每個(gè)月的情況:
我屏蔽了一些廣告,請手動(dòng)清除。每個(gè)城市的月度天氣信息比較簡(jiǎn)單,直接表格填寫(xiě)數據,日期,天氣情況,溫度和風(fēng)力。這些步驟是根據頁(yè)面上的鏈接一步步引導的,所以上面的過(guò)程很清楚,給采集的信息也很清楚,有一個(gè)大概的思路:
先采集整個(gè)省的拼音代碼,然后依次獲取每個(gè)省的每個(gè)地級市的名稱(chēng)和拼音代碼,以及對應的縣級市,最后循環(huán)遍歷每個(gè)縣級市按月獲取所有歷史數據。下面將著(zhù)重分析幾個(gè)頁(yè)面的節點(diǎn),即如何使用HtmlAgilityPack和Xpath獲取你想要的數據信息。至于存入資料庫,就讓八仙過(guò)海大展神通吧。我使用 XCode 組件。
3.3 分析省縣結構頁(yè)面
仍以遼寧省為例:打開(kāi)頁(yè)面,右鍵獲取網(wǎng)頁(yè)源代碼,粘貼到HAPExplorer中,或者直接在HAPExplorer中打開(kāi)鏈接,如下動(dòng)圖所示:
我們可以看到右邊的XPath地址,div結束后,下面有dl標簽,就是我們要采集的行。下面我們使用代碼獲取上面的結構體。先看代碼獲取頁(yè)面源碼:
public?static?string?GetWebClient(string?url)
{
string?strHTML?=?"";
WebClient?myWebClient?=?new?WebClient();????????????
Stream?myStream?=?myWebClient.OpenRead(url);
StreamReader?sr?=?new?StreamReader(myStream,?Encoding.Default);//注意編碼
strHTML?=?sr.ReadToEnd();
myStream.Close();
return?strHTML;
}
下面是分析各省下縣市的程序。限于篇幅,我們省略了數據庫部分,僅采集城市和拼音代碼,輸出:
<p>///?添加省級-地區-縣市?的城市信息,注意?省會(huì )城市?標記5
///?省份代碼
public?static?void?ParsePageByArea(String?cityCode)
{
//更加鏈接格式和省份代碼構造URL
String?url?=?String.Format("http://www.tianqihoubao.com/lishi/{0}.htm",?cityCode);
//下載網(wǎng)頁(yè)源代碼?
var?docText?=?HtmlHelper.GetWebClient(url);
//加載源代碼,獲取文檔對象
var?doc?=?new?HtmlDocument();?doc.LoadHtml(docText);
//更加xpath獲取總的對象,如果不為空,就繼續選擇dl標簽
var?res?=?doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[1]/div[6]/div[1]/div[1]/div[3]");
if?(res?!=?null)
{
var?list?=?res.SelectNodes(@"dl");//選擇標簽數組
if?(list.Count?
最佳實(shí)踐:Python突破拉鉤反爬機制,采集各類(lèi)招聘數據
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 149 次瀏覽 ? 2022-12-15 08:38
首先,這個(gè)有什么用?如果有用,那就沒(méi)用了。如果沒(méi)用,那就沒(méi)用了。既然我們能夠得到這些數據,那么我們就可以利用它們來(lái)進(jìn)行數據分析??梢杂行Й@取職位信息、薪資信息等,也可以讓找工作更容易,在匹配職位和公司時(shí)可以更有選擇性
如有異議,直接上代碼!之后有具體的教程和大致的代碼思路!使用的解釋器是Python3.7.1,編輯器是Pycharm 2018.3.5。本著(zhù)虛心求學(xué),孜孜不倦的精神,把賴(lài)賴(lài)逼到這里來(lái)虛心求學(xué),孜孜不倦,把賴(lài)賴(lài)給逼了。不喜勿噴。開(kāi)恩。
私信小編001領(lǐng)取Python學(xué)習資料
本節涉及:Request的基本使用,Request的高級使用-會(huì )話(huà)維護,Cookies,Ajax,JSON數據格式
關(guān)于Request的更多細節,請參考Request官方文檔:
易入門(mén)漢化版
進(jìn)階使用漢化版
Cookie:有時(shí)也使用其復數形式 Cookies。類(lèi)型為“小文本文件”,是一些網(wǎng)站為了識別用戶(hù)身份和跟蹤會(huì )話(huà)而存儲在用戶(hù)本地終端的數據(通常是加密的),信息被臨時(shí)或永久保存通過(guò)用戶(hù)的客戶(hù)端計算機
Ajax即“Asynchronous Javascript And XML”(異步JavaScript和XML),指的是一種用于創(chuàng )建交互式、快速和動(dòng)態(tài)的網(wǎng)絡(luò )應用程序的網(wǎng)絡(luò )開(kāi)發(fā)技術(shù),它可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新部分網(wǎng)頁(yè)。
Ajax 通過(guò)在后臺與服務(wù)器交換少量數據,使網(wǎng)頁(yè)能夠異步更新。這意味著(zhù)可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新網(wǎng)頁(yè)的部分內容。
JSON(JavaScript Object Notation):它是一種輕量級的數據交換格式。便于人類(lèi)閱讀和書(shū)寫(xiě)。機器也很容易解析和生成。它基于 JavaScript 編程語(yǔ)言的子集,標準 ECMA-262 第 3 版 – 1999 年 12 月。JSON 使用完全獨立于語(yǔ)言的文本格式,但也使用類(lèi)似于 C 語(yǔ)言家族(包括 C、C++、C# 、Java、JavaScript、Perl、Python 等)。這些特性使 JSON 成為一種理想的數據交換語(yǔ)言。
首先介紹一下本章代碼的基本思路:
四步(發(fā)起請求,獲取響應,解析響應獲取數據,保存數據)
準確的說(shuō),四個(gè)步驟中的三個(gè)是(發(fā)起請求,得到響應,解析響應,提取數據,保存數據)
請求一個(gè)網(wǎng)頁(yè)(在搜索框輸入你要找的帖子得到BASE_URL,) BASE_URL:添加請求頭(注意添加Cookies)
請求BASE_URL觀(guān)察響應信息和本網(wǎng)頁(yè)源代碼觀(guān)察瀏覽器網(wǎng)頁(yè)源代碼,對比發(fā)現沒(méi)有我們需要的信息:發(fā)現Ajax的蹤跡。經(jīng)過(guò)一系列的操作,找到了Ajax網(wǎng)頁(yè)的地址(直接在這里請求這個(gè)鏈接是訪(fǎng)問(wèn)不了的):多次請求后,發(fā)現報錯。錯誤原因是Cookies的限制,動(dòng)態(tài)檢測網(wǎng)頁(yè),時(shí)間間隔小。學(xué)了前言,就學(xué)會(huì )了。會(huì )話(huà)保持。動(dòng)態(tài)獲取Cookies,這樣就可以徹底繞過(guò)這個(gè)“反爬”?答案肯定是迪娜。讓我們進(jìn)行會(huì )話(huà)維護并動(dòng)態(tài)提取 cookie?;煜c(diǎn):為什么cookie的維護是通過(guò)BASE_URL而不是Ajax_URL來(lái)維護的?下面根據我個(gè)人的理解對這個(gè)Ajax做一下解釋?zhuān)?結合Ajax的原理,Ajax的基本原理就是在網(wǎng)頁(yè)中插入異步觸發(fā)器。畢竟,他還在這個(gè)頁(yè)面,并沒(méi)有切換到其他頁(yè)面。只需觸發(fā)特定條件即可插入此頁(yè)面
此時(shí),您只需要提取相關(guān)數據即可。得到:
數據存儲:(保存到數據庫)
本源碼地址:%E8%81%8C%E4%BD%8D%E6%8B%9B%E8%81%98/Demo_Mongo.py
這里我選擇Mongo,接下來(lái)我們來(lái)操作一下。Mongo的安裝這里不再贅述。文章和mongo相關(guān),這里有幾篇蔡哥和董哥推薦的文章文章。不好,不,我沒(méi)有,我沒(méi)說(shuō)),地址如下: 前方高能預警,趕上?。?!:(此時(shí)你已經(jīng)安裝好了mongo,可以正常使用mongo了,剩下的交給我,我來(lái)教你)
安裝 pymongo 安裝 pymogo
建立連接:重寫(xiě)原來(lái)的代碼,增加類(lèi)似下面的代碼:
新的存儲方式:定義存入數據庫的方式
調用此方法:
注意:由于mongo的存儲格式是key:value格式,所以我們提取的返回數據也必須是key:value格式:
看看我,看看我,我是怎么做到的,我是這樣做的:
左手叉腰,右手顫抖,Over!
如果你只看文章,即使是我自己寫(xiě)的文章,光看文章也會(huì )糊涂。建議結合源碼一起閱讀。祝你學(xué)習進(jìn)步,祝你成功。加油~寫(xiě)到最后:既然能讀到這里,那我相信不是一個(gè)養成了無(wú)償賣(mài)淫習慣的人,也就是說(shuō)他或多或少也想自己干。所有的?下次出來(lái)吹牛,別拉鉤知道,爬回去難嗎?我會(huì )(雖然對于大佬來(lái)說(shuō),可能算不上反pickup,就像玩一樣,這個(gè)確實(shí)是。但是,對于新手來(lái)說(shuō),已經(jīng)很難了。)拉鉤人我也做過(guò)。找工作的話(huà)可以找我,啊哈哈哈哈。
匯總:【POWER BI】用POWER BI抓取網(wǎng)頁(yè)面數據(1)-單頁(yè)抓取
上次我們介紹了如何使用Power BI抓取上市公司的財務(wù)報表,但細細分析,財務(wù)報表都是比較標準的表格,抓取工作自然簡(jiǎn)單。如何使用POWER BI來(lái)完成相對復雜的頁(yè)面數據抓取呢?
今天我們嘗試先解決第一個(gè)問(wèn)題。
我們通過(guò)豆瓣音樂(lè )TOP 250來(lái)了解什么是結構化網(wǎng)頁(yè)。下面的頁(yè)面按照評分列出了不同的音樂(lè )專(zhuān)輯條目,每個(gè)音樂(lè )條目收錄:
專(zhuān)輯名稱(chēng)藝術(shù)家/發(fā)行月份等信息評級
這是一個(gè)結構化網(wǎng)頁(yè),結構化網(wǎng)頁(yè)的特點(diǎn)總結如下:
此類(lèi)常規條目是結構化網(wǎng)頁(yè)。POWER BI 可以抓取具有這種特性的數據嗎?答案當然是肯定的。讓我們嘗試獲取以下音樂(lè )數據。
結構化網(wǎng)頁(yè)分析
第一步:打開(kāi)POWER BI,進(jìn)入Data Acquisition > Web,輸入URL,出現如下界面
導入數據
有兩個(gè)選項,基本和高級。今天我們只抓取第一頁(yè)數據,所以先選擇“Basic”。后面我們要抓取多頁(yè)數據的時(shí)候,會(huì )介紹“高級”選項里面的設置。
解決方案確定后,會(huì )出現一個(gè)導航器,POWER BI會(huì )自動(dòng)識別頁(yè)面上的一些表格數據,如下圖,但是我們發(fā)現都不是我們想要的結果。這里我們點(diǎn)擊“Add table using example”
導航器 1
使用示例添加表
第 2 步:構建自定義結構化數據
這時(shí)會(huì )出現如下界面。我們注意到這個(gè)界面的上半部分是網(wǎng)頁(yè)的預覽。我們可以參考這個(gè)預覽頁(yè)面進(jìn)行選擇,而頁(yè)面的下半部分是欄目。我們可以根據需要添加或刪除列。
構建自定義結構化數據
我們雙擊第一列,會(huì )出現一些POWER BI識別的條目。這時(shí)候我們選擇第一行的相冊名稱(chēng)。同樣的,我們在第二行輸入Viva la...。輸入兩行后,下一行會(huì )自動(dòng)識別我們的意圖,填入后面幾項的相冊名稱(chēng)。
智能識別
同樣的方法,我們添加列,逐列輸入歌手/發(fā)行年份、評分等數據,如下圖所示。
完整的數據采集
這里有兩點(diǎn)值得注意:
歌手、發(fā)行年份、流派等信息混合在同一欄中。我們先抓取這一列混合數據,然后進(jìn)一步梳理;以上信息為顯性信息。即頁(yè)面上可以直接看到的數據很容易抓取,我們也可以抓取通過(guò)“相冊圖片”等超鏈接加載的不可見(jiàn)數據。我們可以進(jìn)入網(wǎng)頁(yè),右擊第一個(gè)條目的圖片,點(diǎn)擊“復制圖片地址”,將其復制到圖片欄的一行中,同理復制第二個(gè)條目的圖片,圖片最后一個(gè)條目的地址,也將被自動(dòng)識別。
當我們完成采集數據后,我們會(huì )對每一列進(jìn)行重命名,方便我們后續的數據清洗。至此,我們已經(jīng)在第一頁(yè)抓取了我們想要的數據。
下期我們會(huì )繼續介紹如何批量抓取以下網(wǎng)頁(yè)的數據。 查看全部
最佳實(shí)踐:Python突破拉鉤反爬機制,采集各類(lèi)招聘數據
首先,這個(gè)有什么用?如果有用,那就沒(méi)用了。如果沒(méi)用,那就沒(méi)用了。既然我們能夠得到這些數據,那么我們就可以利用它們來(lái)進(jìn)行數據分析??梢杂行Й@取職位信息、薪資信息等,也可以讓找工作更容易,在匹配職位和公司時(shí)可以更有選擇性
如有異議,直接上代碼!之后有具體的教程和大致的代碼思路!使用的解釋器是Python3.7.1,編輯器是Pycharm 2018.3.5。本著(zhù)虛心求學(xué),孜孜不倦的精神,把賴(lài)賴(lài)逼到這里來(lái)虛心求學(xué),孜孜不倦,把賴(lài)賴(lài)給逼了。不喜勿噴。開(kāi)恩。
私信小編001領(lǐng)取Python學(xué)習資料
本節涉及:Request的基本使用,Request的高級使用-會(huì )話(huà)維護,Cookies,Ajax,JSON數據格式
關(guān)于Request的更多細節,請參考Request官方文檔:
易入門(mén)漢化版
進(jìn)階使用漢化版
Cookie:有時(shí)也使用其復數形式 Cookies。類(lèi)型為“小文本文件”,是一些網(wǎng)站為了識別用戶(hù)身份和跟蹤會(huì )話(huà)而存儲在用戶(hù)本地終端的數據(通常是加密的),信息被臨時(shí)或永久保存通過(guò)用戶(hù)的客戶(hù)端計算機
Ajax即“Asynchronous Javascript And XML”(異步JavaScript和XML),指的是一種用于創(chuàng )建交互式、快速和動(dòng)態(tài)的網(wǎng)絡(luò )應用程序的網(wǎng)絡(luò )開(kāi)發(fā)技術(shù),它可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新部分網(wǎng)頁(yè)。
Ajax 通過(guò)在后臺與服務(wù)器交換少量數據,使網(wǎng)頁(yè)能夠異步更新。這意味著(zhù)可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新網(wǎng)頁(yè)的部分內容。
JSON(JavaScript Object Notation):它是一種輕量級的數據交換格式。便于人類(lèi)閱讀和書(shū)寫(xiě)。機器也很容易解析和生成。它基于 JavaScript 編程語(yǔ)言的子集,標準 ECMA-262 第 3 版 – 1999 年 12 月。JSON 使用完全獨立于語(yǔ)言的文本格式,但也使用類(lèi)似于 C 語(yǔ)言家族(包括 C、C++、C# 、Java、JavaScript、Perl、Python 等)。這些特性使 JSON 成為一種理想的數據交換語(yǔ)言。
首先介紹一下本章代碼的基本思路:
四步(發(fā)起請求,獲取響應,解析響應獲取數據,保存數據)

準確的說(shuō),四個(gè)步驟中的三個(gè)是(發(fā)起請求,得到響應,解析響應,提取數據,保存數據)
請求一個(gè)網(wǎng)頁(yè)(在搜索框輸入你要找的帖子得到BASE_URL,) BASE_URL:添加請求頭(注意添加Cookies)
請求BASE_URL觀(guān)察響應信息和本網(wǎng)頁(yè)源代碼觀(guān)察瀏覽器網(wǎng)頁(yè)源代碼,對比發(fā)現沒(méi)有我們需要的信息:發(fā)現Ajax的蹤跡。經(jīng)過(guò)一系列的操作,找到了Ajax網(wǎng)頁(yè)的地址(直接在這里請求這個(gè)鏈接是訪(fǎng)問(wèn)不了的):多次請求后,發(fā)現報錯。錯誤原因是Cookies的限制,動(dòng)態(tài)檢測網(wǎng)頁(yè),時(shí)間間隔小。學(xué)了前言,就學(xué)會(huì )了。會(huì )話(huà)保持。動(dòng)態(tài)獲取Cookies,這樣就可以徹底繞過(guò)這個(gè)“反爬”?答案肯定是迪娜。讓我們進(jìn)行會(huì )話(huà)維護并動(dòng)態(tài)提取 cookie?;煜c(diǎn):為什么cookie的維護是通過(guò)BASE_URL而不是Ajax_URL來(lái)維護的?下面根據我個(gè)人的理解對這個(gè)Ajax做一下解釋?zhuān)?結合Ajax的原理,Ajax的基本原理就是在網(wǎng)頁(yè)中插入異步觸發(fā)器。畢竟,他還在這個(gè)頁(yè)面,并沒(méi)有切換到其他頁(yè)面。只需觸發(fā)特定條件即可插入此頁(yè)面
此時(shí),您只需要提取相關(guān)數據即可。得到:
數據存儲:(保存到數據庫)
本源碼地址:%E8%81%8C%E4%BD%8D%E6%8B%9B%E8%81%98/Demo_Mongo.py
這里我選擇Mongo,接下來(lái)我們來(lái)操作一下。Mongo的安裝這里不再贅述。文章和mongo相關(guān),這里有幾篇蔡哥和董哥推薦的文章文章。不好,不,我沒(méi)有,我沒(méi)說(shuō)),地址如下: 前方高能預警,趕上?。?!:(此時(shí)你已經(jīng)安裝好了mongo,可以正常使用mongo了,剩下的交給我,我來(lái)教你)
安裝 pymongo 安裝 pymogo
建立連接:重寫(xiě)原來(lái)的代碼,增加類(lèi)似下面的代碼:

新的存儲方式:定義存入數據庫的方式
調用此方法:
注意:由于mongo的存儲格式是key:value格式,所以我們提取的返回數據也必須是key:value格式:
看看我,看看我,我是怎么做到的,我是這樣做的:
左手叉腰,右手顫抖,Over!
如果你只看文章,即使是我自己寫(xiě)的文章,光看文章也會(huì )糊涂。建議結合源碼一起閱讀。祝你學(xué)習進(jìn)步,祝你成功。加油~寫(xiě)到最后:既然能讀到這里,那我相信不是一個(gè)養成了無(wú)償賣(mài)淫習慣的人,也就是說(shuō)他或多或少也想自己干。所有的?下次出來(lái)吹牛,別拉鉤知道,爬回去難嗎?我會(huì )(雖然對于大佬來(lái)說(shuō),可能算不上反pickup,就像玩一樣,這個(gè)確實(shí)是。但是,對于新手來(lái)說(shuō),已經(jīng)很難了。)拉鉤人我也做過(guò)。找工作的話(huà)可以找我,啊哈哈哈哈。
匯總:【POWER BI】用POWER BI抓取網(wǎng)頁(yè)面數據(1)-單頁(yè)抓取
上次我們介紹了如何使用Power BI抓取上市公司的財務(wù)報表,但細細分析,財務(wù)報表都是比較標準的表格,抓取工作自然簡(jiǎn)單。如何使用POWER BI來(lái)完成相對復雜的頁(yè)面數據抓取呢?
今天我們嘗試先解決第一個(gè)問(wèn)題。
我們通過(guò)豆瓣音樂(lè )TOP 250來(lái)了解什么是結構化網(wǎng)頁(yè)。下面的頁(yè)面按照評分列出了不同的音樂(lè )專(zhuān)輯條目,每個(gè)音樂(lè )條目收錄:
專(zhuān)輯名稱(chēng)藝術(shù)家/發(fā)行月份等信息評級
這是一個(gè)結構化網(wǎng)頁(yè),結構化網(wǎng)頁(yè)的特點(diǎn)總結如下:
此類(lèi)常規條目是結構化網(wǎng)頁(yè)。POWER BI 可以抓取具有這種特性的數據嗎?答案當然是肯定的。讓我們嘗試獲取以下音樂(lè )數據。
結構化網(wǎng)頁(yè)分析
第一步:打開(kāi)POWER BI,進(jìn)入Data Acquisition > Web,輸入URL,出現如下界面

導入數據
有兩個(gè)選項,基本和高級。今天我們只抓取第一頁(yè)數據,所以先選擇“Basic”。后面我們要抓取多頁(yè)數據的時(shí)候,會(huì )介紹“高級”選項里面的設置。
解決方案確定后,會(huì )出現一個(gè)導航器,POWER BI會(huì )自動(dòng)識別頁(yè)面上的一些表格數據,如下圖,但是我們發(fā)現都不是我們想要的結果。這里我們點(diǎn)擊“Add table using example”
導航器 1
使用示例添加表
第 2 步:構建自定義結構化數據
這時(shí)會(huì )出現如下界面。我們注意到這個(gè)界面的上半部分是網(wǎng)頁(yè)的預覽。我們可以參考這個(gè)預覽頁(yè)面進(jìn)行選擇,而頁(yè)面的下半部分是欄目。我們可以根據需要添加或刪除列。
構建自定義結構化數據

我們雙擊第一列,會(huì )出現一些POWER BI識別的條目。這時(shí)候我們選擇第一行的相冊名稱(chēng)。同樣的,我們在第二行輸入Viva la...。輸入兩行后,下一行會(huì )自動(dòng)識別我們的意圖,填入后面幾項的相冊名稱(chēng)。
智能識別
同樣的方法,我們添加列,逐列輸入歌手/發(fā)行年份、評分等數據,如下圖所示。
完整的數據采集
這里有兩點(diǎn)值得注意:
歌手、發(fā)行年份、流派等信息混合在同一欄中。我們先抓取這一列混合數據,然后進(jìn)一步梳理;以上信息為顯性信息。即頁(yè)面上可以直接看到的數據很容易抓取,我們也可以抓取通過(guò)“相冊圖片”等超鏈接加載的不可見(jiàn)數據。我們可以進(jìn)入網(wǎng)頁(yè),右擊第一個(gè)條目的圖片,點(diǎn)擊“復制圖片地址”,將其復制到圖片欄的一行中,同理復制第二個(gè)條目的圖片,圖片最后一個(gè)條目的地址,也將被自動(dòng)識別。
當我們完成采集數據后,我們會(huì )對每一列進(jìn)行重命名,方便我們后續的數據清洗。至此,我們已經(jīng)在第一頁(yè)抓取了我們想要的數據。
下期我們會(huì )繼續介紹如何批量抓取以下網(wǎng)頁(yè)的數據。
非常有效:怎樣有效防止自己的文章被采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 151 次瀏覽 ? 2022-12-12 16:30
目前,很多網(wǎng)站選擇通過(guò)采集文章內容或抄襲文章內容的方式為網(wǎng)站打造內容升級。我已經(jīng)提出了明確的建議。想認識更多的朋友可以去百度站長(cháng)工具看文章百度官方解釋。那我想和大家討論一下文章采集的危害,被抄襲了怎么辦?
網(wǎng)站的文章內容是否可以采集?
因為搜索引擎越來(lái)越智能,也越來(lái)越強調用戶(hù)體驗和附加價(jià)值,如果我們只是努力大量采集,可能會(huì )出現以下問(wèn)題。
第一,網(wǎng)站采集的內容不一定符合網(wǎng)站的主題,此類(lèi)內容會(huì )被搜索引擎判定為低質(zhì)量的垃圾內容,嚴重的還可能對網(wǎng)站進(jìn)行降級處罰.
其次,長(cháng)時(shí)間大量采集文章也會(huì )對服務(wù)器造成一定的壓力。如果使用的網(wǎng)站空間不大,有一定的可能網(wǎng)站空間內存滿(mǎn)后,無(wú)法進(jìn)行任何操作。
URL文章內容抄襲如何解決?
首先要做好網(wǎng)站的內部調整,同時(shí)要培養網(wǎng)站固定的時(shí)間更新頻率。這樣操作之后,網(wǎng)站的百度收錄就會(huì )有很大的提升。
二、本站原創(chuàng )文章內容更新后,您可以選擇使用百度站長(cháng)工具原版維護功能,每次更新文章后提交原版維護content 可以,每天原創(chuàng )維護可以投稿10篇。
三、當對方采集你的文章內容時(shí),照片也會(huì )被采集,我們可以給文章內容中的照片添加水印圖片。
我現在想,除了百度官方給文章采集網(wǎng)站的解決方案,我們可以把我們的網(wǎng)站做的更強大,這樣我們才能讓百度收錄保證做的更強大。
分享:【推薦文章】牛掰??!找到并保護采集器:真的會(huì )有很多干貨放送!
看到本文內容請不要感到意外,因為本文由Koala SEO【批量寫(xiě)SEO原創(chuàng )文章】平臺支持。使用考拉每天產(chǎn)出數萬(wàn)篇優(yōu)質(zhì)SEO文章文章!如果您還需要批量編輯SEO文章,可以進(jìn)入平臺用戶(hù)中心試用!
最近大家很關(guān)心尋找和保護采集器這條信息,也有很多網(wǎng)友向我們提問(wèn)。其實(shí)在談內容之前,我們應該先討論如何網(wǎng)站優(yōu)化原創(chuàng )內容!對于計劃單一的網(wǎng)站來(lái)說(shuō),頁(yè)面質(zhì)量真的不是重點(diǎn),他們很在意權重和瀏覽量。一個(gè)好的網(wǎng)站作品發(fā)表??在一個(gè)不好的網(wǎng)站和一個(gè)高質(zhì)量的網(wǎng)站上,最終的排名和引流效果是天壤之別!如果你想知道如何尋找和保護采集器好友,其實(shí)大家關(guān)心的也是本站的主題。本來(lái)原創(chuàng )一個(gè)可讀性好的文案是很方便的,但是這些SEO文案能得到的搜索量非常小。期待通過(guò)信息頁(yè)的布局達到流量的目的,絕對最重要的就是分批!如果一個(gè)網(wǎng)頁(yè)文章可以產(chǎn)生1次page view(每24小時(shí)),如果可以產(chǎn)生10000篇文章,那么每天的訪(fǎng)問(wèn)量可以增加10000。但是說(shuō)起來(lái)容易,其實(shí)在編輯的時(shí)候,一個(gè)人一天只能寫(xiě)30多篇,累死的時(shí)候只能寫(xiě)70篇。就算用偽原創(chuàng )軟件,最多也只有100篇!既然看到了,就不要再談尋找和保護采集器了,研究如何實(shí)現自動(dòng)生成文章吧!搜索引擎認為的自主創(chuàng )作是什么?網(wǎng)站原創(chuàng )不只是逐句原創(chuàng )編輯!在每個(gè)搜索引擎中 s程序字典,原創(chuàng )不等于沒(méi)有post重復詞。也就是說(shuō),只要我們的文案不和其他文章重疊,收錄的幾率就會(huì )大大提高。一篇優(yōu)秀的文章,充滿(mǎn)輝煌的價(jià)值,堅持相同的核心思想,只需要確認沒(méi)有雷同的段落,就說(shuō)明該文章文章仍然有很高的概率被采集搜索引擎,甚至成為引流的好文章。比如說(shuō)這個(gè)文章,你可能會(huì )通過(guò)360找到并保護采集器,最后點(diǎn)擊訪(fǎng)問(wèn)。其實(shí)我編輯的這篇文章文章是用Koala SEO Tools的批量寫(xiě)作文章軟件量產(chǎn)的!本系統的偽原創(chuàng )平臺,準確的表達應該是文章 批量軟件,三個(gè)小時(shí)可以寫(xiě)出幾千個(gè)優(yōu)秀的SEO文章,我們的網(wǎng)站權重只要足夠大,收錄率可以達到79%以上。詳細的應用步驟,個(gè)人主頁(yè)有視頻介紹和入門(mén)指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??
【本文由自由發(fā)布信息采集、編輯、發(fā)布】 查看全部
非常有效:怎樣有效防止自己的文章被采集
目前,很多網(wǎng)站選擇通過(guò)采集文章內容或抄襲文章內容的方式為網(wǎng)站打造內容升級。我已經(jīng)提出了明確的建議。想認識更多的朋友可以去百度站長(cháng)工具看文章百度官方解釋。那我想和大家討論一下文章采集的危害,被抄襲了怎么辦?
網(wǎng)站的文章內容是否可以采集?

因為搜索引擎越來(lái)越智能,也越來(lái)越強調用戶(hù)體驗和附加價(jià)值,如果我們只是努力大量采集,可能會(huì )出現以下問(wèn)題。
第一,網(wǎng)站采集的內容不一定符合網(wǎng)站的主題,此類(lèi)內容會(huì )被搜索引擎判定為低質(zhì)量的垃圾內容,嚴重的還可能對網(wǎng)站進(jìn)行降級處罰.
其次,長(cháng)時(shí)間大量采集文章也會(huì )對服務(wù)器造成一定的壓力。如果使用的網(wǎng)站空間不大,有一定的可能網(wǎng)站空間內存滿(mǎn)后,無(wú)法進(jìn)行任何操作。
URL文章內容抄襲如何解決?

首先要做好網(wǎng)站的內部調整,同時(shí)要培養網(wǎng)站固定的時(shí)間更新頻率。這樣操作之后,網(wǎng)站的百度收錄就會(huì )有很大的提升。
二、本站原創(chuàng )文章內容更新后,您可以選擇使用百度站長(cháng)工具原版維護功能,每次更新文章后提交原版維護content 可以,每天原創(chuàng )維護可以投稿10篇。
三、當對方采集你的文章內容時(shí),照片也會(huì )被采集,我們可以給文章內容中的照片添加水印圖片。
我現在想,除了百度官方給文章采集網(wǎng)站的解決方案,我們可以把我們的網(wǎng)站做的更強大,這樣我們才能讓百度收錄保證做的更強大。
分享:【推薦文章】牛掰??!找到并保護采集器:真的會(huì )有很多干貨放送!
看到本文內容請不要感到意外,因為本文由Koala SEO【批量寫(xiě)SEO原創(chuàng )文章】平臺支持。使用考拉每天產(chǎn)出數萬(wàn)篇優(yōu)質(zhì)SEO文章文章!如果您還需要批量編輯SEO文章,可以進(jìn)入平臺用戶(hù)中心試用!

最近大家很關(guān)心尋找和保護采集器這條信息,也有很多網(wǎng)友向我們提問(wèn)。其實(shí)在談內容之前,我們應該先討論如何網(wǎng)站優(yōu)化原創(chuàng )內容!對于計劃單一的網(wǎng)站來(lái)說(shuō),頁(yè)面質(zhì)量真的不是重點(diǎn),他們很在意權重和瀏覽量。一個(gè)好的網(wǎng)站作品發(fā)表??在一個(gè)不好的網(wǎng)站和一個(gè)高質(zhì)量的網(wǎng)站上,最終的排名和引流效果是天壤之別!如果你想知道如何尋找和保護采集器好友,其實(shí)大家關(guān)心的也是本站的主題。本來(lái)原創(chuàng )一個(gè)可讀性好的文案是很方便的,但是這些SEO文案能得到的搜索量非常小。期待通過(guò)信息頁(yè)的布局達到流量的目的,絕對最重要的就是分批!如果一個(gè)網(wǎng)頁(yè)文章可以產(chǎn)生1次page view(每24小時(shí)),如果可以產(chǎn)生10000篇文章,那么每天的訪(fǎng)問(wèn)量可以增加10000。但是說(shuō)起來(lái)容易,其實(shí)在編輯的時(shí)候,一個(gè)人一天只能寫(xiě)30多篇,累死的時(shí)候只能寫(xiě)70篇。就算用偽原創(chuàng )軟件,最多也只有100篇!既然看到了,就不要再談尋找和保護采集器了,研究如何實(shí)現自動(dòng)生成文章吧!搜索引擎認為的自主創(chuàng )作是什么?網(wǎng)站原創(chuàng )不只是逐句原創(chuàng )編輯!在每個(gè)搜索引擎中 s程序字典,原創(chuàng )不等于沒(méi)有post重復詞。也就是說(shuō),只要我們的文案不和其他文章重疊,收錄的幾率就會(huì )大大提高。一篇優(yōu)秀的文章,充滿(mǎn)輝煌的價(jià)值,堅持相同的核心思想,只需要確認沒(méi)有雷同的段落,就說(shuō)明該文章文章仍然有很高的概率被采集搜索引擎,甚至成為引流的好文章。比如說(shuō)這個(gè)文章,你可能會(huì )通過(guò)360找到并保護采集器,最后點(diǎn)擊訪(fǎng)問(wèn)。其實(shí)我編輯的這篇文章文章是用Koala SEO Tools的批量寫(xiě)作文章軟件量產(chǎn)的!本系統的偽原創(chuàng )平臺,準確的表達應該是文章 批量軟件,三個(gè)小時(shí)可以寫(xiě)出幾千個(gè)優(yōu)秀的SEO文章,我們的網(wǎng)站權重只要足夠大,收錄率可以達到79%以上。詳細的應用步驟,個(gè)人主頁(yè)有視頻介紹和入門(mén)指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??

【本文由自由發(fā)布信息采集、編輯、發(fā)布】
解密:調用鏈系列(二):解讀UAVStack中的貪吃蛇-調用鏈
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2022-12-11 00:50
前言
上一篇文章分享了調用鏈的模型設計和模型時(shí)序圖。相信大家對調用鏈都有一個(gè)整體的認識,比如:什么是調用鏈,它能做什么,整體的實(shí)現策略。
在本文章中我們繼續介紹調用鏈的服務(wù)端信息采集和服務(wù)間的上下文傳遞。
服務(wù)器信息采集
服務(wù)器端信息采集的整體流程如下圖所示。通過(guò)在應用容器(tomcat等)啟動(dòng)過(guò)程中植入切入點(diǎn),可以在應用邏輯執行前后劫持請求。
切點(diǎn)植入
在介紹切入點(diǎn)之前,我們應該對servlet容器(本文以tomcat為例)處理一個(gè)請求的大致過(guò)程有一個(gè)整體的了解。
圖片來(lái)自網(wǎng)絡(luò )
Connector接收到一個(gè)連接并轉化為請求(Request)后,會(huì )將請求傳遞給Engine的管道(Pipeline)的閥門(mén)(ValveA)。該請求將傳遞到 Engine 的管道中的 Engine Valve。然后這個(gè)request會(huì )從Engine Valve傳到一個(gè)Host pipeline,再傳到pipeline中的Host Valve。然后從Host Valve傳到一個(gè)Context pipeline,再傳到pipeline中的Context Valve。接下來(lái),請求會(huì )被傳遞到 Wrapper C 中收錄在管道中的閥門(mén) Wrapper Valve,在這里它會(huì )經(jīng)過(guò)一個(gè)過(guò)濾器鏈(Filter Chain),最后發(fā)送到一個(gè) Servlet。借助tomcat的這種架構設計,
中間件增強技術(shù)除了巧妙的利用了tomcat容器的架構設計之外,還使用了java Instrumentation(它為我們提供了在對象第一次加載時(shí)動(dòng)態(tài)修改字節碼的能力。給出詳細的解釋?zhuān)欢目梢宰孕胁橘Y料)。在UAV中,通過(guò)UAVServer對外提供各種切點(diǎn)能力。
有了中間件增強技術(shù),應用邏輯執行前后都有切點(diǎn),下一步就是在這些切點(diǎn)執行我們自己的調用鏈邏輯。
調用鏈中中間件增強技術(shù)的使用
上面介紹的中間件增強技術(shù)是一個(gè)框架,通過(guò)使用javaagent在tomcat代碼中動(dòng)態(tài)植入切點(diǎn)代碼,并以UAVServer的形式對外提供能力(具體能力后面會(huì )詳細介紹文章)。輕調用鏈的實(shí)現使用了UAVServer提供的GlobalFilterHandler能力。
GlobalFilterHandler:這里的GlobalFilterHandler是中間件增強技術(shù)中的一個(gè)能力,與傳統的過(guò)濾器無(wú)關(guān)。它對外提供四種能力:
1. doRequest:在所有應用程序處理請求之前劫持;
2. doResponse:在所有應用處理完請求后劫持;
3. BlockHandlerChain:阻塞當前handler之后的所有handler,handler在當前注冊的地方;
4. BlockFilterChain 阻塞當前Filter之后的所有Filter。
調用鏈借助GlobalFilterHandler提供的前兩個(gè)能力,實(shí)現了在應用處理請求前后執行調用鏈邏輯的功能。
輕鏈實(shí)施
具體的UML圖如下:
從UML圖中可以清楚的看到InvokeChainSupporter(調用鏈實(shí)現邏輯入口和調用鏈需要的資源初始化實(shí)現類(lèi))對中間件增強技術(shù)進(jìn)行了二次增強。它允許用戶(hù)在其中注冊不同的handler,并在handler的preCap和doCap(中間件增強技術(shù)中邏輯執行前后的pointcut術(shù)語(yǔ))方法前后動(dòng)態(tài)編織適配器,從而能夠進(jìn)行更多的定制化適配和個(gè)性化邏輯. 所有的支持者和適配器都采用了反射調用的方式,最大程度的減少了對中間件增強技術(shù)的依賴(lài)。
有了二次增強技術(shù),我們就可以開(kāi)始下面的調用鏈繪制工作了。
輕調用鏈繪制實(shí)現主要依賴(lài)于注冊在InvokeChainSupporter上的ServiceSpanInvokeChainHandler。主要繪制過(guò)程如下:
1、解析請求信息,提取調用鏈關(guān)心的信息,將解析后的信息放入上下文中;
2、通過(guò)解析出的請求頭信息進(jìn)行邏輯分流,根據不同的協(xié)議類(lèi)型進(jìn)行不同的邏輯處理;
l mq邏輯
干貨教程:招募偽原創(chuàng )文章生成器手機版(文章采集生成偽原創(chuàng )軟件)
閱讀本文提示語(yǔ):文章采集生成偽原創(chuàng )軟件,偽原創(chuàng )文章生成器軟件手機版下載,偽原創(chuàng )編寫(xiě)文章軟件
招收偽原創(chuàng )文章生成器手機版下載,2019年整合整合全網(wǎng)內容,為文章添加“原創(chuàng )文章制作” . 用戶(hù)分析:偽原創(chuàng )可以提升用戶(hù)體驗,但通篇不能為用戶(hù)提供解決問(wèn)題的建議。如果您有用戶(hù),請使用此工具的“測試資源”集合來(lái)修改現有的 文章,然后手動(dòng)測試資源是否已優(yōu)化以擴展。
如何使用 偽原創(chuàng )文章 生成器修改標題
是使用 偽原創(chuàng ) 工具獲得的 文章 技能之一。
HOW TO WRITE PIT WITH 偽原創(chuàng )文章 GENERATORS 修改標題是文章原創(chuàng )的標志。寫(xiě)偽原創(chuàng )文章時(shí),可以用原創(chuàng )的文章,把文章翻譯成中文,插入到文章中,然后加上文章 中的關(guān)鍵字描述,例如 ALT=transformer。我們這樣修正它的變化,不僅有利于用戶(hù)體驗,圖文匹配,不厭讀,而且有利于搜索引擎蜘蛛分析的原創(chuàng )靈敏度,增加被抓到的概率收錄。
第三:句子替換
同義詞替換有特殊的軟件處理,但不建議所有人使用。閱讀 文章 時(shí)將替換全文。大多數情況下不利于用戶(hù)體驗,因此禁止直接使用所謂的“軟件制造”進(jìn)行仿冒。下面舉例說(shuō)明如何替換:隨機選幾個(gè)句子替換,注意句子是不是單詞,一般在文章的第一部分,趕緊買(mǎi)源碼吧,比如,"我們公司是專(zhuān)業(yè)生產(chǎn)什么的廠(chǎng)家,品種齊全,質(zhì)量有保證。下面就帶大家了解一下它是如何工作的?!?其中一句話(huà)是“讓我們看看有什么用”。我們可以使用“您將在以下 文章 你知道什么?” 這種變化與原文的意思是一致的。它隨上下文流動(dòng),使整個(gè)文本的變化幾乎相同,這可以增加收錄的可能性。搜索引擎優(yōu)化營(yíng)銷(xiāo)推廣文章。
第四:在整個(gè)文章中添加刪除方法ecshop文章seo。
,在一個(gè)位置刪掉一兩句,在另一個(gè)位置加上自己寫(xiě)的一兩句。類(lèi)似于上面的方法。SEO 搜索類(lèi)似文章。
五:更改下單方式
更改 文章 中段落的順序,或更改段落中句子的順序,但要確保整個(gè) 文章 和整個(gè)段落是合乎邏輯且流暢的。一般來(lái)說(shuō),以上兩種方法應該結合使用。SEO文章寫(xiě)作要求
相關(guān)文章 查看全部
解密:調用鏈系列(二):解讀UAVStack中的貪吃蛇-調用鏈
前言
上一篇文章分享了調用鏈的模型設計和模型時(shí)序圖。相信大家對調用鏈都有一個(gè)整體的認識,比如:什么是調用鏈,它能做什么,整體的實(shí)現策略。
在本文章中我們繼續介紹調用鏈的服務(wù)端信息采集和服務(wù)間的上下文傳遞。
服務(wù)器信息采集
服務(wù)器端信息采集的整體流程如下圖所示。通過(guò)在應用容器(tomcat等)啟動(dòng)過(guò)程中植入切入點(diǎn),可以在應用邏輯執行前后劫持請求。
切點(diǎn)植入
在介紹切入點(diǎn)之前,我們應該對servlet容器(本文以tomcat為例)處理一個(gè)請求的大致過(guò)程有一個(gè)整體的了解。
圖片來(lái)自網(wǎng)絡(luò )

Connector接收到一個(gè)連接并轉化為請求(Request)后,會(huì )將請求傳遞給Engine的管道(Pipeline)的閥門(mén)(ValveA)。該請求將傳遞到 Engine 的管道中的 Engine Valve。然后這個(gè)request會(huì )從Engine Valve傳到一個(gè)Host pipeline,再傳到pipeline中的Host Valve。然后從Host Valve傳到一個(gè)Context pipeline,再傳到pipeline中的Context Valve。接下來(lái),請求會(huì )被傳遞到 Wrapper C 中收錄在管道中的閥門(mén) Wrapper Valve,在這里它會(huì )經(jīng)過(guò)一個(gè)過(guò)濾器鏈(Filter Chain),最后發(fā)送到一個(gè) Servlet。借助tomcat的這種架構設計,
中間件增強技術(shù)除了巧妙的利用了tomcat容器的架構設計之外,還使用了java Instrumentation(它為我們提供了在對象第一次加載時(shí)動(dòng)態(tài)修改字節碼的能力。給出詳細的解釋?zhuān)欢目梢宰孕胁橘Y料)。在UAV中,通過(guò)UAVServer對外提供各種切點(diǎn)能力。
有了中間件增強技術(shù),應用邏輯執行前后都有切點(diǎn),下一步就是在這些切點(diǎn)執行我們自己的調用鏈邏輯。
調用鏈中中間件增強技術(shù)的使用
上面介紹的中間件增強技術(shù)是一個(gè)框架,通過(guò)使用javaagent在tomcat代碼中動(dòng)態(tài)植入切點(diǎn)代碼,并以UAVServer的形式對外提供能力(具體能力后面會(huì )詳細介紹文章)。輕調用鏈的實(shí)現使用了UAVServer提供的GlobalFilterHandler能力。
GlobalFilterHandler:這里的GlobalFilterHandler是中間件增強技術(shù)中的一個(gè)能力,與傳統的過(guò)濾器無(wú)關(guān)。它對外提供四種能力:
1. doRequest:在所有應用程序處理請求之前劫持;
2. doResponse:在所有應用處理完請求后劫持;
3. BlockHandlerChain:阻塞當前handler之后的所有handler,handler在當前注冊的地方;
4. BlockFilterChain 阻塞當前Filter之后的所有Filter。

調用鏈借助GlobalFilterHandler提供的前兩個(gè)能力,實(shí)現了在應用處理請求前后執行調用鏈邏輯的功能。
輕鏈實(shí)施
具體的UML圖如下:
從UML圖中可以清楚的看到InvokeChainSupporter(調用鏈實(shí)現邏輯入口和調用鏈需要的資源初始化實(shí)現類(lèi))對中間件增強技術(shù)進(jìn)行了二次增強。它允許用戶(hù)在其中注冊不同的handler,并在handler的preCap和doCap(中間件增強技術(shù)中邏輯執行前后的pointcut術(shù)語(yǔ))方法前后動(dòng)態(tài)編織適配器,從而能夠進(jìn)行更多的定制化適配和個(gè)性化邏輯. 所有的支持者和適配器都采用了反射調用的方式,最大程度的減少了對中間件增強技術(shù)的依賴(lài)。
有了二次增強技術(shù),我們就可以開(kāi)始下面的調用鏈繪制工作了。
輕調用鏈繪制實(shí)現主要依賴(lài)于注冊在InvokeChainSupporter上的ServiceSpanInvokeChainHandler。主要繪制過(guò)程如下:
1、解析請求信息,提取調用鏈關(guān)心的信息,將解析后的信息放入上下文中;
2、通過(guò)解析出的請求頭信息進(jìn)行邏輯分流,根據不同的協(xié)議類(lèi)型進(jìn)行不同的邏輯處理;
l mq邏輯
干貨教程:招募偽原創(chuàng )文章生成器手機版(文章采集生成偽原創(chuàng )軟件)
閱讀本文提示語(yǔ):文章采集生成偽原創(chuàng )軟件,偽原創(chuàng )文章生成器軟件手機版下載,偽原創(chuàng )編寫(xiě)文章軟件
招收偽原創(chuàng )文章生成器手機版下載,2019年整合整合全網(wǎng)內容,為文章添加“原創(chuàng )文章制作” . 用戶(hù)分析:偽原創(chuàng )可以提升用戶(hù)體驗,但通篇不能為用戶(hù)提供解決問(wèn)題的建議。如果您有用戶(hù),請使用此工具的“測試資源”集合來(lái)修改現有的 文章,然后手動(dòng)測試資源是否已優(yōu)化以擴展。
如何使用 偽原創(chuàng )文章 生成器修改標題

是使用 偽原創(chuàng ) 工具獲得的 文章 技能之一。
HOW TO WRITE PIT WITH 偽原創(chuàng )文章 GENERATORS 修改標題是文章原創(chuàng )的標志。寫(xiě)偽原創(chuàng )文章時(shí),可以用原創(chuàng )的文章,把文章翻譯成中文,插入到文章中,然后加上文章 中的關(guān)鍵字描述,例如 ALT=transformer。我們這樣修正它的變化,不僅有利于用戶(hù)體驗,圖文匹配,不厭讀,而且有利于搜索引擎蜘蛛分析的原創(chuàng )靈敏度,增加被抓到的概率收錄。
第三:句子替換
同義詞替換有特殊的軟件處理,但不建議所有人使用。閱讀 文章 時(shí)將替換全文。大多數情況下不利于用戶(hù)體驗,因此禁止直接使用所謂的“軟件制造”進(jìn)行仿冒。下面舉例說(shuō)明如何替換:隨機選幾個(gè)句子替換,注意句子是不是單詞,一般在文章的第一部分,趕緊買(mǎi)源碼吧,比如,"我們公司是專(zhuān)業(yè)生產(chǎn)什么的廠(chǎng)家,品種齊全,質(zhì)量有保證。下面就帶大家了解一下它是如何工作的?!?其中一句話(huà)是“讓我們看看有什么用”。我們可以使用“您將在以下 文章 你知道什么?” 這種變化與原文的意思是一致的。它隨上下文流動(dòng),使整個(gè)文本的變化幾乎相同,這可以增加收錄的可能性。搜索引擎優(yōu)化營(yíng)銷(xiāo)推廣文章。
第四:在整個(gè)文章中添加刪除方法ecshop文章seo。

,在一個(gè)位置刪掉一兩句,在另一個(gè)位置加上自己寫(xiě)的一兩句。類(lèi)似于上面的方法。SEO 搜索類(lèi)似文章。
五:更改下單方式
更改 文章 中段落的順序,或更改段落中句子的順序,但要確保整個(gè) 文章 和整個(gè)段落是合乎邏輯且流暢的。一般來(lái)說(shuō),以上兩種方法應該結合使用。SEO文章寫(xiě)作要求
相關(guān)文章
解決方案:Skywalking Node.js 現支持 Egg 框架調用鏈追蹤
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2022-12-11 00:12
是專(zhuān)門(mén)為微服務(wù)架構和云原生架構設計的支持分布式鏈路追蹤的APM系統。Skywalking后臺通過(guò)在應用中加載探針采集應用調用鏈接信息,分析采集的調用鏈接信息,感知應用與服務(wù)的關(guān)系,并生成相應的服務(wù)指標。目前Apache Skywalking(Incubating)支持Java、.Net Core和Node.js語(yǔ)言的監控,保證多語(yǔ)言系統之間持續的分布式調用鏈路。
該探針是Skywalking為Node.js應用提供的自動(dòng)探針。它主要用于監控使用 Node.js 編寫(xiě)的服務(wù)器端應用程序。Skywalking Node.js探針已經(jīng)支持多種插件,如Http、Mysql等,Node. js probe 計劃在接下來(lái)的幾個(gè)版本中提供更多的插件。目前,Node.js 探針開(kāi)始采集支持組件或框架。如果您想支持Skywalking Node.js探針的框架或組件,可以在issue下留下框架或組件名稱(chēng)和測試demo,我們會(huì )盡量提供。支持插件,歡迎大家提出意見(jiàn)和改進(jìn)。
話(huà)不多說(shuō),展示真技術(shù)的時(shí)候到了。本次準備分為單應用和多應用兩部分,單應用測試功能,多應用主要測試跨應用調用鏈功能。
使用框架編寫(xiě),使用egg mysql插件。業(yè)務(wù)流程相對簡(jiǎn)單。主要執行流程為:Controller mdash;服務(wù)—— mysql。下面是通過(guò)Skywalking Node.js探針監控上報數據的截圖: 概覽:拓撲圖:服務(wù)視圖:應用視圖:調用鏈:Span信息:
面對跨應用場(chǎng)景,測試demo分為egg-projectA和egg-projectB兩個(gè)項目。egg-projectA項目通過(guò)http客戶(hù)端調用egg-projectB提供的服務(wù),egg-projectA和egg-projectB分別調用數據庫。一次,下圖是Skywalking UI數據截圖概覽: Topology: egg-projectA服務(wù)圖 egg-projectB服務(wù)圖 egg-projectA應用圖 egg-projectB應用圖 Trace圖 Span圖
從兩個(gè)demo效果可以看出,Skywalking Node.js探針目前支持egg框架追蹤,可以在多個(gè)egg應用之間進(jìn)行跨應用追蹤。在后續版本中,Skywalking Node.js 探針將根據社區反饋不斷完善。
介紹完demo效果,在文章結尾簡(jiǎn)單介紹一下如何安裝Node.js探針。Skywalking Node.js探針為了減少對應用系統的侵入,采用hook的方式,使得Skywalking Node.js探針的安裝非常簡(jiǎn)單,可以最大程度的做到不修改應用源碼。安裝 Skywalking Node.js 探針只需兩個(gè)簡(jiǎn)單的步驟: 第 1 步:下載探針
$npminstallskywalking-nodejs--save 第二步:安裝探針注意:在應用程序啟動(dòng)入口的第一行,添加如下配置:
如果您對Skywalking Node.js探針的使用有任何疑問(wèn),可以通過(guò)以下方式聯(lián)系我們: 1. 提交issue2。發(fā)送電子郵件至
推薦文章:源碼面前沒(méi)有秘密,推薦 9 個(gè)帶你閱讀源碼的開(kāi)源項目
在文章開(kāi)始之前,請大家回憶一下日常開(kāi)發(fā)過(guò)程中使用或依賴(lài)了哪些開(kāi)源項目?有沒(méi)有發(fā)現開(kāi)源項目已經(jīng)完全融入到日常開(kāi)發(fā)中了!
現在大部分程序員的技術(shù)棧和工具箱都或多或少有開(kāi)源項目:大到操作系統,大到小巧精致的圖標。優(yōu)秀的開(kāi)源項目就像是能讓程序員立于不敗之地的“神器”。用一把鋒利的刀把爛攤子剪掉。但強大的“神器”也帶來(lái)了一些問(wèn)題。如果“神器”使用不熟練或者姿勢不對,就會(huì )出現bug,出現難以解決的問(wèn)題。這時(shí)候常見(jiàn)的解決方法是:
要求搜索引擎檢查文檔并提出問(wèn)題
如果以上方法都不能解決問(wèn)題,那只能自己閱讀源碼,尋找解決問(wèn)題的辦法。這條路雖然漫長(cháng)艱辛,但源碼面前沒(méi)有秘密。同時(shí),通過(guò)源碼的體驗,你一定會(huì )變得更強大,而有時(shí)候你只能慢慢走才能發(fā)現之前錯過(guò)的“風(fēng)景”。
今天HelloGitHub帶來(lái)了幾個(gè)知名開(kāi)源項目的源碼注釋和源碼閱讀筆記,帶你閱讀源碼的技巧,點(diǎn)亮閱讀源碼的技巧。這些項目涵蓋:C、C++、Java、Go、Python、JavaScript 編程語(yǔ)言,總的來(lái)說(shuō)總有一款適合你。
雖然有些項目已經(jīng)很久沒(méi)有更新了,讀過(guò)的版本已經(jīng)過(guò)時(shí)了,但是里面的知識還是閃閃發(fā)光的!最后還得帶著(zhù)問(wèn)題去源碼里找答案,不然很難堅持下去。
深入源碼掌握核心技術(shù)不能止步于應用層面。
走得更慢,走得更深。C語(yǔ)言一、redis-3.0-注解(Redis)
星數:7.9k|語(yǔ)言:C
Redis 是一個(gè)內存中、分布式、可選的持久化、開(kāi)源 KV(鍵值)存儲數據庫。
本項目為Redis 3.0版本源碼注釋。
/huangz1990/redis-3.0-annotated2, linux-0.12 (Linux)
Linux 是一種開(kāi)源的類(lèi) UNIX 操作系統。
該項目是 Linux 內核 0.12 版的完整注釋版本。
先在GitHub上找到別人上傳的老版本(0.11)注解源碼,搜索了一下,找到了原作者趙炯老師的網(wǎng)站。第一個(gè)版本于 2003 年發(fā)布,最后一次更新是在 2021 年,至今已維護了 18 年。這個(gè)閱讀Linux源碼的項目雖然沒(méi)有上傳到GitHub,但是內容、評論的源碼、配套的工具都是開(kāi)源的。
/精簡(jiǎn)版/
PDF: /download/CLK-5.0.1-WithCover.pdfC++3, reading-source-code-of-leveldb-1.23 (LevelDB)
星數:15|語(yǔ)言:C++
LevelDB 是由 Google 開(kāi)源的持久化 KV(鍵值)存儲數據庫。
本項目為L(cháng)evelDB 1.23版本源碼閱讀筆記,內容包括:DB運行過(guò)程、STable等文件格式分析及Compaction過(guò)程。
/SmartKeyerror/reading-source-code-of-leveldb-1.23Java4, spring-analysis (Spring)
星數:10k|語(yǔ)言:Java
Spring框架是一個(gè)開(kāi)源的Java全棧應用框架和控制反轉容器實(shí)現,多用于構建企業(yè)級Web應用。
本項目是Spring 4.3.18版本的源碼閱讀筆記,包括源碼注釋、類(lèi)圖、文字說(shuō)明。
/seaswalker/spring-analysis5, learn_netty_source_code (Netty)
星數:1k|語(yǔ)言:Java
Netty 是一個(gè) Java 異步事件驅動(dòng)的網(wǎng)絡(luò )應用程序框架。
本項目是Netty 4.0.33版本源碼分析教程。
/yongshun/learn_netty_source_codeGo6, grpc-read (gRPC)
星數:154|語(yǔ)言:Go
gRPC是由Google發(fā)起的開(kāi)源RPC系統,基于HTTP/2協(xié)議傳輸,使用Protocol Buffers作為接口描述語(yǔ)言。
本項目是gRPC Go版本的實(shí)現:grpc-go源碼解讀。
/lubanproj/grpc-readPython7,帶注釋的 py-projects
星數:312|語(yǔ)言:Python
本項目收錄各種Python web框架的源碼解讀,包括Flask、Sanic、web.py等項目的源碼注釋。
/hhstore/annotated-py-projectsJavaScript8, learnVue (Vue.js)
星數:11k|語(yǔ)言:JavaScript
Vue.js 是一個(gè)用于創(chuàng )建用戶(hù)界面的開(kāi)源 JavaScript 框架。
本項目收錄Vue.js源碼注釋和筆者在學(xué)習Vue.js源碼過(guò)程中的一些心得和收獲。
/answershuto/learnVue9, 反應插圖系列 (React)
Star數:1.3k|語(yǔ)言:TypeScript
React 是一個(gè)用于構建用戶(hù)界面的聲明式、高效且靈活的 JavaScript 庫。
本項目是對react@17.0.2的源碼進(jìn)行圖解解讀,收錄大量圖片。
/7kms/react-illustration-series 最后
以上就是本文的全部?jì)热?。希望今天推薦的開(kāi)源項目,能幫助大家打開(kāi)閱讀源碼、變強的大門(mén)。
這里是@HelloGithub,用于在 GitHub 上分享有趣的入門(mén)級開(kāi)源項目 查看全部
解決方案:Skywalking Node.js 現支持 Egg 框架調用鏈追蹤
是專(zhuān)門(mén)為微服務(wù)架構和云原生架構設計的支持分布式鏈路追蹤的APM系統。Skywalking后臺通過(guò)在應用中加載探針采集應用調用鏈接信息,分析采集的調用鏈接信息,感知應用與服務(wù)的關(guān)系,并生成相應的服務(wù)指標。目前Apache Skywalking(Incubating)支持Java、.Net Core和Node.js語(yǔ)言的監控,保證多語(yǔ)言系統之間持續的分布式調用鏈路。
該探針是Skywalking為Node.js應用提供的自動(dòng)探針。它主要用于監控使用 Node.js 編寫(xiě)的服務(wù)器端應用程序。Skywalking Node.js探針已經(jīng)支持多種插件,如Http、Mysql等,Node. js probe 計劃在接下來(lái)的幾個(gè)版本中提供更多的插件。目前,Node.js 探針開(kāi)始采集支持組件或框架。如果您想支持Skywalking Node.js探針的框架或組件,可以在issue下留下框架或組件名稱(chēng)和測試demo,我們會(huì )盡量提供。支持插件,歡迎大家提出意見(jiàn)和改進(jìn)。
話(huà)不多說(shuō),展示真技術(shù)的時(shí)候到了。本次準備分為單應用和多應用兩部分,單應用測試功能,多應用主要測試跨應用調用鏈功能。

使用框架編寫(xiě),使用egg mysql插件。業(yè)務(wù)流程相對簡(jiǎn)單。主要執行流程為:Controller mdash;服務(wù)—— mysql。下面是通過(guò)Skywalking Node.js探針監控上報數據的截圖: 概覽:拓撲圖:服務(wù)視圖:應用視圖:調用鏈:Span信息:
面對跨應用場(chǎng)景,測試demo分為egg-projectA和egg-projectB兩個(gè)項目。egg-projectA項目通過(guò)http客戶(hù)端調用egg-projectB提供的服務(wù),egg-projectA和egg-projectB分別調用數據庫。一次,下圖是Skywalking UI數據截圖概覽: Topology: egg-projectA服務(wù)圖 egg-projectB服務(wù)圖 egg-projectA應用圖 egg-projectB應用圖 Trace圖 Span圖
從兩個(gè)demo效果可以看出,Skywalking Node.js探針目前支持egg框架追蹤,可以在多個(gè)egg應用之間進(jìn)行跨應用追蹤。在后續版本中,Skywalking Node.js 探針將根據社區反饋不斷完善。

介紹完demo效果,在文章結尾簡(jiǎn)單介紹一下如何安裝Node.js探針。Skywalking Node.js探針為了減少對應用系統的侵入,采用hook的方式,使得Skywalking Node.js探針的安裝非常簡(jiǎn)單,可以最大程度的做到不修改應用源碼。安裝 Skywalking Node.js 探針只需兩個(gè)簡(jiǎn)單的步驟: 第 1 步:下載探針
$npminstallskywalking-nodejs--save 第二步:安裝探針注意:在應用程序啟動(dòng)入口的第一行,添加如下配置:
如果您對Skywalking Node.js探針的使用有任何疑問(wèn),可以通過(guò)以下方式聯(lián)系我們: 1. 提交issue2。發(fā)送電子郵件至
推薦文章:源碼面前沒(méi)有秘密,推薦 9 個(gè)帶你閱讀源碼的開(kāi)源項目
在文章開(kāi)始之前,請大家回憶一下日常開(kāi)發(fā)過(guò)程中使用或依賴(lài)了哪些開(kāi)源項目?有沒(méi)有發(fā)現開(kāi)源項目已經(jīng)完全融入到日常開(kāi)發(fā)中了!
現在大部分程序員的技術(shù)棧和工具箱都或多或少有開(kāi)源項目:大到操作系統,大到小巧精致的圖標。優(yōu)秀的開(kāi)源項目就像是能讓程序員立于不敗之地的“神器”。用一把鋒利的刀把爛攤子剪掉。但強大的“神器”也帶來(lái)了一些問(wèn)題。如果“神器”使用不熟練或者姿勢不對,就會(huì )出現bug,出現難以解決的問(wèn)題。這時(shí)候常見(jiàn)的解決方法是:
要求搜索引擎檢查文檔并提出問(wèn)題
如果以上方法都不能解決問(wèn)題,那只能自己閱讀源碼,尋找解決問(wèn)題的辦法。這條路雖然漫長(cháng)艱辛,但源碼面前沒(méi)有秘密。同時(shí),通過(guò)源碼的體驗,你一定會(huì )變得更強大,而有時(shí)候你只能慢慢走才能發(fā)現之前錯過(guò)的“風(fēng)景”。
今天HelloGitHub帶來(lái)了幾個(gè)知名開(kāi)源項目的源碼注釋和源碼閱讀筆記,帶你閱讀源碼的技巧,點(diǎn)亮閱讀源碼的技巧。這些項目涵蓋:C、C++、Java、Go、Python、JavaScript 編程語(yǔ)言,總的來(lái)說(shuō)總有一款適合你。
雖然有些項目已經(jīng)很久沒(méi)有更新了,讀過(guò)的版本已經(jīng)過(guò)時(shí)了,但是里面的知識還是閃閃發(fā)光的!最后還得帶著(zhù)問(wèn)題去源碼里找答案,不然很難堅持下去。
深入源碼掌握核心技術(shù)不能止步于應用層面。
走得更慢,走得更深。C語(yǔ)言一、redis-3.0-注解(Redis)
星數:7.9k|語(yǔ)言:C
Redis 是一個(gè)內存中、分布式、可選的持久化、開(kāi)源 KV(鍵值)存儲數據庫。
本項目為Redis 3.0版本源碼注釋。
/huangz1990/redis-3.0-annotated2, linux-0.12 (Linux)
Linux 是一種開(kāi)源的類(lèi) UNIX 操作系統。
該項目是 Linux 內核 0.12 版的完整注釋版本。
先在GitHub上找到別人上傳的老版本(0.11)注解源碼,搜索了一下,找到了原作者趙炯老師的網(wǎng)站。第一個(gè)版本于 2003 年發(fā)布,最后一次更新是在 2021 年,至今已維護了 18 年。這個(gè)閱讀Linux源碼的項目雖然沒(méi)有上傳到GitHub,但是內容、評論的源碼、配套的工具都是開(kāi)源的。
/精簡(jiǎn)版/

PDF: /download/CLK-5.0.1-WithCover.pdfC++3, reading-source-code-of-leveldb-1.23 (LevelDB)
星數:15|語(yǔ)言:C++
LevelDB 是由 Google 開(kāi)源的持久化 KV(鍵值)存儲數據庫。
本項目為L(cháng)evelDB 1.23版本源碼閱讀筆記,內容包括:DB運行過(guò)程、STable等文件格式分析及Compaction過(guò)程。
/SmartKeyerror/reading-source-code-of-leveldb-1.23Java4, spring-analysis (Spring)
星數:10k|語(yǔ)言:Java
Spring框架是一個(gè)開(kāi)源的Java全棧應用框架和控制反轉容器實(shí)現,多用于構建企業(yè)級Web應用。
本項目是Spring 4.3.18版本的源碼閱讀筆記,包括源碼注釋、類(lèi)圖、文字說(shuō)明。
/seaswalker/spring-analysis5, learn_netty_source_code (Netty)
星數:1k|語(yǔ)言:Java
Netty 是一個(gè) Java 異步事件驅動(dòng)的網(wǎng)絡(luò )應用程序框架。
本項目是Netty 4.0.33版本源碼分析教程。
/yongshun/learn_netty_source_codeGo6, grpc-read (gRPC)
星數:154|語(yǔ)言:Go
gRPC是由Google發(fā)起的開(kāi)源RPC系統,基于HTTP/2協(xié)議傳輸,使用Protocol Buffers作為接口描述語(yǔ)言。
本項目是gRPC Go版本的實(shí)現:grpc-go源碼解讀。

/lubanproj/grpc-readPython7,帶注釋的 py-projects
星數:312|語(yǔ)言:Python
本項目收錄各種Python web框架的源碼解讀,包括Flask、Sanic、web.py等項目的源碼注釋。
/hhstore/annotated-py-projectsJavaScript8, learnVue (Vue.js)
星數:11k|語(yǔ)言:JavaScript
Vue.js 是一個(gè)用于創(chuàng )建用戶(hù)界面的開(kāi)源 JavaScript 框架。
本項目收錄Vue.js源碼注釋和筆者在學(xué)習Vue.js源碼過(guò)程中的一些心得和收獲。
/answershuto/learnVue9, 反應插圖系列 (React)
Star數:1.3k|語(yǔ)言:TypeScript
React 是一個(gè)用于構建用戶(hù)界面的聲明式、高效且靈活的 JavaScript 庫。
本項目是對react@17.0.2的源碼進(jìn)行圖解解讀,收錄大量圖片。
/7kms/react-illustration-series 最后
以上就是本文的全部?jì)热?。希望今天推薦的開(kāi)源項目,能幫助大家打開(kāi)閱讀源碼、變強的大門(mén)。
這里是@HelloGithub,用于在 GitHub 上分享有趣的入門(mén)級開(kāi)源項目
可怕:牛逼,看完它,你就會(huì )全網(wǎng)爬蟲(chóng)了
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 118 次瀏覽 ? 2022-12-09 20:45
在這個(gè)時(shí)代,如果不懂得使用爬蟲(chóng)技術(shù),是跟不上時(shí)代的。今天給大家推薦的開(kāi)源項目是關(guān)于爬蟲(chóng)的。
本項目是用Python模擬登陸一些大型的網(wǎng)站,以及一些簡(jiǎn)單的爬蟲(chóng)。
本開(kāi)源項目采集了一些主要的網(wǎng)站登錄方式,以及一些網(wǎng)站爬蟲(chóng)程序,有的通過(guò)selenium登錄,有的通過(guò)抓包直接模擬登錄,有的使用scrapy。希望對小白有所幫助,本項目用于研究分享各大網(wǎng)站的模擬登錄方式和爬蟲(chóng)程序。
這個(gè)開(kāi)源項目是:awesome-python-login-model。
本項目使用的技術(shù)和爬蟲(chóng)方式為:模擬登錄基本采用直接登錄或者selenium+webdriver的方式,有些網(wǎng)站直接登錄難度很大,比如空間,bilibili等。如果你使用硒,你會(huì )相對容易。
雖然登錄時(shí)使用了selenium,但是為了效率,我們可以維護登錄后獲取的cookie,然后調用requests或者scrapy進(jìn)行數據采集,這樣數據采集的速度可以得到保證.
目前已經(jīng)完成的網(wǎng)站有:
超級爽,如果你對爬蟲(chóng)感興趣,可以關(guān)注一下這個(gè)開(kāi)源庫。
開(kāi)源項目地址:
給力:感覺(jué)新站收錄不夠快?這還真就不能著(zhù)急
幾乎所有的新網(wǎng)站都有沙盒期。實(shí)際上,這是網(wǎng)站的評估期。每個(gè)搜索引擎都可以使用沙盒效果?;旧?,它是針對新站點(diǎn)的。時(shí)間長(cháng)短不一樣。搜索引擎這樣做是為了防止大量垃圾站被快速收錄,特別是打擊一些黑帽快速建站、收錄套現作弊手段。由于沙盒期的存在,網(wǎng)站提交收錄的狀態(tài)不會(huì )立即出現,一些seo優(yōu)化人員對網(wǎng)站收錄的期望是可以理解的,但是每個(gè)網(wǎng)站的情況不同,所以搜索引擎給出的評估期也是不同的。不同的。
那么,為了加快新站的收錄速度,在提交網(wǎng)站的時(shí)候應該注意些什么呢?
做好百度自動(dòng)提交和主動(dòng)提交
如果你剛上線(xiàn),想被搜索引擎快速抓取,提交鏈接到各大搜索引擎站長(cháng)平臺,讓蜘蛛知道你的網(wǎng)站上線(xiàn)了,它就會(huì )過(guò)來(lái)抓取你的網(wǎng)站。
對于蜘蛛來(lái)說(shuō),頁(yè)面權重越高,可信度越高,爬取的頻率就越高,比如網(wǎng)站的首頁(yè)和內頁(yè)。蜘蛛先爬取網(wǎng)站首頁(yè),因為首頁(yè)權重較高,大部分鏈接指向首頁(yè)。然后通過(guò)首頁(yè)爬取網(wǎng)站的內頁(yè),并不是所有的內頁(yè)蜘蛛都會(huì )爬。
百度自動(dòng)提交和主動(dòng)提交可以加快百度蜘蛛對網(wǎng)站新內容的抓取和抓取。當然,這并不意味著(zhù)網(wǎng)站的新內容一定會(huì )被百度收錄。關(guān)鍵是看內容的質(zhì)量。如果內容質(zhì)量高,那么有了百度的自動(dòng)提交和主動(dòng)提交,新站的內容被收錄的可能性就更大。百度收錄。
補充網(wǎng)站內容,注意更新頻率
如果蜘蛛爬到網(wǎng)站發(fā)現沒(méi)有內容,就會(huì )降低爬取的頻率。而且,新站一定要注意更新頻率。每天最好更新3-5篇文章,文章質(zhì)量一定要高,最好是原創(chuàng )。無(wú)法從新站點(diǎn)開(kāi)始采集
。搜索引擎可以直接識別當前的收錄內容,一些高權重的網(wǎng)站收錄、收錄、排名沒(méi)有任何問(wèn)題,因為對于老網(wǎng)站收錄,搜索引擎更傾向于收錄的目的是提高用戶(hù)的使用體驗.
由于新站沙盒期是一個(gè)信用積累的過(guò)程,無(wú)論是每天更新的文章數量比較統一,還是內容定期更新,比如按照頻率由少到多的更新,都會(huì )給搜索引擎一個(gè)逐漸走向常規印象的網(wǎng)站,當然網(wǎng)站的更新不僅僅是內容,還有外部鏈接的更新。我們建議最好在建站初期做一批高權重的外鏈,以軟文的形式發(fā)布,以提高網(wǎng)站的信任度。
收錄后定期維護網(wǎng)站
定期監控網(wǎng)站的收錄、排名,再對頁(yè)面進(jìn)行排名,監控流量大小,是否有轉化,沒(méi)有轉化咨詢(xún)。通過(guò)iis日志可以看到蜘蛛爬取了哪些內容。iis日志包括百度蜘蛛等。通過(guò)分析iis日志,我們可以得到蜘蛛的類(lèi)型、爬取時(shí)間、爬取的頁(yè)面、爬取內容的大小以及返回的頁(yè)面代碼。不同的代碼表示不同的爬行情況。根據網(wǎng)站的不同情況,檢查頁(yè)面是否存在問(wèn)題,然后進(jìn)行針對性的優(yōu)化。
網(wǎng)站優(yōu)化是一個(gè)長(cháng)期的過(guò)程。這個(gè)階段在新站收錄之前就開(kāi)始了,所以在新站上線(xiàn)之前不要急于求成。一定要按部就班,循序漸進(jìn),不僅是為了搜索引擎百度,也是為了用戶(hù),雙管齊下。返回搜狐查看更多 查看全部
可怕:牛逼,看完它,你就會(huì )全網(wǎng)爬蟲(chóng)了
在這個(gè)時(shí)代,如果不懂得使用爬蟲(chóng)技術(shù),是跟不上時(shí)代的。今天給大家推薦的開(kāi)源項目是關(guān)于爬蟲(chóng)的。
本項目是用Python模擬登陸一些大型的網(wǎng)站,以及一些簡(jiǎn)單的爬蟲(chóng)。
本開(kāi)源項目采集了一些主要的網(wǎng)站登錄方式,以及一些網(wǎng)站爬蟲(chóng)程序,有的通過(guò)selenium登錄,有的通過(guò)抓包直接模擬登錄,有的使用scrapy。希望對小白有所幫助,本項目用于研究分享各大網(wǎng)站的模擬登錄方式和爬蟲(chóng)程序。

這個(gè)開(kāi)源項目是:awesome-python-login-model。
本項目使用的技術(shù)和爬蟲(chóng)方式為:模擬登錄基本采用直接登錄或者selenium+webdriver的方式,有些網(wǎng)站直接登錄難度很大,比如空間,bilibili等。如果你使用硒,你會(huì )相對容易。
雖然登錄時(shí)使用了selenium,但是為了效率,我們可以維護登錄后獲取的cookie,然后調用requests或者scrapy進(jìn)行數據采集,這樣數據采集的速度可以得到保證.
目前已經(jīng)完成的網(wǎng)站有:

超級爽,如果你對爬蟲(chóng)感興趣,可以關(guān)注一下這個(gè)開(kāi)源庫。
開(kāi)源項目地址:
給力:感覺(jué)新站收錄不夠快?這還真就不能著(zhù)急
幾乎所有的新網(wǎng)站都有沙盒期。實(shí)際上,這是網(wǎng)站的評估期。每個(gè)搜索引擎都可以使用沙盒效果?;旧?,它是針對新站點(diǎn)的。時(shí)間長(cháng)短不一樣。搜索引擎這樣做是為了防止大量垃圾站被快速收錄,特別是打擊一些黑帽快速建站、收錄套現作弊手段。由于沙盒期的存在,網(wǎng)站提交收錄的狀態(tài)不會(huì )立即出現,一些seo優(yōu)化人員對網(wǎng)站收錄的期望是可以理解的,但是每個(gè)網(wǎng)站的情況不同,所以搜索引擎給出的評估期也是不同的。不同的。
那么,為了加快新站的收錄速度,在提交網(wǎng)站的時(shí)候應該注意些什么呢?
做好百度自動(dòng)提交和主動(dòng)提交

如果你剛上線(xiàn),想被搜索引擎快速抓取,提交鏈接到各大搜索引擎站長(cháng)平臺,讓蜘蛛知道你的網(wǎng)站上線(xiàn)了,它就會(huì )過(guò)來(lái)抓取你的網(wǎng)站。
對于蜘蛛來(lái)說(shuō),頁(yè)面權重越高,可信度越高,爬取的頻率就越高,比如網(wǎng)站的首頁(yè)和內頁(yè)。蜘蛛先爬取網(wǎng)站首頁(yè),因為首頁(yè)權重較高,大部分鏈接指向首頁(yè)。然后通過(guò)首頁(yè)爬取網(wǎng)站的內頁(yè),并不是所有的內頁(yè)蜘蛛都會(huì )爬。
百度自動(dòng)提交和主動(dòng)提交可以加快百度蜘蛛對網(wǎng)站新內容的抓取和抓取。當然,這并不意味著(zhù)網(wǎng)站的新內容一定會(huì )被百度收錄。關(guān)鍵是看內容的質(zhì)量。如果內容質(zhì)量高,那么有了百度的自動(dòng)提交和主動(dòng)提交,新站的內容被收錄的可能性就更大。百度收錄。
補充網(wǎng)站內容,注意更新頻率
如果蜘蛛爬到網(wǎng)站發(fā)現沒(méi)有內容,就會(huì )降低爬取的頻率。而且,新站一定要注意更新頻率。每天最好更新3-5篇文章,文章質(zhì)量一定要高,最好是原創(chuàng )。無(wú)法從新站點(diǎn)開(kāi)始采集
。搜索引擎可以直接識別當前的收錄內容,一些高權重的網(wǎng)站收錄、收錄、排名沒(méi)有任何問(wèn)題,因為對于老網(wǎng)站收錄,搜索引擎更傾向于收錄的目的是提高用戶(hù)的使用體驗.

由于新站沙盒期是一個(gè)信用積累的過(guò)程,無(wú)論是每天更新的文章數量比較統一,還是內容定期更新,比如按照頻率由少到多的更新,都會(huì )給搜索引擎一個(gè)逐漸走向常規印象的網(wǎng)站,當然網(wǎng)站的更新不僅僅是內容,還有外部鏈接的更新。我們建議最好在建站初期做一批高權重的外鏈,以軟文的形式發(fā)布,以提高網(wǎng)站的信任度。
收錄后定期維護網(wǎng)站
定期監控網(wǎng)站的收錄、排名,再對頁(yè)面進(jìn)行排名,監控流量大小,是否有轉化,沒(méi)有轉化咨詢(xún)。通過(guò)iis日志可以看到蜘蛛爬取了哪些內容。iis日志包括百度蜘蛛等。通過(guò)分析iis日志,我們可以得到蜘蛛的類(lèi)型、爬取時(shí)間、爬取的頁(yè)面、爬取內容的大小以及返回的頁(yè)面代碼。不同的代碼表示不同的爬行情況。根據網(wǎng)站的不同情況,檢查頁(yè)面是否存在問(wèn)題,然后進(jìn)行針對性的優(yōu)化。
網(wǎng)站優(yōu)化是一個(gè)長(cháng)期的過(guò)程。這個(gè)階段在新站收錄之前就開(kāi)始了,所以在新站上線(xiàn)之前不要急于求成。一定要按部就班,循序漸進(jìn),不僅是為了搜索引擎百度,也是為了用戶(hù),雙管齊下。返回搜狐查看更多
解決方案:Dubbo原理解析-監控
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 131 次瀏覽 ? 2022-12-09 07:27
在Dubbo發(fā)布代碼中,自帶了一個(gè)簡(jiǎn)單的監控中心實(shí)現。對于一般的小型企業(yè)來(lái)說(shuō),這個(gè)監控中心應該可以滿(mǎn)足需求。對于那些業(yè)務(wù)量大的大公司,一般都有自己的監控中心,監控中心的功能比較豐富,比如常用的報警短信通知等等。本章講解分析,讓讀者了解一般的監控中心實(shí)現,也讓有自己接入監控中心需求的人知道如何集成自己的監控中心實(shí)現。先從dubbo自帶的監控中心說(shuō)起。
監控中心
1.啟動(dòng)監控中心,我們先看一下dubbo的屬性文件
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
相比provider和consumer,registry和jetty容器啟動(dòng)注冊中心更多
它們都是基于dubbo的spi擴展機制。
SpringContainer容器啟動(dòng)就是加載classpath*:META-INF/spring/*.xml spring的配置文件
"monitorService" class="com.alibaba.dubbo.monitor.simple.SimpleMonitorService">
"statisticsDirectory" value="${dubbo.statistics.directory}"/>
"chartsDirectory" value="${dubbo.charts.directory}"/>
"${dubbo.application.name}"owner="${dubbo.application.owner}"/>
"${dubbo.registry.address}"/>
"dubbo"port="${dubbo.protocol.port}"/>
"com.alibaba.dubbo.monitor.MonitorService"ref="monitorService"delay="-1"/>
"registryService" interface="com.alibaba.dubbo.registry.RegistryService"/>
2.簡(jiǎn)單監控服務(wù)
監控中心配置監控服務(wù)SimpleMonitorService的實(shí)現,作為一個(gè)普通的dubbo服務(wù)暴露給注冊中心,供服務(wù)提供者和服務(wù)消費者調用,并將服務(wù)提供者和服務(wù)消費者的調用數據保存到監控中心.
監控服務(wù)接口定義
publicinterfaceMonitorService {
/**
*監控數據采集。
* 1.支持調用統計:count://host/interface?application=foo&method=foo&provider=10.20.153.11:20880&success=12&failure=2&elapsed=135423423
* 1.1host,application,interface,group,version,method記錄監控源主機,應用,接口,方法信息。
* 1.2 如果是消費者發(fā)送的數據,則添加提供者地址參數,否則添加源消費者地址參數。
* 1.3 success,faulure,elapsed records from last 采集,調用成功次數,調用失敗次數,調用成功總耗時(shí),平均耗時(shí)除以總耗時(shí)成功調用的次數。
*
*@paramstatistics
*/
voidcollect(網(wǎng)址統計);
/**
*監控數據查詢(xún)。
* 1.支持按天查詢(xún):count://host/interface?application=foo&method=foo&side=provider&view=chart&date=2012-07-03
* 1.1 host, application, interface, group, version, method查詢(xún)host,application,interface,method的匹配條件,缺失條件代表全部,host用0.0.0.0代表全部。
* 1.2 side=consumer,provider 查詢(xún)哪一端采集數據被調用,默認兩者都查詢(xún)。
* 1.3 默認為view=summary,返回全天的匯總信息,支持view=chart,表示返回全天的趨勢圖圖片的URL地址,可以展示在其他嵌入的頁(yè)面上系統。
* 1.4 date=2012-07-03 指定查詢(xún)數據的日期,默認為今天。
*
*@paramquery
*@returnstatistics
*/
列表查找(URL查詢(xún));
}
注:查找在開(kāi)源過(guò)程中可能依賴(lài)阿里的系統,沒(méi)有具體實(shí)現。如果需要這個(gè)功能,需要根據接口定義自己實(shí)現
MonitorService的dubbo默認實(shí)現了SimpleMonitorService
遠程調用Collect方法后,將數據url(傳過(guò)來(lái)的url收錄監控需要的數據)保存在一個(gè)阻塞隊列BlockingQueue中
啟動(dòng)定時(shí)任務(wù)記錄統計日志到本地,
字符串文件名=${user.home}/monitor/statistics
+"/"+天
+"/"+統計。獲取服務(wù)接口()
+"/"+統計。獲取參數(方法)
+"/"+消費者
+"/"+ 供應商
+"/"+ 輸入 +"."+ 鍵
這是文件在本地存儲的格式
文件內容保存如圖,保存方法比較耗時(shí)
3.啟動(dòng)定時(shí)任務(wù),使用JFreeeChart繪制圖表并保存路徑
${user.home}\monitor\charts\date\interfaceName\methodName
生成監控數據
注冊中心對外暴露了MonitorService服務(wù)。誰(shuí)調用的,監控中心的數據來(lái)自哪里?下面看看服務(wù)提供者和服務(wù)的消費方式是如何介入監控中心的。
在服務(wù)提供者和消費者的dubbo配置中添加如下配置
通過(guò)注冊表
或直接連接
在構建服務(wù)的調用鏈時(shí),有上述基于監控的擴展。下面我們來(lái)看看這個(gè)類(lèi)。
@Activate(group = {Constants.PROVIDER, Constants.CONSUMER})
//這個(gè)過(guò)濾器在服務(wù)提供者和服務(wù)消費者應用中被激活,即起作用
公共類(lèi) MonitorFilter 實(shí)現 Filter {
私人監視器工廠(chǎng)監視器工廠(chǎng);
公共結果調用(Invokerinvoker,調用調用)拋出 RpcException {
if(invoker.getUrl().hasParameter(Constants.MONITOR_KEY)) {
//有備注監控中心處理
1.獲取調用者的調用上下文
2.記錄開(kāi)始時(shí)間戳
3.并發(fā)數加一
嘗試 {
4.調用調用鏈中的下一步
5. 采集來(lái)電信息
} 最后 {
6.并發(fā)數減一
}
} 別的 {
//沒(méi)有配置監控中心,直接調用
返回 invoker.inovke(調用);
}
}
關(guān)于上述第 5 點(diǎn)的信息 采集
1.計算調用耗時(shí)
2.獲取并發(fā)數
3.獲取服務(wù)名稱(chēng)
4.獲取方法名
5.判斷是服務(wù)消費者還是服務(wù)提供者監聽(tīng)
6.從工廠(chǎng)類(lèi)monitorFactory.getMonitor(監控url)獲取DubboMonitor對象,
構造Url調用監控中心服務(wù),url收錄監控中心需要的監控信息
monitor.collect(newURL(常量.COUNT_PROTOCOL,
NetUtils.getLocalHost(), 本地端口,
服務(wù)+“/”+方法,
監控服務(wù)。申請,申請,
監控服務(wù)。界面、服務(wù)、
MonitorService.METHOD,方法,
遠程鍵,遠程值,
錯誤?MonitorService.FAILURE:MonitorService.SUCCESS,“1”,
MonitorService.ELAPSED, String.valueOf(elapsed),
MonitorService.CONCURRENT,String.valueOf(并發(fā)),
Constants.INPUT_KEY,輸入,
常數。OUTPUT_KEY, 輸出));
DubboMonitor是對調用監控中心的服務(wù)的封裝。之所以不直接調用監控中心,而是通過(guò)DubboMonitor來(lái)調用,是因為監控是一個(gè)附加功能,不應該影響主鏈路,不應該破壞主鏈路的新性能。DubboMonitor采集收到數據后,通過(guò)任務(wù)定時(shí)調用監控中心服務(wù),將數據提交給監控中心。
注冊表容器
監控中心指的是注冊中心對外暴露的RegistryService服務(wù),主要被下面的RegistryContainer使用。
RegistryContainer主要從注冊中心采集服務(wù)、組、版本信息,并在注冊中心數據發(fā)生變化時(shí)注冊回調以更新監控中心。
我們看一下RegistryContainer的start方法流程:
1.通過(guò)SpringContainer獲取之前初始化的RegistryService,獲取注冊中心的遠程代理服務(wù)
2、構造訂閱注冊中心數據的url,可以看到下面的url都是訂閱服務(wù)提供者和服務(wù)消費者的服務(wù)
subscribeUrl =newURL(Constants.ADMIN_PROTOCOL, NetUtils.getLocalHost(), 0,"",
Constants.INTERFACE_KEY, Constants.ANY_VALUE, //所有服務(wù)
Constants.GROUP_KEY, Constants.ANY_VALUE, //所有組
Constants.VERSION_KEY, Constants.ANY_VALUE, //所有版本
Constants.CLASSIFIER_KEY, Constants.ANY_VALUE, //所有類(lèi)別
Constants.CATEGORY_KEY,Constants.PROVIDERS_CATEGORY +"," + Constants.CONSUMERS_CATEGORY,//服務(wù)提供者和服務(wù)消費者
Constants.CHECK_KEY, String.valueOf(false));//不校驗
3、調用注冊中心服務(wù)registry.subscirbe(subscribeUrl, listener)訂閱所有數據,NotifyListener作為回調服務(wù)暴露在監控中心,由注冊中心回調
回調接口NotifyListener實(shí)現的功能主要是對服務(wù)提供者和服務(wù)消費者進(jìn)行分類(lèi),采集服務(wù)提供者或消費者的服務(wù)名稱(chēng)、服務(wù)url、系統相關(guān)信息。同時(shí)提供了一系列的方法供注冊中心調用和查詢(xún)。
Jetty容器
監控中心將采集收到的信息通過(guò)內置的jetty展示給用戶(hù)。這里為了不依賴(lài)jsp、velocity、freemarker等技術(shù)編寫(xiě)web應用,將html、css、js打印在servlet中
JettyContainer的start方法啟動(dòng)內置的jettyweb容器
將監控中心訪(fǎng)問(wèn)的本地文件目錄設置為ResourceFilter,并將此filter的訪(fǎng)問(wèn)映射到j(luò )etty。ResourceFilter主要是讀取本地保存的JFreeChart繪制的圖片發(fā)送給瀏覽器。
配置監控中心的前端控制器PageServlet,以及這個(gè)servlet到j(luò )etty的訪(fǎng)問(wèn)映射。之所以叫PageServet是前端控制器,和其他mvc框架一樣,用來(lái)分發(fā)具體的業(yè)務(wù)類(lèi)
PageServet的init初始化方法在web容器啟動(dòng)時(shí)加載所有的頁(yè)面處理器PageHandler,用于根據不同的請求生成不同的頁(yè)面。前面說(shuō)過(guò),頁(yè)面html是通過(guò)java代碼打印出來(lái)的。
PageServet的init方法加載所有PageHandler時(shí),會(huì )判斷PageHandler上是否有@Menu注解,將注解的PageHandler添加到集合中,供HomePageHandler生成首頁(yè)和各頁(yè)面的uri
PageServet的doGet和doPost接收瀏覽器請求,請求是xx.hml的形式,xx是PageHandler擴展的key,找到對應的PageHandler繪制對應的頁(yè)面返回給瀏覽器。
@Menu(name = "主頁(yè)", desc = "主頁(yè)", order = Integer.MIN_VALUE)
//注解的name和desc屬性在頁(yè)面上顯示給用戶(hù)
公共類(lèi) HomePageHandler 實(shí)現 PageHandler {
公共頁(yè)面句柄(URL url){
列表> 行 = 新的 ArrayList>();
for (PageHandler handler :PageServlet.getInstance().getMenus()) {
String uri =ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);//這個(gè)uri其實(shí)就是PageHandler擴展配置的key,用于頁(yè)面請求選擇特定的handler進(jìn)行繪制 //特定頁(yè)面
菜單 menu =handler.getClass().getAnnotation(Menu.class);
列表行 = newArrayList();
row.add("" + menu.name() +"");
row.add(menu.desc());
行。添加(行);
}
return new Page("Home", "Menus", new String[]{"Menu Name", "Menu Desc"}, rows);//一個(gè)Page實(shí)體是一個(gè)頁(yè)面,收錄了主HomePage的所有頁(yè)面內容
}
}
com.alibaba.dubbo.container.page.PageHandler文件中PageHandler的擴展配置
index=com.alibaba.dubbo.container.page.pages.HomePageHandler
providers=com.alibaba.dubbo.monitor.simple.pages.ProvidersPageHandler
消費者=com.alibaba.dubbo.monitor.simple.pages.ConsumersPageHandler
. . . .
下面截圖看看dubbo提供了哪些擴展
下面截圖幾張,看看監控中心頁(yè)面。
解決方案:論文替換詞軟件
論文代寫(xiě)軟件
寫(xiě)作文同義詞替換軟件有費大儒同義詞
飛達路同義詞替換工具最新版是一款可以幫助用戶(hù)替換同義詞的軟件。飛達路同義詞替換工具正式版可以讓您的替換更加DIY,更加個(gè)性化。是站長(cháng)朋友更新網(wǎng)站數據的好幫手。飛達路同義詞替換工具最新版界面簡(jiǎn)潔,操作簡(jiǎn)單,簡(jiǎn)單易用,用戶(hù)可以放心使用。
1.支持偽原創(chuàng )各種文章,只需要輸入舊的文章內容,一鍵生成原創(chuàng ),然后偽原創(chuàng )
2. 支持偽原創(chuàng )的多種方式,包括同義詞替換、加擾文章、生成原創(chuàng )
3. 支持多種文章混排選項,包括清除換行、清除空格、添加新的關(guān)鍵詞
4.支持詞庫管理,添加新詞,替換原詞,下載詞庫
5.支持批量偽原創(chuàng ),輸入批量生成地址和網(wǎng)絡(luò )提交地址,即可批量偽原創(chuàng )本地源目錄或網(wǎng)絡(luò )下載列表
有什么好的編輯論文的軟件嗎?
PaperEasy論文修改助手。
使用操作簡(jiǎn)單,一鍵修改,無(wú)需復雜操作,無(wú)需立即下載使用,綠色支持免費試用。大學(xué)生修改論文,降低論文重復率的神器!界面清爽,無(wú)廣告。
PaperEasy論文編輯助手可以有效解決論文重復率高和無(wú)詞無(wú)詞的困境,可以快速將重復的原句改成新的原創(chuàng )內容??焖?、智能、高效!
中華人民共和國國家標準VDC 001.81和GB 7713-87將學(xué)術(shù)論文定義為:
學(xué)術(shù)論文是對某一學(xué)科在實(shí)驗、理論或觀(guān)察方面有新的科學(xué)研究成果或創(chuàng )新見(jiàn)解的知識和科學(xué)記錄;或在實(shí)踐中應用已知原理所取得的新進(jìn)展的科學(xué)總結。提供書(shū)面文件供學(xué)術(shù)會(huì )議閱讀、交流或討論;或在學(xué)術(shù)期刊上發(fā)表;或用于其他目的。
在社會(huì )科學(xué)領(lǐng)域,人們通常把表達科學(xué)研究成果的論文稱(chēng)為學(xué)術(shù)論文。
學(xué)術(shù)論文具有四個(gè)特點(diǎn):①學(xué)術(shù)性、②科學(xué)性、③創(chuàng )造性、④理論性。
1.學(xué)術(shù)
學(xué)術(shù)論文的學(xué)術(shù)性要求作者在論證時(shí)不得有個(gè)人好惡,不得主觀(guān)臆斷。他實(shí)際上必須從客觀(guān)現實(shí)出發(fā),并從中得出現實(shí)的結論。在證據方面,要盡可能多地掌握信息,以最充分、最確鑿、最有力的論據作為論證的依據。論證時(shí),一定要慎重思考,論證嚴謹。
二、科學(xué)
學(xué)術(shù)論文在形式上是議論文,但不同于一般的議論文。他們必須有自己的理論體系,而不僅僅是材料清單。要對大量的事實(shí)和材料進(jìn)行分析研究,提高感性認識。到理性認識。
一般來(lái)說(shuō),學(xué)術(shù)論文都帶有議論文的色彩,或者說(shuō)帶有議論文的色彩。論文內容必須符合歷史唯物主義和唯物辯證法,符合“實(shí)事求是”、“有針對性”、“分析與綜合”相結合的科學(xué)研究方法。
3.創(chuàng )意
科學(xué)研究是對新知識的探索。創(chuàng )造力是科學(xué)研究的生命。學(xué)術(shù)論文的創(chuàng )造性在于作者必須有自己獨到的見(jiàn)解,能夠提出新的觀(guān)點(diǎn)和新的理論。
這是因為科學(xué)的本質(zhì)是“革命的、非正統的”,“科學(xué)方法主要是發(fā)現新現象和形成新理論的手段,舊的科學(xué)理論必然不斷被新理論推翻”。(Stephen Mason) 因此,沒(méi)有創(chuàng )造力,學(xué)術(shù)論文就沒(méi)有科學(xué)價(jià)值。
4.理論
它是指需要用通俗易懂的語(yǔ)言來(lái)表達科學(xué)原理,不僅要流暢,而且要準確、清晰、和諧、生動(dòng)。
有哪些好用的論文翻譯軟件?(二)
6.海詞在線(xiàn)詞典
海詞在線(xiàn)詞典由在美國印第安納大學(xué)留學(xué)的中國留學(xué)生范建淼所創(chuàng )。于2003年11月27日(美國感恩節)正式使用。詞匯主要由電腦生成,準確率弱于iciba,但提供大量例句,并有發(fā)音,可以幫助糾正發(fā)音問(wèn)題。海詞還提供了大量的小工具,您可以將它們添加到您的博客或個(gè)人網(wǎng)站中,以增加更多豐富多彩的功能。
7.百度詞典
百度詞典的定義來(lái)自一點(diǎn)通,并沒(méi)有做太大的改進(jìn)。沒(méi)有拼寫(xiě)提示也沒(méi)有發(fā)音,基本沒(méi)有特點(diǎn)。類(lèi)似于手冊的參考書(shū)。
8.免費翻譯
國外的一個(gè)免費翻譯工具,感覺(jué)這個(gè)工具的翻譯結果還是比較滿(mǎn)意的。翻譯時(shí)可以選擇“人工翻譯”和“自動(dòng)翻譯”,“人工翻譯”為付費服務(wù)。
9. 生物醫學(xué)詞典
生物醫學(xué)詞典為生物醫學(xué)領(lǐng)域的專(zhuān)業(yè)人士提供寫(xiě)作、閱讀和翻譯的便利,最終實(shí)現了一部自我編輯、自我完善的公共詞典。用戶(hù)可以使用簡(jiǎn)體中文、英文、繁體中文和縮略語(yǔ)的任意組合進(jìn)行模糊查詢(xún)。目前,收錄的字數已超過(guò)120萬(wàn),并且還在不斷增加中。 查看全部
解決方案:Dubbo原理解析-監控
在Dubbo發(fā)布代碼中,自帶了一個(gè)簡(jiǎn)單的監控中心實(shí)現。對于一般的小型企業(yè)來(lái)說(shuō),這個(gè)監控中心應該可以滿(mǎn)足需求。對于那些業(yè)務(wù)量大的大公司,一般都有自己的監控中心,監控中心的功能比較豐富,比如常用的報警短信通知等等。本章講解分析,讓讀者了解一般的監控中心實(shí)現,也讓有自己接入監控中心需求的人知道如何集成自己的監控中心實(shí)現。先從dubbo自帶的監控中心說(shuō)起。
監控中心
1.啟動(dòng)監控中心,我們先看一下dubbo的屬性文件
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
相比provider和consumer,registry和jetty容器啟動(dòng)注冊中心更多
它們都是基于dubbo的spi擴展機制。
SpringContainer容器啟動(dòng)就是加載classpath*:META-INF/spring/*.xml spring的配置文件
"monitorService" class="com.alibaba.dubbo.monitor.simple.SimpleMonitorService">
"statisticsDirectory" value="${dubbo.statistics.directory}"/>
"chartsDirectory" value="${dubbo.charts.directory}"/>
"${dubbo.application.name}"owner="${dubbo.application.owner}"/>
"${dubbo.registry.address}"/>
"dubbo"port="${dubbo.protocol.port}"/>
"com.alibaba.dubbo.monitor.MonitorService"ref="monitorService"delay="-1"/>
"registryService" interface="com.alibaba.dubbo.registry.RegistryService"/>
2.簡(jiǎn)單監控服務(wù)
監控中心配置監控服務(wù)SimpleMonitorService的實(shí)現,作為一個(gè)普通的dubbo服務(wù)暴露給注冊中心,供服務(wù)提供者和服務(wù)消費者調用,并將服務(wù)提供者和服務(wù)消費者的調用數據保存到監控中心.
監控服務(wù)接口定義
publicinterfaceMonitorService {
/**
*監控數據采集。
* 1.支持調用統計:count://host/interface?application=foo&method=foo&provider=10.20.153.11:20880&success=12&failure=2&elapsed=135423423
* 1.1host,application,interface,group,version,method記錄監控源主機,應用,接口,方法信息。
* 1.2 如果是消費者發(fā)送的數據,則添加提供者地址參數,否則添加源消費者地址參數。
* 1.3 success,faulure,elapsed records from last 采集,調用成功次數,調用失敗次數,調用成功總耗時(shí),平均耗時(shí)除以總耗時(shí)成功調用的次數。
*
*@paramstatistics
*/
voidcollect(網(wǎng)址統計);
/**
*監控數據查詢(xún)。
* 1.支持按天查詢(xún):count://host/interface?application=foo&method=foo&side=provider&view=chart&date=2012-07-03
* 1.1 host, application, interface, group, version, method查詢(xún)host,application,interface,method的匹配條件,缺失條件代表全部,host用0.0.0.0代表全部。
* 1.2 side=consumer,provider 查詢(xún)哪一端采集數據被調用,默認兩者都查詢(xún)。
* 1.3 默認為view=summary,返回全天的匯總信息,支持view=chart,表示返回全天的趨勢圖圖片的URL地址,可以展示在其他嵌入的頁(yè)面上系統。
* 1.4 date=2012-07-03 指定查詢(xún)數據的日期,默認為今天。
*
*@paramquery
*@returnstatistics
*/
列表查找(URL查詢(xún));
}
注:查找在開(kāi)源過(guò)程中可能依賴(lài)阿里的系統,沒(méi)有具體實(shí)現。如果需要這個(gè)功能,需要根據接口定義自己實(shí)現
MonitorService的dubbo默認實(shí)現了SimpleMonitorService
遠程調用Collect方法后,將數據url(傳過(guò)來(lái)的url收錄監控需要的數據)保存在一個(gè)阻塞隊列BlockingQueue中
啟動(dòng)定時(shí)任務(wù)記錄統計日志到本地,
字符串文件名=${user.home}/monitor/statistics

+"/"+天
+"/"+統計。獲取服務(wù)接口()
+"/"+統計。獲取參數(方法)
+"/"+消費者
+"/"+ 供應商
+"/"+ 輸入 +"."+ 鍵
這是文件在本地存儲的格式
文件內容保存如圖,保存方法比較耗時(shí)
3.啟動(dòng)定時(shí)任務(wù),使用JFreeeChart繪制圖表并保存路徑
${user.home}\monitor\charts\date\interfaceName\methodName
生成監控數據
注冊中心對外暴露了MonitorService服務(wù)。誰(shuí)調用的,監控中心的數據來(lái)自哪里?下面看看服務(wù)提供者和服務(wù)的消費方式是如何介入監控中心的。
在服務(wù)提供者和消費者的dubbo配置中添加如下配置
通過(guò)注冊表
或直接連接
在構建服務(wù)的調用鏈時(shí),有上述基于監控的擴展。下面我們來(lái)看看這個(gè)類(lèi)。
@Activate(group = {Constants.PROVIDER, Constants.CONSUMER})
//這個(gè)過(guò)濾器在服務(wù)提供者和服務(wù)消費者應用中被激活,即起作用
公共類(lèi) MonitorFilter 實(shí)現 Filter {
私人監視器工廠(chǎng)監視器工廠(chǎng);
公共結果調用(Invokerinvoker,調用調用)拋出 RpcException {
if(invoker.getUrl().hasParameter(Constants.MONITOR_KEY)) {
//有備注監控中心處理
1.獲取調用者的調用上下文
2.記錄開(kāi)始時(shí)間戳
3.并發(fā)數加一
嘗試 {
4.調用調用鏈中的下一步
5. 采集來(lái)電信息
} 最后 {
6.并發(fā)數減一
}
} 別的 {
//沒(méi)有配置監控中心,直接調用
返回 invoker.inovke(調用);
}
}
關(guān)于上述第 5 點(diǎn)的信息 采集
1.計算調用耗時(shí)
2.獲取并發(fā)數
3.獲取服務(wù)名稱(chēng)
4.獲取方法名
5.判斷是服務(wù)消費者還是服務(wù)提供者監聽(tīng)
6.從工廠(chǎng)類(lèi)monitorFactory.getMonitor(監控url)獲取DubboMonitor對象,
構造Url調用監控中心服務(wù),url收錄監控中心需要的監控信息
monitor.collect(newURL(常量.COUNT_PROTOCOL,
NetUtils.getLocalHost(), 本地端口,
服務(wù)+“/”+方法,
監控服務(wù)。申請,申請,
監控服務(wù)。界面、服務(wù)、
MonitorService.METHOD,方法,

遠程鍵,遠程值,
錯誤?MonitorService.FAILURE:MonitorService.SUCCESS,“1”,
MonitorService.ELAPSED, String.valueOf(elapsed),
MonitorService.CONCURRENT,String.valueOf(并發(fā)),
Constants.INPUT_KEY,輸入,
常數。OUTPUT_KEY, 輸出));
DubboMonitor是對調用監控中心的服務(wù)的封裝。之所以不直接調用監控中心,而是通過(guò)DubboMonitor來(lái)調用,是因為監控是一個(gè)附加功能,不應該影響主鏈路,不應該破壞主鏈路的新性能。DubboMonitor采集收到數據后,通過(guò)任務(wù)定時(shí)調用監控中心服務(wù),將數據提交給監控中心。
注冊表容器
監控中心指的是注冊中心對外暴露的RegistryService服務(wù),主要被下面的RegistryContainer使用。
RegistryContainer主要從注冊中心采集服務(wù)、組、版本信息,并在注冊中心數據發(fā)生變化時(shí)注冊回調以更新監控中心。
我們看一下RegistryContainer的start方法流程:
1.通過(guò)SpringContainer獲取之前初始化的RegistryService,獲取注冊中心的遠程代理服務(wù)
2、構造訂閱注冊中心數據的url,可以看到下面的url都是訂閱服務(wù)提供者和服務(wù)消費者的服務(wù)
subscribeUrl =newURL(Constants.ADMIN_PROTOCOL, NetUtils.getLocalHost(), 0,"",
Constants.INTERFACE_KEY, Constants.ANY_VALUE, //所有服務(wù)
Constants.GROUP_KEY, Constants.ANY_VALUE, //所有組
Constants.VERSION_KEY, Constants.ANY_VALUE, //所有版本
Constants.CLASSIFIER_KEY, Constants.ANY_VALUE, //所有類(lèi)別
Constants.CATEGORY_KEY,Constants.PROVIDERS_CATEGORY +"," + Constants.CONSUMERS_CATEGORY,//服務(wù)提供者和服務(wù)消費者
Constants.CHECK_KEY, String.valueOf(false));//不校驗
3、調用注冊中心服務(wù)registry.subscirbe(subscribeUrl, listener)訂閱所有數據,NotifyListener作為回調服務(wù)暴露在監控中心,由注冊中心回調
回調接口NotifyListener實(shí)現的功能主要是對服務(wù)提供者和服務(wù)消費者進(jìn)行分類(lèi),采集服務(wù)提供者或消費者的服務(wù)名稱(chēng)、服務(wù)url、系統相關(guān)信息。同時(shí)提供了一系列的方法供注冊中心調用和查詢(xún)。
Jetty容器
監控中心將采集收到的信息通過(guò)內置的jetty展示給用戶(hù)。這里為了不依賴(lài)jsp、velocity、freemarker等技術(shù)編寫(xiě)web應用,將html、css、js打印在servlet中
JettyContainer的start方法啟動(dòng)內置的jettyweb容器
將監控中心訪(fǎng)問(wèn)的本地文件目錄設置為ResourceFilter,并將此filter的訪(fǎng)問(wèn)映射到j(luò )etty。ResourceFilter主要是讀取本地保存的JFreeChart繪制的圖片發(fā)送給瀏覽器。
配置監控中心的前端控制器PageServlet,以及這個(gè)servlet到j(luò )etty的訪(fǎng)問(wèn)映射。之所以叫PageServet是前端控制器,和其他mvc框架一樣,用來(lái)分發(fā)具體的業(yè)務(wù)類(lèi)
PageServet的init初始化方法在web容器啟動(dòng)時(shí)加載所有的頁(yè)面處理器PageHandler,用于根據不同的請求生成不同的頁(yè)面。前面說(shuō)過(guò),頁(yè)面html是通過(guò)java代碼打印出來(lái)的。
PageServet的init方法加載所有PageHandler時(shí),會(huì )判斷PageHandler上是否有@Menu注解,將注解的PageHandler添加到集合中,供HomePageHandler生成首頁(yè)和各頁(yè)面的uri
PageServet的doGet和doPost接收瀏覽器請求,請求是xx.hml的形式,xx是PageHandler擴展的key,找到對應的PageHandler繪制對應的頁(yè)面返回給瀏覽器。
@Menu(name = "主頁(yè)", desc = "主頁(yè)", order = Integer.MIN_VALUE)
//注解的name和desc屬性在頁(yè)面上顯示給用戶(hù)
公共類(lèi) HomePageHandler 實(shí)現 PageHandler {
公共頁(yè)面句柄(URL url){
列表> 行 = 新的 ArrayList>();
for (PageHandler handler :PageServlet.getInstance().getMenus()) {
String uri =ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);//這個(gè)uri其實(shí)就是PageHandler擴展配置的key,用于頁(yè)面請求選擇特定的handler進(jìn)行繪制 //特定頁(yè)面
菜單 menu =handler.getClass().getAnnotation(Menu.class);
列表行 = newArrayList();
row.add("" + menu.name() +"");
row.add(menu.desc());
行。添加(行);
}
return new Page("Home", "Menus", new String[]{"Menu Name", "Menu Desc"}, rows);//一個(gè)Page實(shí)體是一個(gè)頁(yè)面,收錄了主HomePage的所有頁(yè)面內容
}
}
com.alibaba.dubbo.container.page.PageHandler文件中PageHandler的擴展配置
index=com.alibaba.dubbo.container.page.pages.HomePageHandler
providers=com.alibaba.dubbo.monitor.simple.pages.ProvidersPageHandler
消費者=com.alibaba.dubbo.monitor.simple.pages.ConsumersPageHandler
. . . .
下面截圖看看dubbo提供了哪些擴展
下面截圖幾張,看看監控中心頁(yè)面。
解決方案:論文替換詞軟件
論文代寫(xiě)軟件
寫(xiě)作文同義詞替換軟件有費大儒同義詞
飛達路同義詞替換工具最新版是一款可以幫助用戶(hù)替換同義詞的軟件。飛達路同義詞替換工具正式版可以讓您的替換更加DIY,更加個(gè)性化。是站長(cháng)朋友更新網(wǎng)站數據的好幫手。飛達路同義詞替換工具最新版界面簡(jiǎn)潔,操作簡(jiǎn)單,簡(jiǎn)單易用,用戶(hù)可以放心使用。
1.支持偽原創(chuàng )各種文章,只需要輸入舊的文章內容,一鍵生成原創(chuàng ),然后偽原創(chuàng )
2. 支持偽原創(chuàng )的多種方式,包括同義詞替換、加擾文章、生成原創(chuàng )
3. 支持多種文章混排選項,包括清除換行、清除空格、添加新的關(guān)鍵詞
4.支持詞庫管理,添加新詞,替換原詞,下載詞庫
5.支持批量偽原創(chuàng ),輸入批量生成地址和網(wǎng)絡(luò )提交地址,即可批量偽原創(chuàng )本地源目錄或網(wǎng)絡(luò )下載列表
有什么好的編輯論文的軟件嗎?
PaperEasy論文修改助手。
使用操作簡(jiǎn)單,一鍵修改,無(wú)需復雜操作,無(wú)需立即下載使用,綠色支持免費試用。大學(xué)生修改論文,降低論文重復率的神器!界面清爽,無(wú)廣告。

PaperEasy論文編輯助手可以有效解決論文重復率高和無(wú)詞無(wú)詞的困境,可以快速將重復的原句改成新的原創(chuàng )內容??焖?、智能、高效!
中華人民共和國國家標準VDC 001.81和GB 7713-87將學(xué)術(shù)論文定義為:
學(xué)術(shù)論文是對某一學(xué)科在實(shí)驗、理論或觀(guān)察方面有新的科學(xué)研究成果或創(chuàng )新見(jiàn)解的知識和科學(xué)記錄;或在實(shí)踐中應用已知原理所取得的新進(jìn)展的科學(xué)總結。提供書(shū)面文件供學(xué)術(shù)會(huì )議閱讀、交流或討論;或在學(xué)術(shù)期刊上發(fā)表;或用于其他目的。
在社會(huì )科學(xué)領(lǐng)域,人們通常把表達科學(xué)研究成果的論文稱(chēng)為學(xué)術(shù)論文。
學(xué)術(shù)論文具有四個(gè)特點(diǎn):①學(xué)術(shù)性、②科學(xué)性、③創(chuàng )造性、④理論性。
1.學(xué)術(shù)
學(xué)術(shù)論文的學(xué)術(shù)性要求作者在論證時(shí)不得有個(gè)人好惡,不得主觀(guān)臆斷。他實(shí)際上必須從客觀(guān)現實(shí)出發(fā),并從中得出現實(shí)的結論。在證據方面,要盡可能多地掌握信息,以最充分、最確鑿、最有力的論據作為論證的依據。論證時(shí),一定要慎重思考,論證嚴謹。
二、科學(xué)
學(xué)術(shù)論文在形式上是議論文,但不同于一般的議論文。他們必須有自己的理論體系,而不僅僅是材料清單。要對大量的事實(shí)和材料進(jìn)行分析研究,提高感性認識。到理性認識。
一般來(lái)說(shuō),學(xué)術(shù)論文都帶有議論文的色彩,或者說(shuō)帶有議論文的色彩。論文內容必須符合歷史唯物主義和唯物辯證法,符合“實(shí)事求是”、“有針對性”、“分析與綜合”相結合的科學(xué)研究方法。
3.創(chuàng )意
科學(xué)研究是對新知識的探索。創(chuàng )造力是科學(xué)研究的生命。學(xué)術(shù)論文的創(chuàng )造性在于作者必須有自己獨到的見(jiàn)解,能夠提出新的觀(guān)點(diǎn)和新的理論。

這是因為科學(xué)的本質(zhì)是“革命的、非正統的”,“科學(xué)方法主要是發(fā)現新現象和形成新理論的手段,舊的科學(xué)理論必然不斷被新理論推翻”。(Stephen Mason) 因此,沒(méi)有創(chuàng )造力,學(xué)術(shù)論文就沒(méi)有科學(xué)價(jià)值。
4.理論
它是指需要用通俗易懂的語(yǔ)言來(lái)表達科學(xué)原理,不僅要流暢,而且要準確、清晰、和諧、生動(dòng)。
有哪些好用的論文翻譯軟件?(二)
6.海詞在線(xiàn)詞典
海詞在線(xiàn)詞典由在美國印第安納大學(xué)留學(xué)的中國留學(xué)生范建淼所創(chuàng )。于2003年11月27日(美國感恩節)正式使用。詞匯主要由電腦生成,準確率弱于iciba,但提供大量例句,并有發(fā)音,可以幫助糾正發(fā)音問(wèn)題。海詞還提供了大量的小工具,您可以將它們添加到您的博客或個(gè)人網(wǎng)站中,以增加更多豐富多彩的功能。
7.百度詞典
百度詞典的定義來(lái)自一點(diǎn)通,并沒(méi)有做太大的改進(jìn)。沒(méi)有拼寫(xiě)提示也沒(méi)有發(fā)音,基本沒(méi)有特點(diǎn)。類(lèi)似于手冊的參考書(shū)。
8.免費翻譯
國外的一個(gè)免費翻譯工具,感覺(jué)這個(gè)工具的翻譯結果還是比較滿(mǎn)意的。翻譯時(shí)可以選擇“人工翻譯”和“自動(dòng)翻譯”,“人工翻譯”為付費服務(wù)。
9. 生物醫學(xué)詞典
生物醫學(xué)詞典為生物醫學(xué)領(lǐng)域的專(zhuān)業(yè)人士提供寫(xiě)作、閱讀和翻譯的便利,最終實(shí)現了一部自我編輯、自我完善的公共詞典。用戶(hù)可以使用簡(jiǎn)體中文、英文、繁體中文和縮略語(yǔ)的任意組合進(jìn)行模糊查詢(xún)。目前,收錄的字數已超過(guò)120萬(wàn),并且還在不斷增加中。
分享文章:織夢(mèng)調用文章屬性的名稱(chēng)(調用自定義屬性名稱(chēng))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 79 次瀏覽 ? 2022-12-07 02:44
接下來(lái),我們將與您分享如何在織夢(mèng)文章頁(yè)面中調用相關(guān)屬性名稱(chēng):
我們可以看到,在這個(gè)標題之后就是我們需要的屬性的名稱(chēng),通過(guò)代碼分析我們可以看到調用的代碼是
{dede:field.flag function='IsCommendArchives(@me)'/}
我們可以看到這個(gè)調用需要一個(gè)函數:IsCommendArchives(@me)。
此函數是將文章中獲取的標志的內容轉換為相應的名稱(chēng)。功能內容為:
函數是表彰檔案($iscommend)
{
全球$arcatts;
$sn = '';
foreach($arcatts as $k=>$v)
{
$v = cn_substr($v, 2);
$sn .= (preg_match(“#”.$k.“ #”, $iscommend) ? ','.$v : '');
}
$sn = 修剪($sn);
if($sn=='') 返回 '';
否則返回“$sn”;
}
其中,$k是屬性名,我們可以選擇用“,”分隔,也支持HTML編寫(xiě),更靈活大家在別處調用,織夢(mèng)模板
我給你舉個(gè)例子:
織夢(mèng)QQ群二次開(kāi)發(fā)
內容分享:公眾號文章采集的兩種方案,搜狗和微信App采集
更新于 2018-06-05
許多答案沒(méi)有用或不再有效 采集 客戶(hù)編號,這是我的解決方案。
如果你只采集公眾號文章電話(huà)號碼采集軟件,要求不是很?chē)栏?,可以上搜狗。這種方案成本低,比較簡(jiǎn)單,但缺點(diǎn)也很明顯。這是一個(gè)臨時(shí)的 文章 鏈接。如果要轉為永久鏈接,還是要通過(guò)app界面。.
另一種方案是從微信APP本身采集,成本會(huì )高很多,但是可以采集的數據類(lèi)型很多,包括但不限于:歷史頁(yè)面文章 ,閱讀喜歡,評論等。
為了更直觀(guān),我做了一張圖來(lái)對比一下搜狗和微信小程序采集的兩個(gè)方案。
這兩種方案我都是自己用的,也都提供了封裝好的接口。具體需求會(huì )根據成本和場(chǎng)景選擇使用哪一種。
簡(jiǎn)單的一句話(huà)總結就是,搜狗有微信APP,搜狗沒(méi)有微信APP,但是微信方案的軟硬成本要比搜狗方案大很多。
順便說(shuō)一句,圖片提到了微信中的搜索界面。我自己已經(jīng)實(shí)現了,可以獲取搜索公眾號和文章的返回數據,作為練習,因為這個(gè)接口用處不大,所以不解壓打開(kāi),如果需要它,你可以單獨聯(lián)系我。很多人可能認為采集和搜索界面不太可能是采集客戶(hù)號,因為這個(gè)數據根本就不是http協(xié)議。但是我想說(shuō)的是,有時(shí)候采集數據不一定要在請求中攔截。解決方案很多,但是成本也會(huì )變得非常大(開(kāi)發(fā)成本和上線(xiàn)成本)。
另外,關(guān)于公眾號文章閱讀號的采集,可以看我的另一個(gè)知乎回答: 查看全部
分享文章:織夢(mèng)調用文章屬性的名稱(chēng)(調用自定義屬性名稱(chēng))
接下來(lái),我們將與您分享如何在織夢(mèng)文章頁(yè)面中調用相關(guān)屬性名稱(chēng):
我們可以看到,在這個(gè)標題之后就是我們需要的屬性的名稱(chēng),通過(guò)代碼分析我們可以看到調用的代碼是
{dede:field.flag function='IsCommendArchives(@me)'/}
我們可以看到這個(gè)調用需要一個(gè)函數:IsCommendArchives(@me)。
此函數是將文章中獲取的標志的內容轉換為相應的名稱(chēng)。功能內容為:
函數是表彰檔案($iscommend)
{

全球$arcatts;
$sn = '';
foreach($arcatts as $k=>$v)
{
$v = cn_substr($v, 2);
$sn .= (preg_match(“#”.$k.“ #”, $iscommend) ? ','.$v : '');
}
$sn = 修剪($sn);

if($sn=='') 返回 '';
否則返回“$sn”;
}
其中,$k是屬性名,我們可以選擇用“,”分隔,也支持HTML編寫(xiě),更靈活大家在別處調用,織夢(mèng)模板
我給你舉個(gè)例子:
織夢(mèng)QQ群二次開(kāi)發(fā)
內容分享:公眾號文章采集的兩種方案,搜狗和微信App采集
更新于 2018-06-05
許多答案沒(méi)有用或不再有效 采集 客戶(hù)編號,這是我的解決方案。
如果你只采集公眾號文章電話(huà)號碼采集軟件,要求不是很?chē)栏?,可以上搜狗。這種方案成本低,比較簡(jiǎn)單,但缺點(diǎn)也很明顯。這是一個(gè)臨時(shí)的 文章 鏈接。如果要轉為永久鏈接,還是要通過(guò)app界面。.

另一種方案是從微信APP本身采集,成本會(huì )高很多,但是可以采集的數據類(lèi)型很多,包括但不限于:歷史頁(yè)面文章 ,閱讀喜歡,評論等。
為了更直觀(guān),我做了一張圖來(lái)對比一下搜狗和微信小程序采集的兩個(gè)方案。
這兩種方案我都是自己用的,也都提供了封裝好的接口。具體需求會(huì )根據成本和場(chǎng)景選擇使用哪一種。

簡(jiǎn)單的一句話(huà)總結就是,搜狗有微信APP,搜狗沒(méi)有微信APP,但是微信方案的軟硬成本要比搜狗方案大很多。
順便說(shuō)一句,圖片提到了微信中的搜索界面。我自己已經(jīng)實(shí)現了,可以獲取搜索公眾號和文章的返回數據,作為練習,因為這個(gè)接口用處不大,所以不解壓打開(kāi),如果需要它,你可以單獨聯(lián)系我。很多人可能認為采集和搜索界面不太可能是采集客戶(hù)號,因為這個(gè)數據根本就不是http協(xié)議。但是我想說(shuō)的是,有時(shí)候采集數據不一定要在請求中攔截。解決方案很多,但是成本也會(huì )變得非常大(開(kāi)發(fā)成本和上線(xiàn)成本)。
另外,關(guān)于公眾號文章閱讀號的采集,可以看我的另一個(gè)知乎回答:
解決方案:Android端直播SDK實(shí)現方案
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2022-12-02 11:36
概述
直播系統的架構一般分為采集模塊、預覽模塊、處理模塊、編碼模塊、推流模塊。
將這五個(gè)模塊串聯(lián)起來(lái),就構成了整個(gè)直播系統的數據流。如下所示:
音頻采集:采集原創(chuàng )
PCM 數據。
音頻處理:對音頻進(jìn)行混音消除、降噪、自動(dòng)增益等處理。
音頻編碼:將PCM格式的數據編碼為AAC格式。
視頻捕捉:攝像頭/屏幕流的捕捉;YUV 格式或紋理格式。
視頻處理:對視頻進(jìn)行美顏/濾鏡等處理。
預覽:將處理后的視頻流渲染并顯示在屏幕上。
視頻編碼:將texture或YUV格式的原創(chuàng )
視頻流壓縮成H264格式。
推流:將AAC格式的音頻流和H264格式的視頻流打包推送為flv格式。
模塊化設計
為了充分利用CPU的多核,提高流媒體系統的效率,低延遲,模塊的設計采用了多線(xiàn)程模型。線(xiàn)程之間的交互是通過(guò)阻塞隊列實(shí)現的。由于隊列需要被多個(gè)線(xiàn)程操作,所以需要保證隊列的安全性。為了保證隊列的安全,在放入隊列之前先給隊列加鎖,然后再對隊列進(jìn)行操作。操作隊列結束后,發(fā)出信號指令,告訴block所在的線(xiàn)程繼續操作隊列。添加隊列后的模塊圖如下圖所示:
音頻捕捉
Android端音頻采集常用的方案有3種:AudioRecord、OpenSL、AAudio。
AudioRecord是Android上層的一個(gè)API,通過(guò)它可以采集PCM格式的音頻數據。
OpenSL是Native層提供的API,可以采集或播放PCM。
詳情鏈接:
AAudio是Native層提供的API,是Android O引入的新的音頻API。
詳情鏈接:
音頻采集在獨立線(xiàn)程中執行。將采集到的音頻放入pcm隊列。這里我們以AudioRecord為例介紹一下AudioRecord采集音頻的過(guò)程:
配置參數(采樣率、通道數、采樣格式)并獲取AudioRecord采集音頻緩沖區的大小
public static int SAMPLE_RATE_IN_HZ = 44100;
private final static int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_IN_MONO;
private final static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
<p>
int bufferSizeInBytes = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT)
</p>
創(chuàng )建錄音
AudioRecord audioRecord = new AudioRecord(AUDIO_SOURCE, SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT, bufferSizeInBytes);
配置AudioRecord后,需要查看AudioRecord的狀態(tài)??赡芤驗闄嘞迒?wèn)題或者其他原因導致AudioRecord創(chuàng )建失敗或者狀態(tài)不正確;
if (audioRecord == null || audioRecord.getState() != AudioRecord.STATE_INITIALIZED) {
throw new AudioConfigurationException();
}
開(kāi)始采集
AudioRecord創(chuàng )建成功后,就可以根據startRecording()接口開(kāi)始采集視頻了。
獲取音頻數據
獲取音頻數據需要一個(gè)線(xiàn)程不斷地讀出AudioRecord緩沖區中的音頻數據。
int size = audioRecord.read(audioSamplesBuffer, 0, audioSamplesBufferMaxSize);
將音頻數據放入PCM隊列
pcm隊列的設計后面會(huì )介紹
停止采集
和釋放資源
停止音頻采集線(xiàn)程,調用stop停止采集,調用release釋放AudioRecord創(chuàng )建的資源。
音頻編碼
音頻編碼格式有很多,mp3、aac、wma、ogg、pous、amr等,aac在低碼率場(chǎng)景下音質(zhì)非常好,aac編碼在移動(dòng)平臺上應用最廣泛,無(wú)論是aac單獨的音頻編碼或視頻中的音頻流部分。
音頻編解碼器:fdk_aac、MediaCodec
音頻編碼線(xiàn)程從pcm隊列中獲取數據編碼,編碼完成后將AAC數據放入AAC隊列中。
這里引入軟碼libfdk_aac,將pcm編碼成aac流。這里介紹的libfdk_aac是基于ffmpeg的。如果以后要使用其他編碼庫,可以通過(guò)ffmpeg配置。
基于ffmpeg的API編碼aac的好處是只需要寫(xiě)一段音頻編碼代碼即可。對于不同的編碼器,后面只需要調整對應的編碼器ID或者編碼器名稱(chēng),就可以對不同的格式進(jìn)行編碼。音頻文件。由于要使用第三方庫libfdk_aac對aac文件進(jìn)行編碼,所以在交叉編譯ffmpeg時(shí)必須先編譯libfdk_aac庫。音頻編碼是通過(guò)調用ffmpeg的API來(lái)實(shí)現的。
音頻編碼需要在線(xiàn)程中實(shí)現,線(xiàn)程會(huì )從pcm隊列中獲取pcm數據。當隊列為空時(shí),等待當前線(xiàn)程。當隊列中有數據時(shí),信號喚醒當前線(xiàn)程。得到pcm音頻數據后,開(kāi)始編碼。編碼完成后,將編碼后的aac數據放入aac隊列。
OpenGL上下文環(huán)境搭建后臺
OpenGL 不負責窗口管理和上下文管理。OpenGL 窗口管理和上下文管理將由各個(gè)平臺或設備完成。為了在 openGL 的輸出和設備的屏幕之間建立橋梁,需要使用 EGL。EGL是雙緩沖工作模式,即有一個(gè)Back Frame Buffer和一個(gè)Front Frame Buffer。正常繪圖操作的目標是 Back Frame Buffer。操作完成后,調用eglSwapBuffer api將繪制的Back Frame Buffer交換到Front Frame Buffer并顯示。在A(yíng)ndroid平臺上,使用了EGL的機制。EGL承擔為OpenGL提供上下文環(huán)境和窗口管理的責任。
安卓上下文
在A(yíng)ndroid平臺上使用opengl es,第一種方式是直接使用GLSurfaceView。這種方式使用OpenGL ES比較簡(jiǎn)單,因為不需要開(kāi)發(fā)者搭建OpenGL ES的上下文環(huán)境,也不需要為OpenGL ES創(chuàng )建顯示設備。但是任何事情都有兩個(gè)方面,有優(yōu)點(diǎn)也有缺點(diǎn)。使用 GLSurfaceView 不夠靈活。OpenGL ES的很多核心用法,比如共享上層上下文實(shí)現多線(xiàn)程共同操作一個(gè)紋理等,是不能用的。所以這里需要通過(guò)EGL api搭建OpenGL上下文環(huán)境,基于C++環(huán)境搭建。因為如果用Java層來(lái)構建,對于普通應用來(lái)說(shuō)可能是可行的,但是對于視頻應用來(lái)說(shuō),為了效率和性能,
任何 opengl 命令都必須在其自己的 OpenGL 上下文中運行,因此在 EGL 構建 opengl 上下文后,它可以執行 OpenGL ES。
OpenGL處理??模塊需要在線(xiàn)程中實(shí)現,線(xiàn)程函數:
EGL 環(huán)境管理 渲染窗口管理 紋理創(chuàng )建 視頻流處理 視頻捕獲和預覽
Camera的參數配置這里就不介紹了,這里只介紹Camera如何結合OpenGL實(shí)現預覽。
SurfaceView的轉換
首先UI層構造一個(gè)SurfaceView通過(guò)SurfaceView獲取Surface,然后在NDK中將Surface轉化為ANativeWindow,在EGL中通過(guò)ANativeWindow創(chuàng )建EGLSurface。
創(chuàng )建外部紋理
通過(guò) OpenGL 創(chuàng )建外部紋理
將外部紋理設置為 Camera
通過(guò)2創(chuàng )建的外部紋理ID創(chuàng )建一個(gè)SurfaceTexture,并設置一個(gè)監聽(tīng)器SurfaceTexture.setOnFrameAvailableListener(); 每次將視頻流渲染到 SurfaceTexture 時(shí)都會(huì )回調此方法。通過(guò) setPreviewTexture 接口將 SurfaceTexture 設置為 Camera。
OpenGL操作外部紋理實(shí)現預覽
Camera/Camera2采集攝像頭流并將采集到的攝像頭流渲染成外部紋理,然后通過(guò)OpenGL將外部紋理渲染到窗口,實(shí)現預覽。
視頻采集預覽流程圖如下:
視頻編碼
MediaCodec的配置和使用這里就不介紹了。這里只介紹OpenGL ES如何與MediaCodec進(jìn)行交互。
MediaCodec的輸入視頻流經(jīng)過(guò)OpenGL模塊處理,通過(guò)createInputSurface() api得到一個(gè)Surface,最后Surface創(chuàng )建一個(gè)EGL Surface。
OpenGL通過(guò)渲染外部紋理到MediaCodec inputsurface通知MediaCodec獲取編碼數據,獲取編碼數據后,通過(guò)處理進(jìn)入h264隊列。
MediaCodec與OpenGL運行圖:
推流:
推流模塊按照特定的順序從aac隊列/h264隊列中獲取數據,進(jìn)行處理,然后封裝成flv格式進(jìn)行推流。
流媒體模塊通過(guò)FFmpeg中集成的rtmp協(xié)議實(shí)現流媒體。這樣我們就可以通過(guò)ffmpeg的寫(xiě)入文件的API來(lái)實(shí)現流式傳輸了。
這樣做的好處是你只需要編寫(xiě)一個(gè)streaming模塊的代碼。當我們要在本地寫(xiě)音視頻流時(shí),streaming模塊的代碼不需要修改,只需要修改我們傳給streaming模塊的路徑即可。例如:mnt/sdcard/0/test.mp4,可以將視頻流以mp4格式保存到本地。
解決方案:WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章功能呢?
作為一個(gè)新聞門(mén)戶(hù)網(wǎng)站的站長(cháng),最難做的就是采集
更全面的內容。一般在這種情況下,人們會(huì )從較大的網(wǎng)站上采集
文章,發(fā)布在自己的網(wǎng)站上。那么使用WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章的功能呢?今天給大家分享一下RSS訂閱功能。我們可以通過(guò)RSS功能調用其他網(wǎng)站的文章自動(dòng)顯示在我們自己的網(wǎng)站上,并且可以自動(dòng)更新。
那怎么辦呢?方法很簡(jiǎn)單,只需要將下面的代碼放在你的網(wǎng)站顯示文章列表的位置即可。
</a>
注意:代碼中的網(wǎng)站需要修改為調用網(wǎng)站的URL。如果你的網(wǎng)站想放更多本站的文章,只需要復制這段代碼,修改里面的網(wǎng)址即可。
注:本文為星速云原創(chuàng )版權,禁止轉載。一經(jīng)發(fā)現,追究版權責任! 查看全部
解決方案:Android端直播SDK實(shí)現方案
概述
直播系統的架構一般分為采集模塊、預覽模塊、處理模塊、編碼模塊、推流模塊。
將這五個(gè)模塊串聯(lián)起來(lái),就構成了整個(gè)直播系統的數據流。如下所示:
音頻采集:采集原創(chuàng )
PCM 數據。
音頻處理:對音頻進(jìn)行混音消除、降噪、自動(dòng)增益等處理。
音頻編碼:將PCM格式的數據編碼為AAC格式。
視頻捕捉:攝像頭/屏幕流的捕捉;YUV 格式或紋理格式。
視頻處理:對視頻進(jìn)行美顏/濾鏡等處理。
預覽:將處理后的視頻流渲染并顯示在屏幕上。
視頻編碼:將texture或YUV格式的原創(chuàng )
視頻流壓縮成H264格式。
推流:將AAC格式的音頻流和H264格式的視頻流打包推送為flv格式。
模塊化設計
為了充分利用CPU的多核,提高流媒體系統的效率,低延遲,模塊的設計采用了多線(xiàn)程模型。線(xiàn)程之間的交互是通過(guò)阻塞隊列實(shí)現的。由于隊列需要被多個(gè)線(xiàn)程操作,所以需要保證隊列的安全性。為了保證隊列的安全,在放入隊列之前先給隊列加鎖,然后再對隊列進(jìn)行操作。操作隊列結束后,發(fā)出信號指令,告訴block所在的線(xiàn)程繼續操作隊列。添加隊列后的模塊圖如下圖所示:
音頻捕捉
Android端音頻采集常用的方案有3種:AudioRecord、OpenSL、AAudio。
AudioRecord是Android上層的一個(gè)API,通過(guò)它可以采集PCM格式的音頻數據。
OpenSL是Native層提供的API,可以采集或播放PCM。
詳情鏈接:
AAudio是Native層提供的API,是Android O引入的新的音頻API。
詳情鏈接:
音頻采集在獨立線(xiàn)程中執行。將采集到的音頻放入pcm隊列。這里我們以AudioRecord為例介紹一下AudioRecord采集音頻的過(guò)程:
配置參數(采樣率、通道數、采樣格式)并獲取AudioRecord采集音頻緩沖區的大小
public static int SAMPLE_RATE_IN_HZ = 44100;
private final static int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_IN_MONO;
private final static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
<p>

int bufferSizeInBytes = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT)
</p>
創(chuàng )建錄音
AudioRecord audioRecord = new AudioRecord(AUDIO_SOURCE, SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT, bufferSizeInBytes);
配置AudioRecord后,需要查看AudioRecord的狀態(tài)??赡芤驗闄嘞迒?wèn)題或者其他原因導致AudioRecord創(chuàng )建失敗或者狀態(tài)不正確;
if (audioRecord == null || audioRecord.getState() != AudioRecord.STATE_INITIALIZED) {
throw new AudioConfigurationException();
}
開(kāi)始采集
AudioRecord創(chuàng )建成功后,就可以根據startRecording()接口開(kāi)始采集視頻了。
獲取音頻數據
獲取音頻數據需要一個(gè)線(xiàn)程不斷地讀出AudioRecord緩沖區中的音頻數據。
int size = audioRecord.read(audioSamplesBuffer, 0, audioSamplesBufferMaxSize);
將音頻數據放入PCM隊列
pcm隊列的設計后面會(huì )介紹
停止采集
和釋放資源
停止音頻采集線(xiàn)程,調用stop停止采集,調用release釋放AudioRecord創(chuàng )建的資源。
音頻編碼
音頻編碼格式有很多,mp3、aac、wma、ogg、pous、amr等,aac在低碼率場(chǎng)景下音質(zhì)非常好,aac編碼在移動(dòng)平臺上應用最廣泛,無(wú)論是aac單獨的音頻編碼或視頻中的音頻流部分。
音頻編解碼器:fdk_aac、MediaCodec
音頻編碼線(xiàn)程從pcm隊列中獲取數據編碼,編碼完成后將AAC數據放入AAC隊列中。
這里引入軟碼libfdk_aac,將pcm編碼成aac流。這里介紹的libfdk_aac是基于ffmpeg的。如果以后要使用其他編碼庫,可以通過(guò)ffmpeg配置。
基于ffmpeg的API編碼aac的好處是只需要寫(xiě)一段音頻編碼代碼即可。對于不同的編碼器,后面只需要調整對應的編碼器ID或者編碼器名稱(chēng),就可以對不同的格式進(jìn)行編碼。音頻文件。由于要使用第三方庫libfdk_aac對aac文件進(jìn)行編碼,所以在交叉編譯ffmpeg時(shí)必須先編譯libfdk_aac庫。音頻編碼是通過(guò)調用ffmpeg的API來(lái)實(shí)現的。
音頻編碼需要在線(xiàn)程中實(shí)現,線(xiàn)程會(huì )從pcm隊列中獲取pcm數據。當隊列為空時(shí),等待當前線(xiàn)程。當隊列中有數據時(shí),信號喚醒當前線(xiàn)程。得到pcm音頻數據后,開(kāi)始編碼。編碼完成后,將編碼后的aac數據放入aac隊列。
OpenGL上下文環(huán)境搭建后臺

OpenGL 不負責窗口管理和上下文管理。OpenGL 窗口管理和上下文管理將由各個(gè)平臺或設備完成。為了在 openGL 的輸出和設備的屏幕之間建立橋梁,需要使用 EGL。EGL是雙緩沖工作模式,即有一個(gè)Back Frame Buffer和一個(gè)Front Frame Buffer。正常繪圖操作的目標是 Back Frame Buffer。操作完成后,調用eglSwapBuffer api將繪制的Back Frame Buffer交換到Front Frame Buffer并顯示。在A(yíng)ndroid平臺上,使用了EGL的機制。EGL承擔為OpenGL提供上下文環(huán)境和窗口管理的責任。
安卓上下文
在A(yíng)ndroid平臺上使用opengl es,第一種方式是直接使用GLSurfaceView。這種方式使用OpenGL ES比較簡(jiǎn)單,因為不需要開(kāi)發(fā)者搭建OpenGL ES的上下文環(huán)境,也不需要為OpenGL ES創(chuàng )建顯示設備。但是任何事情都有兩個(gè)方面,有優(yōu)點(diǎn)也有缺點(diǎn)。使用 GLSurfaceView 不夠靈活。OpenGL ES的很多核心用法,比如共享上層上下文實(shí)現多線(xiàn)程共同操作一個(gè)紋理等,是不能用的。所以這里需要通過(guò)EGL api搭建OpenGL上下文環(huán)境,基于C++環(huán)境搭建。因為如果用Java層來(lái)構建,對于普通應用來(lái)說(shuō)可能是可行的,但是對于視頻應用來(lái)說(shuō),為了效率和性能,
任何 opengl 命令都必須在其自己的 OpenGL 上下文中運行,因此在 EGL 構建 opengl 上下文后,它可以執行 OpenGL ES。
OpenGL處理??模塊需要在線(xiàn)程中實(shí)現,線(xiàn)程函數:
EGL 環(huán)境管理 渲染窗口管理 紋理創(chuàng )建 視頻流處理 視頻捕獲和預覽
Camera的參數配置這里就不介紹了,這里只介紹Camera如何結合OpenGL實(shí)現預覽。
SurfaceView的轉換
首先UI層構造一個(gè)SurfaceView通過(guò)SurfaceView獲取Surface,然后在NDK中將Surface轉化為ANativeWindow,在EGL中通過(guò)ANativeWindow創(chuàng )建EGLSurface。
創(chuàng )建外部紋理
通過(guò) OpenGL 創(chuàng )建外部紋理
將外部紋理設置為 Camera
通過(guò)2創(chuàng )建的外部紋理ID創(chuàng )建一個(gè)SurfaceTexture,并設置一個(gè)監聽(tīng)器SurfaceTexture.setOnFrameAvailableListener(); 每次將視頻流渲染到 SurfaceTexture 時(shí)都會(huì )回調此方法。通過(guò) setPreviewTexture 接口將 SurfaceTexture 設置為 Camera。
OpenGL操作外部紋理實(shí)現預覽
Camera/Camera2采集攝像頭流并將采集到的攝像頭流渲染成外部紋理,然后通過(guò)OpenGL將外部紋理渲染到窗口,實(shí)現預覽。
視頻采集預覽流程圖如下:
視頻編碼
MediaCodec的配置和使用這里就不介紹了。這里只介紹OpenGL ES如何與MediaCodec進(jìn)行交互。
MediaCodec的輸入視頻流經(jīng)過(guò)OpenGL模塊處理,通過(guò)createInputSurface() api得到一個(gè)Surface,最后Surface創(chuàng )建一個(gè)EGL Surface。
OpenGL通過(guò)渲染外部紋理到MediaCodec inputsurface通知MediaCodec獲取編碼數據,獲取編碼數據后,通過(guò)處理進(jìn)入h264隊列。
MediaCodec與OpenGL運行圖:
推流:
推流模塊按照特定的順序從aac隊列/h264隊列中獲取數據,進(jìn)行處理,然后封裝成flv格式進(jìn)行推流。
流媒體模塊通過(guò)FFmpeg中集成的rtmp協(xié)議實(shí)現流媒體。這樣我們就可以通過(guò)ffmpeg的寫(xiě)入文件的API來(lái)實(shí)現流式傳輸了。
這樣做的好處是你只需要編寫(xiě)一個(gè)streaming模塊的代碼。當我們要在本地寫(xiě)音視頻流時(shí),streaming模塊的代碼不需要修改,只需要修改我們傳給streaming模塊的路徑即可。例如:mnt/sdcard/0/test.mp4,可以將視頻流以mp4格式保存到本地。
解決方案:WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章功能呢?
作為一個(gè)新聞門(mén)戶(hù)網(wǎng)站的站長(cháng),最難做的就是采集
更全面的內容。一般在這種情況下,人們會(huì )從較大的網(wǎng)站上采集
文章,發(fā)布在自己的網(wǎng)站上。那么使用WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章的功能呢?今天給大家分享一下RSS訂閱功能。我們可以通過(guò)RSS功能調用其他網(wǎng)站的文章自動(dòng)顯示在我們自己的網(wǎng)站上,并且可以自動(dòng)更新。

那怎么辦呢?方法很簡(jiǎn)單,只需要將下面的代碼放在你的網(wǎng)站顯示文章列表的位置即可。
</a>

注意:代碼中的網(wǎng)站需要修改為調用網(wǎng)站的URL。如果你的網(wǎng)站想放更多本站的文章,只需要復制這段代碼,修改里面的網(wǎng)址即可。
注:本文為星速云原創(chuàng )版權,禁止轉載。一經(jīng)發(fā)現,追究版權責任!
解決方案:C#調用大華相機SDK獲取圖片,轉換成VisionPro的Icogimage格式
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 418 次瀏覽 ? 2022-12-01 08:30
文中講了C#如何調用大華相機SDK,通過(guò)回調事件獲取圖片并轉換成visionpro的icogimage格式,文末會(huì )分享例程。調用SDK前需要在C盤(pán)安裝大華的攝像頭軟件。如果不安裝到C盤(pán),會(huì )顯示缺少依賴(lài),無(wú)法運行dll。如果有其他方法可以加群交流。
01
—
大華SDK幫助類(lèi)介紹,這里是一個(gè)dll幫助類(lèi),里面寫(xiě)了相機的基本功能:枚舉-實(shí)例化-相機連接-回調圖像采集-觸發(fā)設置-曝光調試等-關(guān)閉相機;剩下的可以自己添加
首先枚舉攝像頭,獲取攝像頭序列號。在構造函數中,有一個(gè)實(shí)參需要作為key輸入,也就是key。目的是區分多個(gè)攝像頭,比如四個(gè)攝像頭。先枚舉四個(gè)序號并實(shí)例化四個(gè)AhuaCamera對象分別輸入對應的序號來(lái)實(shí)例化對應的攝像頭,比較方便。
icogimage格式是visionpro中常用的圖片格式。這個(gè)轉換函數用在回調事件中?;卣{將返回單幀數據包。轉換函數根據數據包的參數生成,如:黑白顏色、長(cháng)寬、數據量等。icogimage圖片
02
—
一般通話(huà)-單攝像頭
通用調用順序——枚舉攝像頭列表,實(shí)例化攝像頭對象,連接攝像頭后訂閱圖片傳輸事件
常規鏈接:阿里云:
.
技術(shù)群:加小編微信,評論進(jìn)群
解決方案:說(shuō)說(shuō)2015的SEO新趨勢:內容與用戶(hù)體驗為王
站長(cháng)之家()1月21日編譯:對于SEO從業(yè)者來(lái)說(shuō),年初的預測和年末的總結絕對是有意義的,缺一不可的。想要做好SEO,預測和總結自然少不了。近日,國外知名SEO專(zhuān)家Sujan Patel為我們帶來(lái)了他對2015年SEO行業(yè)的看法。在這個(gè)SEO日新月異的時(shí)代,預測并不絕對,但總能給我們一些啟發(fā)。
以下是 2015 年您需要了解的有關(guān) SEO 的一些事項:
關(guān)注內容的質(zhì)量,而不是速度和數量
2015年的SEO依然秉承“內容為王”的原則,其中內容策劃尤為重要。由于搜索引擎非常重視網(wǎng)站內容的長(cháng)度和搜索熱度,因此需要更加關(guān)注個(gè)性化需求,是否值得閱讀,以及給用戶(hù)帶來(lái)的價(jià)值等等。
Content Curation:也可稱(chēng)為內容造卷,旨在幫助用戶(hù)從海量網(wǎng)絡(luò )信息中“篩選”出最符合用戶(hù)個(gè)性化需求、對用戶(hù)最有價(jià)值、最值得閱讀的內容.
近年來(lái),谷歌開(kāi)始在搜索結果頁(yè)面顯示“深度報道”。所謂“深度報道”,是指篇幅在1500字以上的文章。這也是SEO和內容營(yíng)銷(xiāo)領(lǐng)域從“快速生產(chǎn)”信息碎片到內容量的轉變。
在SEO行業(yè)發(fā)展的初期,站長(cháng)們幾乎都是在自己的網(wǎng)站上發(fā)表文章進(jìn)行優(yōu)化和推廣,或者在訪(fǎng)客博客(Guest Blogging)上發(fā)表文章,做外鏈。用戶(hù)不值錢(qián),也能在搜索引擎中獲得好的排名。
不過(guò)隨著(zhù)谷歌算法的不斷完善,這種做法已經(jīng)被淘汰,谷歌甚至開(kāi)始大規模打擊Guest blogging。
關(guān)注用戶(hù)體驗,而非個(gè)人喜好
在這個(gè)內容信息泛濫的時(shí)代,只有好的內容才能脫穎而出,實(shí)屬不易。除了好的內容,還要知道用戶(hù)想要什么,如何讓用戶(hù)盡快找到對自己最有利的優(yōu)質(zhì)內容。這就是用戶(hù)體驗。
SEO剛出現時(shí),很多站長(cháng)善于利用搜索引擎的“漏洞”,通過(guò)鏈接欺詐、關(guān)鍵詞堆砌、彈窗廣告等各種黑帽手段達到優(yōu)化目的。當然,如果現在還用這些方法,那就只能是“坐以待斃”了。
因此,在2015年的SEO工作中,除了網(wǎng)站內容,網(wǎng)站的整體策劃也是不可忽視的工作。必須從網(wǎng)站設計、網(wǎng)站結構、網(wǎng)站性能等各個(gè)方面給用戶(hù)帶來(lái)更好的體驗。
事實(shí)上,用戶(hù)和搜索引擎爬蟲(chóng)之間存在一定的相似性。一般來(lái)說(shuō),網(wǎng)站設計越方便用戶(hù)使用,越有利于搜索引擎爬蟲(chóng)快速有效地抓取和抓取頁(yè)面。
再者,在這個(gè)移動(dòng)互聯(lián)網(wǎng)盛行、多屏共存的時(shí)代,你的網(wǎng)站必須兼容各種平臺和設備,這也是響應式設計如此流行的原因。而且采用響應式設計的網(wǎng)站只需要一個(gè)URL就可以滿(mǎn)足所有設備的需求,跳出率也優(yōu)于其他類(lèi)型的網(wǎng)站。
讓用戶(hù)參與
2015年網(wǎng)站的用戶(hù)體驗不應僅僅停留在網(wǎng)站設計層面。很多時(shí)候,用戶(hù)所追求的,才是SEOer們以后真正應該關(guān)注的。
例如,如果有一小部分Facebook或Twitter用戶(hù)抱怨某個(gè)網(wǎng)站的服務(wù)頁(yè)面內容不完整,那么SEOers就應該開(kāi)始完善頁(yè)面信息了。你不妨多關(guān)注一下用戶(hù)在社交媒體、博客留言、用戶(hù)反饋中給你的建議。他們會(huì )用最通俗易懂的語(yǔ)言告訴你“你的網(wǎng)站哪些功能是多余的,哪些地方不夠用”。
此外,用戶(hù)分析還可以用來(lái)了解網(wǎng)站的流量來(lái)源、優(yōu)勢和劣勢。
讓用戶(hù)參與其中,不僅可以從用戶(hù)的角度提升自己網(wǎng)站的體驗,還可以讓用戶(hù)因為參與感而更加忠誠。
還有一件事...
除了以上幾項之外,還應該定期對網(wǎng)站的入口頁(yè)和跳出頁(yè)進(jìn)行分析,然后根據需要進(jìn)行優(yōu)化;使用谷歌管理員工具檢查404頁(yè)面,定期清理死鏈接等。
總結
隨著(zhù)用戶(hù)體驗越來(lái)越重要,2015年對用戶(hù)瀏覽行為的跟蹤和分析將成為SEO的必做之事。至于網(wǎng)站的內容,我就不多說(shuō)了。記得做好內容質(zhì)量、內容價(jià)值、內容相關(guān)性和內容個(gè)性化。如果你能做到這些,相信你的排名也不會(huì )太差。 查看全部
解決方案:C#調用大華相機SDK獲取圖片,轉換成VisionPro的Icogimage格式
文中講了C#如何調用大華相機SDK,通過(guò)回調事件獲取圖片并轉換成visionpro的icogimage格式,文末會(huì )分享例程。調用SDK前需要在C盤(pán)安裝大華的攝像頭軟件。如果不安裝到C盤(pán),會(huì )顯示缺少依賴(lài),無(wú)法運行dll。如果有其他方法可以加群交流。
01
—
大華SDK幫助類(lèi)介紹,這里是一個(gè)dll幫助類(lèi),里面寫(xiě)了相機的基本功能:枚舉-實(shí)例化-相機連接-回調圖像采集-觸發(fā)設置-曝光調試等-關(guān)閉相機;剩下的可以自己添加

首先枚舉攝像頭,獲取攝像頭序列號。在構造函數中,有一個(gè)實(shí)參需要作為key輸入,也就是key。目的是區分多個(gè)攝像頭,比如四個(gè)攝像頭。先枚舉四個(gè)序號并實(shí)例化四個(gè)AhuaCamera對象分別輸入對應的序號來(lái)實(shí)例化對應的攝像頭,比較方便。
icogimage格式是visionpro中常用的圖片格式。這個(gè)轉換函數用在回調事件中?;卣{將返回單幀數據包。轉換函數根據數據包的參數生成,如:黑白顏色、長(cháng)寬、數據量等。icogimage圖片
02

—
一般通話(huà)-單攝像頭
通用調用順序——枚舉攝像頭列表,實(shí)例化攝像頭對象,連接攝像頭后訂閱圖片傳輸事件
常規鏈接:阿里云:
.
技術(shù)群:加小編微信,評論進(jìn)群
解決方案:說(shuō)說(shuō)2015的SEO新趨勢:內容與用戶(hù)體驗為王
站長(cháng)之家()1月21日編譯:對于SEO從業(yè)者來(lái)說(shuō),年初的預測和年末的總結絕對是有意義的,缺一不可的。想要做好SEO,預測和總結自然少不了。近日,國外知名SEO專(zhuān)家Sujan Patel為我們帶來(lái)了他對2015年SEO行業(yè)的看法。在這個(gè)SEO日新月異的時(shí)代,預測并不絕對,但總能給我們一些啟發(fā)。
以下是 2015 年您需要了解的有關(guān) SEO 的一些事項:
關(guān)注內容的質(zhì)量,而不是速度和數量
2015年的SEO依然秉承“內容為王”的原則,其中內容策劃尤為重要。由于搜索引擎非常重視網(wǎng)站內容的長(cháng)度和搜索熱度,因此需要更加關(guān)注個(gè)性化需求,是否值得閱讀,以及給用戶(hù)帶來(lái)的價(jià)值等等。
Content Curation:也可稱(chēng)為內容造卷,旨在幫助用戶(hù)從海量網(wǎng)絡(luò )信息中“篩選”出最符合用戶(hù)個(gè)性化需求、對用戶(hù)最有價(jià)值、最值得閱讀的內容.
近年來(lái),谷歌開(kāi)始在搜索結果頁(yè)面顯示“深度報道”。所謂“深度報道”,是指篇幅在1500字以上的文章。這也是SEO和內容營(yíng)銷(xiāo)領(lǐng)域從“快速生產(chǎn)”信息碎片到內容量的轉變。
在SEO行業(yè)發(fā)展的初期,站長(cháng)們幾乎都是在自己的網(wǎng)站上發(fā)表文章進(jìn)行優(yōu)化和推廣,或者在訪(fǎng)客博客(Guest Blogging)上發(fā)表文章,做外鏈。用戶(hù)不值錢(qián),也能在搜索引擎中獲得好的排名。

不過(guò)隨著(zhù)谷歌算法的不斷完善,這種做法已經(jīng)被淘汰,谷歌甚至開(kāi)始大規模打擊Guest blogging。
關(guān)注用戶(hù)體驗,而非個(gè)人喜好
在這個(gè)內容信息泛濫的時(shí)代,只有好的內容才能脫穎而出,實(shí)屬不易。除了好的內容,還要知道用戶(hù)想要什么,如何讓用戶(hù)盡快找到對自己最有利的優(yōu)質(zhì)內容。這就是用戶(hù)體驗。
SEO剛出現時(shí),很多站長(cháng)善于利用搜索引擎的“漏洞”,通過(guò)鏈接欺詐、關(guān)鍵詞堆砌、彈窗廣告等各種黑帽手段達到優(yōu)化目的。當然,如果現在還用這些方法,那就只能是“坐以待斃”了。
因此,在2015年的SEO工作中,除了網(wǎng)站內容,網(wǎng)站的整體策劃也是不可忽視的工作。必須從網(wǎng)站設計、網(wǎng)站結構、網(wǎng)站性能等各個(gè)方面給用戶(hù)帶來(lái)更好的體驗。
事實(shí)上,用戶(hù)和搜索引擎爬蟲(chóng)之間存在一定的相似性。一般來(lái)說(shuō),網(wǎng)站設計越方便用戶(hù)使用,越有利于搜索引擎爬蟲(chóng)快速有效地抓取和抓取頁(yè)面。
再者,在這個(gè)移動(dòng)互聯(lián)網(wǎng)盛行、多屏共存的時(shí)代,你的網(wǎng)站必須兼容各種平臺和設備,這也是響應式設計如此流行的原因。而且采用響應式設計的網(wǎng)站只需要一個(gè)URL就可以滿(mǎn)足所有設備的需求,跳出率也優(yōu)于其他類(lèi)型的網(wǎng)站。
讓用戶(hù)參與

2015年網(wǎng)站的用戶(hù)體驗不應僅僅停留在網(wǎng)站設計層面。很多時(shí)候,用戶(hù)所追求的,才是SEOer們以后真正應該關(guān)注的。
例如,如果有一小部分Facebook或Twitter用戶(hù)抱怨某個(gè)網(wǎng)站的服務(wù)頁(yè)面內容不完整,那么SEOers就應該開(kāi)始完善頁(yè)面信息了。你不妨多關(guān)注一下用戶(hù)在社交媒體、博客留言、用戶(hù)反饋中給你的建議。他們會(huì )用最通俗易懂的語(yǔ)言告訴你“你的網(wǎng)站哪些功能是多余的,哪些地方不夠用”。
此外,用戶(hù)分析還可以用來(lái)了解網(wǎng)站的流量來(lái)源、優(yōu)勢和劣勢。
讓用戶(hù)參與其中,不僅可以從用戶(hù)的角度提升自己網(wǎng)站的體驗,還可以讓用戶(hù)因為參與感而更加忠誠。
還有一件事...
除了以上幾項之外,還應該定期對網(wǎng)站的入口頁(yè)和跳出頁(yè)進(jìn)行分析,然后根據需要進(jìn)行優(yōu)化;使用谷歌管理員工具檢查404頁(yè)面,定期清理死鏈接等。
總結
隨著(zhù)用戶(hù)體驗越來(lái)越重要,2015年對用戶(hù)瀏覽行為的跟蹤和分析將成為SEO的必做之事。至于網(wǎng)站的內容,我就不多說(shuō)了。記得做好內容質(zhì)量、內容價(jià)值、內容相關(guān)性和內容個(gè)性化。如果你能做到這些,相信你的排名也不會(huì )太差。
解決方案:禾盟科技麥家接口商城有免費的接口可以用商城
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 97 次瀏覽 ? 2022-11-30 17:28
文章采集調用麥家api接口,發(fā)給麥家寫(xiě)作助手,
很簡(jiǎn)單:你下載麥家app,注冊登錄后,就會(huì )出現麥家寫(xiě)作助手,就可以發(fā)布文章了,其實(shí)所有的軟件都是通過(guò)麥家接口進(jìn)行寫(xiě)作。
有用麥家api接口的,我接了一個(gè),可以寫(xiě)文章、發(fā)表到其他公眾號和頭條、微博等。
可以找禾盟科技麥家接口商城有免費的接口可以用商城有很多種文章發(fā)布模式,
有啊,用前景網(wǎng)網(wǎng)址接口直接開(kāi)發(fā),
現在有專(zhuān)門(mén)的平臺:有贊微商城-專(zhuān)業(yè)的微商開(kāi)發(fā)平臺里面的所有業(yè)務(wù)也包括發(fā)文章。
有啊,接觸過(guò)麥家接口,感覺(jué)還是不錯的,用網(wǎng)址接口可以實(shí)現。麥家寫(xiě)作助手是禾盟科技的接口,他們家發(fā)文章就類(lèi)似于在有贊微商城的時(shí)候開(kāi)通收藏,
有啊,我接了麥家api接口,有了它軟件就不愁發(fā)不了文章了。麥家api接口——麥家官方api定制平臺(v:2902160155)是麥家官方api定制平臺,由禾盟科技研發(fā)。禾盟科技多年的寫(xiě)作服務(wù)經(jīng)驗,我們接口不僅可以通過(guò)麥家官方接口發(fā)表微信公眾號文章、平臺文章,同時(shí)對qq群,貼吧以及其他網(wǎng)站發(fā)布內容還是非常有用的,可以通過(guò)麥家接口發(fā)表到微信、頭條、百家以及其他網(wǎng)站上面,可以更好的進(jìn)行文章分發(fā)。 查看全部
解決方案:禾盟科技麥家接口商城有免費的接口可以用商城
文章采集調用麥家api接口,發(fā)給麥家寫(xiě)作助手,
很簡(jiǎn)單:你下載麥家app,注冊登錄后,就會(huì )出現麥家寫(xiě)作助手,就可以發(fā)布文章了,其實(shí)所有的軟件都是通過(guò)麥家接口進(jìn)行寫(xiě)作。

有用麥家api接口的,我接了一個(gè),可以寫(xiě)文章、發(fā)表到其他公眾號和頭條、微博等。
可以找禾盟科技麥家接口商城有免費的接口可以用商城有很多種文章發(fā)布模式,
有啊,用前景網(wǎng)網(wǎng)址接口直接開(kāi)發(fā),

現在有專(zhuān)門(mén)的平臺:有贊微商城-專(zhuān)業(yè)的微商開(kāi)發(fā)平臺里面的所有業(yè)務(wù)也包括發(fā)文章。
有啊,接觸過(guò)麥家接口,感覺(jué)還是不錯的,用網(wǎng)址接口可以實(shí)現。麥家寫(xiě)作助手是禾盟科技的接口,他們家發(fā)文章就類(lèi)似于在有贊微商城的時(shí)候開(kāi)通收藏,
有啊,我接了麥家api接口,有了它軟件就不愁發(fā)不了文章了。麥家api接口——麥家官方api定制平臺(v:2902160155)是麥家官方api定制平臺,由禾盟科技研發(fā)。禾盟科技多年的寫(xiě)作服務(wù)經(jīng)驗,我們接口不僅可以通過(guò)麥家官方接口發(fā)表微信公眾號文章、平臺文章,同時(shí)對qq群,貼吧以及其他網(wǎng)站發(fā)布內容還是非常有用的,可以通過(guò)麥家接口發(fā)表到微信、頭條、百家以及其他網(wǎng)站上面,可以更好的進(jìn)行文章分發(fā)。
解決方案:webrtc的音視頻同步處理一
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2022-11-30 11:55
WebRTC的音視頻同步處理之一
WebRTC如何處理內部音頻和視頻同步?
幾個(gè)主要詞:捕獲時(shí)間、
渲染時(shí)間、RTP 的時(shí)間戳、SR、計算 NTP
讓我們從視頻捕獲過(guò)程開(kāi)始
1. 調用堆棧
2. 采集
The VideoCaptureImpl::IncomingFrame
調用 set_timestamp_ms() 設置時(shí)間
rtc::TimeMillis() 此時(shí)間是獲取的
CLOCK_MONOTONIC:計時(shí)從系統啟動(dòng)的那一刻開(kāi)始,不受用戶(hù)更改的系統時(shí)間的影響
此值分配給timestamp_us_
3. 繼續執行并進(jìn)入
4. 您可以看到此處設置了 NTP
incoming_frame.set_ntp_time_ms(capture_ntp_time_ms);
未來(lái)有三個(gè)分支計算capture_ntp_time_ms
斷點(diǎn)調試排在第二位,為什么?
因為 video_frame.render_time_ms() 獲取timestamp_us_,所以之前設置的時(shí)間是從引導時(shí)間計算的
但delta_ntp_internal_ms_補充一下,這個(gè)價(jià)值是怎么來(lái)的?
5. 接下來(lái),在 RTP 中生成時(shí)間戳,該時(shí)間戳仍在
設置ntp,生成時(shí)間戳,下一步就是放入編碼隊列和編碼線(xiàn)程進(jìn)行編碼
6.總結一下:
delta_ntp_internal_ms_ = 絕對時(shí)間 - 自啟動(dòng)打開(kāi)以來(lái)的時(shí)間
timestamp_us_ = render_time_ms() =
set_timestamp_ms() = 自啟動(dòng)以來(lái)的時(shí)間
ntp_time_ms_ = 絕對時(shí)間 = timestamp_us_ + delta_ntp_internal_ms_
時(shí)間戳 = 90*ntp_time_ms_
7. 編碼后的調用堆棧
8.函數 RtpVideoSender::OnEncodedImage().
您可以看到rtp_timestamp有一個(gè)偏移值 rtp_rtcp->StartTimestamp()。事實(shí)證明,這是一個(gè)隨機值,為安全而加密。
9. 此代碼是重頭戲,設置 RTCP 時(shí)間戳和 NTP 之間的對應關(guān)系以生成 SR
這個(gè)capture_time_ms中間繞了好幾圈,還是打開(kāi)到現在的時(shí)間。
10. 發(fā)送的每一幀數據都會(huì )刷新與 RTCP 時(shí)間點(diǎn)擊對應的 NTP
11. 接下來(lái),讓我們看看 sr 是如何打包的
rtp_timestamp = 初始偏移量 + 發(fā)送幀的 tm
+ 上次發(fā)送到當前經(jīng)過(guò)的幀的 tm
NTP 是當前時(shí)間,但需要轉換
report->SetNtp(TimeMicrosToNtp(ctx.now_us_));
sr 中的 NTP 分為兩部分:
秒是正常符號
幾秒鐘后,它被分成 2 的 32 次方
12. 總結一下:
總體而言,該過(guò)程還隱藏了一些鏈接:
NTP 計算生成時(shí)間戳
收錄
時(shí)間戳和 ntp 之間的對應關(guān)系。
請注意,SR 中 NTP 的表示分為 2 的 32 次方,而不是毫秒
分享技術(shù):外貿整合營(yíng)銷(xiāo)谷歌SEO簡(jiǎn)介
升騰科技外貿整合營(yíng)銷(xiāo)基于8年外貿推廣經(jīng)驗研發(fā),以SEO為核心的智能網(wǎng)絡(luò )營(yíng)銷(xiāo)系統平臺,集多語(yǔ)言建站(Web)、搜索引擎優(yōu)化(SEO)、社交媒體大數據于一體營(yíng)銷(xiāo)(SNS)、搜索引擎營(yíng)銷(xiāo)(SEM)、視頻營(yíng)銷(xiāo)(Video)、交易員數據(DMS)、B2B平臺推廣(B2B)營(yíng)銷(xiāo)模式,幫助外貿企業(yè)通過(guò)多語(yǔ)言、多關(guān)鍵詞 、多搜索引擎、多渠道推廣的模式整合,實(shí)現低成本獲取優(yōu)質(zhì)客戶(hù)。
你有沒(méi)有擔心遇到這樣的問(wèn)題?
● 沒(méi)有流量,網(wǎng)站就不能跨入網(wǎng)絡(luò )營(yíng)銷(xiāo)的門(mén)檻?
● 網(wǎng)站關(guān)鍵詞沒(méi)有排名,前五的搜索引擎流量很少?
● SEO優(yōu)化時(shí)間成本高,能否滿(mǎn)足公司的銷(xiāo)售目標,又沒(méi)有24小時(shí)的品牌展示?
● SEO優(yōu)化,關(guān)鍵詞排名能否穩定?沒(méi)有豐富的網(wǎng)站內容,是否被搜索引擎收錄?
● 潛在精準客戶(hù)很難通過(guò)搜索引擎找到您的網(wǎng)站,網(wǎng)站價(jià)值無(wú)法體現?
● 組建自己的SEO團隊,但成本太高,沒(méi)有達到預期目標?
1.提高網(wǎng)站加載速度
除了少數幾次,谷歌很少公開(kāi)其算法中的排名因素。因此,他們公布的每一個(gè)排名因素對于SEO來(lái)說(shuō)都是一種非常有價(jià)值的信息,值得所有做英文SEO優(yōu)化的人去關(guān)注。
網(wǎng)站速度是谷歌公布的排名因素之一,尤其是移動(dòng)搜索排名。
首先,您必須了解您網(wǎng)站的當前速度。推薦使用谷歌的PageSpeed Insights工具,輸入你的網(wǎng)頁(yè)網(wǎng)址,就可以得到谷歌對其速度的詳細評價(jià)。
PageSpeed Insights 是對頁(yè)面速度性能的測試,不包括實(shí)際速度測試。要了解網(wǎng)站的實(shí)際加載速度,我們可以使用免費工具網(wǎng)頁(yè)測試。
測試時(shí),您可以自由選擇測試區域。如果是外貿網(wǎng)站,一般可以選擇美國地區進(jìn)行測試,這也是默認選項。如果是國內的網(wǎng)站,那自然是選擇中國比較好。也就是選擇測試區域作為你的目標用戶(hù)所在的區域,畢竟網(wǎng)站是供他們訪(fǎng)問(wèn)的。
這個(gè)工具不僅可以查看實(shí)際的加載速度,還有對應的檢測報告,更詳細的資源加載耗時(shí):
站點(diǎn)速度對于排名很重要,但不應過(guò)分關(guān)注。從對超過(guò)1000萬(wàn)條排名數據的研究中,我們發(fā)現網(wǎng)站速度對排名沒(méi)有明顯的促進(jìn)作用。也就是說(shuō),您的網(wǎng)站快或慢并不重要;但是,如果網(wǎng)站打開(kāi)速度太慢,則必須進(jìn)行整改。一般建議網(wǎng)站能秒打開(kāi),最好不要慢于3秒。
一般來(lái)說(shuō),網(wǎng)站的速度取決于所使用的主機和頁(yè)面的大小。因此,選擇一臺質(zhì)量好的主機非常重要。對于外貿網(wǎng)站,我們推薦使用Siteground主機。盡量不要在網(wǎng)頁(yè)上使用尺寸過(guò)大的圖片,也不要加載過(guò)多的媒體資源,以免拖慢訪(fǎng)問(wèn)速度。
根據一項研究,在谷歌首頁(yè)排名第一的英文網(wǎng)站通常比排名在首頁(yè)底部的網(wǎng)站加載速度更快。
因此,如果你想做好英文SEO,你需要讓你的網(wǎng)站加載速度更快。
2、爭取谷歌Featured Snippets專(zhuān)項展示
如果我們對Featured Snippets做一個(gè)定位,我們可以稱(chēng)它為排名0的位置,也就是說(shuō)它比排名第一的位置要好。
作為第54個(gè)技巧,我們在Google SEO詞條優(yōu)化技巧中也討論過(guò)這一點(diǎn),下面會(huì )做一些補充,具體是如何操作才能拿下這個(gè)展示位置。
首先,您必須找到一個(gè) 關(guān)鍵詞 和您已經(jīng)獲得良好排名的相應頁(yè)面。這個(gè)排名在第一頁(yè)是最好的,因為根據 Ahrefs 的統計,99.58% 的 Featured Snippets 都是從第一頁(yè)結果中挑選出來(lái)的。
所以,想要爭奪這個(gè)特殊的展示空間,首先得跨過(guò)首頁(yè)這道門(mén)檻。
接下來(lái),你需要有一個(gè)明確的內容定位來(lái)滿(mǎn)足Featured Snippets的要求。一般來(lái)說(shuō),特殊展示空間的內容有以下幾種:
定義類(lèi)、名詞解釋?zhuān)ɡ纾菏裁词荢EO)
推薦類(lèi)別,1、2、3...排名(例如:Top 10 SEO 工具)
表類(lèi),如價(jià)格、型號等(例如:SEO Prices)
根據首頁(yè)排名,您的內容需要定位在以上類(lèi)型中,才有機會(huì )被特選展示槽選中。被選中的好處不言而喻,是獲得這個(gè)關(guān)鍵詞流量的最佳位置。
3.提高用戶(hù)的停留時(shí)間
在我看來(lái),用戶(hù)在網(wǎng)站上的停留時(shí)間或者說(shuō)持續訪(fǎng)問(wèn)的時(shí)間可以看作是一個(gè)重要的英文SEO排名因素。試想一下,如果一個(gè)用戶(hù)進(jìn)入你的網(wǎng)站,然后迅速離開(kāi),這意味著(zhù)什么?說(shuō)明你的網(wǎng)站不是用戶(hù)需要的,或者不能提供用戶(hù)需要的信息。
谷歌會(huì )跟蹤和統計用戶(hù)行為,然后對網(wǎng)站排名做出調整。谷歌搜索的本質(zhì)是讓用戶(hù)更容易找到他們需要的東西。因此,用戶(hù)喜歡的英文網(wǎng)站排名會(huì )提高;用戶(hù)討厭的英文網(wǎng)站排名自然只會(huì )下降。
用戶(hù)的停留時(shí)間可以直接反映用戶(hù)對一個(gè)網(wǎng)站的喜好程度。
所以盡可能的降低用戶(hù)的跳出率,對于英文SEO是非常有幫助的。怎么做?下面分享幾個(gè)方法:
提高內容質(zhì)量,頁(yè)面內容不能只有幾張圖、幾句話(huà),要圍繞主題,盡可能擴展用戶(hù)會(huì )感興趣的知識點(diǎn)。推薦你閱讀這篇文章:外貿網(wǎng)站建設內容如何發(fā)布方便優(yōu)化
除了文字和圖片,可以考慮在內容中插入相應的視頻。實(shí)驗證明,這種方法也能起到很好的降低跳出率的作用。
4.附加鏈接
附加鏈接是出現在 Google 搜索結果中的網(wǎng)站鏈接。例如,您可以去谷歌搜索我們客戶(hù)的品牌:finemim,您可以看到這個(gè)網(wǎng)站的Sitelinks。
獲得Sitelinks表明谷歌已經(jīng)認可了本網(wǎng)站的品牌,并給予了本網(wǎng)站較高的信任度。相對的,谷歌會(huì )給這個(gè)網(wǎng)站更多的權重加成。
如何獲得附加鏈接?
首先,你的網(wǎng)站要有足夠多的優(yōu)質(zhì)內容;其次,你的網(wǎng)站結構要清晰,主題要明確。最后,保持網(wǎng)站活躍,定期更新優(yōu)質(zhì)內容。慢慢的,你的網(wǎng)站就能獲得Sitelinks了。
5. 吃
很久以前,英文網(wǎng)站或域名增加權重的方式就是單純依靠外鏈。
今天,谷歌會(huì )根據專(zhuān)業(yè)性、權威性和可信度三個(gè)方面來(lái)評估你網(wǎng)站的權重。這三個(gè)方面統稱(chēng)為EAT。
去年的Google Quality Score Guidelines明確指出了EAT的內容。
事實(shí)上,谷歌最近并沒(méi)有開(kāi)始關(guān)注EAT。EAT 的概念已經(jīng)存在好幾年了。只是谷歌現在更加重視EAT作為網(wǎng)站價(jià)值的衡量標準。
例如,最新版本的 Google 搜索工作原理報告指出,他們的目標是對可信賴(lài)的來(lái)源進(jìn)行良好排名。
甚至,他們提到 EAT 作為核心排名因素。
英文SEO的重點(diǎn)來(lái)了,如何提高自己網(wǎng)站的EAT?建議從以下幾點(diǎn)入手。
1.獲取專(zhuān)業(yè)人士撰寫(xiě)的內容
網(wǎng)站內容越專(zhuān)業(yè)越好,最好由業(yè)內知名人士或機構撰寫(xiě)。在普通人寫(xiě)的內容和行業(yè)專(zhuān)家寫(xiě)的內容之間,谷歌肯定更喜歡后者。
特別是醫學(xué)和醫學(xué)指導內容必須由具有相關(guān)資格的專(zhuān)家、學(xué)者或機構撰寫(xiě)。
這里的內容主要是指文章類(lèi)型的內容。文章有出版商,可以署名。
2. 公開(kāi)透明
谷歌建議大多數網(wǎng)站可以公開(kāi)一些信息,比如網(wǎng)站的負責人是誰(shuí),是個(gè)人、公司還是其他團體組織,以及詳細的聯(lián)系方式。
因此,最好在您的英文網(wǎng)站中收錄
以下信息:
關(guān)于我們
聯(lián)系我們
相關(guān)資源的引用鏈接
隱私政策和服務(wù)條款
作者簽名
3. 被其他權威網(wǎng)站提及
你說(shuō)你是權威、專(zhuān)家也沒(méi)用。只有很多人認可你的專(zhuān)業(yè),你才是真正的專(zhuān)業(yè)。如果你說(shuō)你是專(zhuān)業(yè)的,別人不承認,那么谷歌就會(huì )相信后者,這是大多數人的意見(jiàn)。
因此,獲得其他網(wǎng)站的認可非常重要。簡(jiǎn)而言之,這意味著(zhù)擁有來(lái)自其他高質(zhì)量網(wǎng)站的反向鏈接,并且這些鏈接來(lái)自正面內容,而不是負面新聞。
6.搜索意圖
搜索意圖在過(guò)去兩年一直是谷歌搜索引擎優(yōu)化的熱點(diǎn)。說(shuō)白了,如果網(wǎng)站內容不符合搜索意圖,那么網(wǎng)站就得不到任何排名。因為,谷歌正在不斷改進(jìn)其算法,以便為用戶(hù)提供最符合他們需求的結果。因此,要想做好英文SEO,就必須了解搜索意圖。
用戶(hù)每次使用 關(guān)鍵詞 搜索都是有目的的,沒(méi)有多少人會(huì )什么都不搜索。換句話(huà)說(shuō),關(guān)鍵詞背后是用戶(hù)的特定需求。
它可能是用戶(hù)尋找某物、購買(mǎi)、比較等的意圖。同樣的 關(guān)鍵詞 背后可能有不止一個(gè)用戶(hù)需求。
因此,只有搞清楚你要排名的關(guān)鍵詞中收錄
的用戶(hù)需求,然后讓網(wǎng)站內容滿(mǎn)足這些需求,才能獲得更好的排名。
有的時(shí)候,關(guān)鍵詞就是需求,明確表達用戶(hù)的需求,比如買(mǎi)東西;很明顯,使用這個(gè)關(guān)鍵詞的用戶(hù),基本上都有購買(mǎi)商品的需求。
Google 還將提供有關(guān)可供購買(mǎi)的產(chǎn)品的反饋。
但是,有時(shí)關(guān)鍵詞收錄
的用戶(hù)需求并不明顯,存在多種可能性。例如,當用戶(hù)在谷歌搜索“英文SEO”這個(gè)詞時(shí),有的用戶(hù)是在尋找相關(guān)信息,有的是為了學(xué)習,還有的是在尋找這樣的服務(wù)等等。
這時(shí)候你應該去搜索這個(gè)詞,看看哪些類(lèi)型的頁(yè)面在谷歌首頁(yè)上排名靠前。如果做SEO的公司占據更多首頁(yè),說(shuō)明谷歌更傾向于提供服務(wù)商信息;如果是文章類(lèi)型的頁(yè)面More,說(shuō)明Google更傾向于為這個(gè)關(guān)鍵詞提供文章信息。
假設首頁(yè)只有文章類(lèi)型的頁(yè)面,說(shuō)明Google對這個(gè)關(guān)鍵詞的意圖是文章素材的內容。嗯,如果你想這樣做 關(guān)鍵詞,你的網(wǎng)站上也必須有相應的文章頁(yè)面。
7.提高點(diǎn)擊率(CTR)
點(diǎn)擊率(CTR)也是谷歌衡量一個(gè)網(wǎng)站能否滿(mǎn)足用戶(hù)需求的指標。這就好比,一個(gè)公司考核員工的績(jì)效,我把你放在一個(gè)職位上,你能不能勝任這個(gè)職位,如果能,你就留下來(lái),以后還有機會(huì )升職;如果你不能,那就退位。
例如,Google 將您的英文網(wǎng)站排在首頁(yè)的第三位。結果,搜索 關(guān)鍵詞 的 100 名用戶(hù)中只有 10 名點(diǎn)擊了您的網(wǎng)站,而 20、30 甚至更多的用戶(hù)點(diǎn)擊了排名在您之后的網(wǎng)站。這給了谷歌一個(gè)明確的信號,表明用戶(hù)對你的網(wǎng)站不感興趣。如果這種情況長(cháng)期存在,你的網(wǎng)站排名肯定會(huì )下降。
早些時(shí)候,我們談到了用戶(hù)停留時(shí)間對網(wǎng)站排名的影響。用戶(hù)點(diǎn)擊進(jìn)入網(wǎng)站是第一步,接下來(lái)就是停留多久。如果沒(méi)有點(diǎn)擊,就沒(méi)有后續。
因此,有必要盡可能地提高您網(wǎng)站的點(diǎn)擊率。這就要求你的網(wǎng)站在谷歌上的搜索內容能夠吸引用戶(hù)并產(chǎn)生點(diǎn)擊欲望。為此,我們有以下建議。
URL 收錄
目標 關(guān)鍵詞
Google的搜索結果中收錄
網(wǎng)頁(yè)的Url信息,用戶(hù)可以直觀(guān)的看到網(wǎng)頁(yè)的Url。如果Url中收錄
用戶(hù)搜索的關(guān)鍵詞,會(huì )增加用戶(hù)對這個(gè)頁(yè)面的期待值。
據統計,收錄
用戶(hù)搜索詞的 Url 頁(yè)面比不收錄
它們的頁(yè)面獲得的點(diǎn)擊次數多 45%。
在標題中使用情感詞
標題中使用情感詞相當于每個(gè)人都穿著(zhù)西裝,但你穿著(zhù)運動(dòng)服,顯得與眾不同。歸根結底,這完全是一個(gè)取巧的方法,并不容易掌握。因為很多非正式網(wǎng)站都會(huì )使用這種標題方式。一些用戶(hù)對具有此類(lèi)標題的網(wǎng)頁(yè)缺乏信任。
因此,使用此方法可能會(huì )增加您的點(diǎn)擊率;但是,它也可能導致負面影響。
這只是為了擴展知識,一般情況下不建議使用。
重要頁(yè)面配有原創(chuàng )
描述
在谷歌搜索結果中,除了頁(yè)面標題和Url,大部分區域顯示頁(yè)面的描述。因此,頁(yè)面描述非常重要。需要參加排名賽的重要英文頁(yè)面需要設置合理的描述內容。
如果您沒(méi)有設置該內容,但您的頁(yè)面有富文本描述,則無(wú)需設置,Google會(huì )智能識別、抓取和優(yōu)化。如果不設置描述內容,頁(yè)面上沒(méi)有實(shí)質(zhì)性的文字描述,對點(diǎn)擊率會(huì )比較不利。
據統計,有描述的頁(yè)面比沒(méi)有描述的頁(yè)面點(diǎn)擊率高6%。
8.建立高質(zhì)量的英文外鏈
自從有了搜索引擎,就有了外鏈的概念。最初的谷歌是根據外部鏈接的因素來(lái)確定搜索排名的。這導致了刷外鏈等作弊手段的泛濫,使得很多真正優(yōu)質(zhì)的網(wǎng)站被埋沒(méi),也使得網(wǎng)絡(luò )上充斥著(zhù)各種專(zhuān)門(mén)提供垃圾外鏈的垃圾網(wǎng)站。
隨著(zhù)谷歌算法的改進(jìn),外鏈的作用一直在下降,垃圾外鏈的作用幾乎為零,甚至可能給網(wǎng)站帶來(lái)不利的處罰。盡管外部鏈接不再是排名的唯一因素,但它們仍然是當今谷歌排名的關(guān)鍵因素;這里的外部鏈接是指高質(zhì)量的外部鏈接,不是垃圾鏈接。
關(guān)于外部鏈接的作用,谷歌最近公開(kāi)承認它是排名的關(guān)鍵參考。
目前外鏈對谷歌排名的影響還是很大的。SEMrush 發(fā)表的一項研究表明,反向鏈接與高排名之間仍然存在很強的相關(guān)性。
關(guān)于外鏈的搭建方法,我們在另一篇文章:Google SEO英文外鏈搭建中有詳細的介紹,這里不再贅述。
還有一點(diǎn),建議多發(fā)表一些高質(zhì)量的知識文章和解答,有利于別人主動(dòng)鏈接到你的頁(yè)面。例如,為什么 xxx,什么 xxx
總之,要想自己的英文網(wǎng)站有好的排名,甚至是首頁(yè)排名,高質(zhì)量的反向鏈接是必不可少的。而且,最好有英文的外部鏈接。
9. 用戶(hù)評論
很多人可能不知道,真實(shí)的用戶(hù)評論對英文SEO排名非常有利。最常見(jiàn)的是博客文章底部的評論功能?;ヂ?lián)網(wǎng)的本質(zhì)是信息的傳遞和交互。用戶(hù)對內容的評論是互動(dòng)的明顯信號,谷歌更喜歡這種互動(dòng)內容。
注意,這里所說(shuō)的互動(dòng)是真實(shí)用戶(hù)產(chǎn)生的,不是你自己在自己的文章下做假評論。這很容易識別。谷歌可以抓取評論者使用的設備、來(lái)源、IP等信息。因此,自我故意的評論是無(wú)效的。
10.刪除無(wú)用頁(yè)面
一個(gè)英文網(wǎng)站或多或少都會(huì )有一些沒(méi)有價(jià)值的頁(yè)面,比如:內容重復的頁(yè)面,沒(méi)有內容的頁(yè)面,信息過(guò)時(shí)的頁(yè)面等等。如果一個(gè)網(wǎng)站中這樣的頁(yè)面不多,基本上不會(huì )有什么不良影響對網(wǎng)站排名的影響。但是,如果有很多這樣的頁(yè)面,那就不好了。
我找了一個(gè)例子,一個(gè)國外的旅游公司網(wǎng)站。運營(yíng)商注意到他們的網(wǎng)站上大約有 50 個(gè)頁(yè)面具有相同的內容。然后,他們做了一件事,就是把這50頁(yè)的內容,整合成內容差異較大的4頁(yè)。
一段時(shí)間后,他們發(fā)現網(wǎng)站的搜索流量增加了 36.9%:
因此,每個(gè)頁(yè)面的內容應盡量避免雷同。如果網(wǎng)站中有很多無(wú)意義的頁(yè)面,最好整合或直接刪除。
11.在頁(yè)面內容中盡早出現關(guān)鍵詞
您的目標 關(guān)鍵詞 需要出現在頁(yè)面的內容中。這是很多人都知道的Google SEO常識,因為只有你的內容收錄
關(guān)鍵詞,這個(gè)頁(yè)面才會(huì )生成與關(guān)鍵詞關(guān)聯(lián)。
但是,您可能不知道 關(guān)鍵詞 出現在不同的位置,這可能會(huì )影響您網(wǎng)頁(yè)的排名能力。
至于關(guān)鍵詞何時(shí)出現在頁(yè)面上,我們的建議是在前幾句中至少收錄
一個(gè)關(guān)鍵詞。為什么?因為,谷歌更關(guān)注出現在頁(yè)面開(kāi)頭的內容。在其思維邏輯中,頁(yè)面的主題或焦點(diǎn)不能也不應該出現得太晚。
比如我們網(wǎng)站上一篇關(guān)于谷歌排名查詢(xún)的文章,文章的重點(diǎn)自然是“谷歌排名查詢(xún)”,我們在文章開(kāi)頭使用了關(guān)鍵詞。
12.創(chuàng )建獨特的頁(yè)面內容
我們一直向客戶(hù)強調:要在谷歌排名優(yōu)化中取得好的效果,網(wǎng)站內容必須是原創(chuàng )的,不能有重復和抄襲。關(guān)于這一點(diǎn),谷歌在其部分文件中也有明確說(shuō)明。谷歌建議所有網(wǎng)站不要復制網(wǎng)上已有的內容。
所以,在做英文SEO的時(shí)候,一定要注意網(wǎng)站的內容。如果我們發(fā)現有很多重復或相似的內容,我們會(huì )告訴客戶(hù)需要整改。除了網(wǎng)頁(yè)上的內容,頁(yè)面的標題也需要獨一無(wú)二。確保站點(diǎn)上沒(méi)有任何頁(yè)面使用相同的標題,并且盡量不要使用與其他站點(diǎn)完全相同的標題。
如果遇到無(wú)法避免的內部重復問(wèn)題,可以使用Canonical標簽來(lái)指明這些相同頁(yè)面中哪些是主版本,從而避免內部權重分散。
大型電商網(wǎng)站一般是這類(lèi)問(wèn)題的高發(fā)區,因為上面有很多類(lèi)似的商品,很難一一打造出獨一無(wú)二的內容。不過(guò),不管怎么說(shuō),有本事的話(huà),還是多派點(diǎn)人手,為每個(gè)頁(yè)面做獨立的內容吧,至少不能太雷同。如果不行,就用上面的標簽進(jìn)行處理。
十三、優(yōu)化頁(yè)面標題
頁(yè)面標題是站內優(yōu)化的重點(diǎn)之一。Google 表示:為您的網(wǎng)頁(yè)使用高質(zhì)量的標題很重要。
那么,優(yōu)化頁(yè)面標題應該注意哪些方面呢?
首先,盡量在標題中盡早放置 關(guān)鍵詞。就像我上面剛剛引用的谷歌排名查詢(xún)的例子,你可以發(fā)現我把 關(guān)鍵詞 直接放在了標題的頂部。你為什么這么做?
與頁(yè)面內容類(lèi)似,當谷歌查看頁(yè)面標題時(shí),它也會(huì )關(guān)注最前面的內容。那么,此頁(yè)面的目標 關(guān)鍵詞 是什么?建議將其放置在盡可能高的位置,以便 Google 可以識別頁(yè)面的關(guān)鍵點(diǎn)。
所以不要把你能想到的每一個(gè) 關(guān)鍵詞 都堆放在頁(yè)面標題中,這是沒(méi)有意義的。后面出現的關(guān)鍵詞基本會(huì )被Google忽略,過(guò)多的關(guān)鍵詞會(huì )影響Google對頁(yè)面重心的識別。什么都想要,到頭來(lái)往往一事無(wú)成。
我們的建議是一個(gè)頁(yè)面不要有多個(gè)重心,主要目標應該在一個(gè)關(guān)鍵詞上。對此,谷歌也明確表示。
在優(yōu)化標題時(shí),不僅要關(guān)注Google喜歡什么樣的標題,還要站在用戶(hù)的角度來(lái)擬定標題。因為,用戶(hù)喜歡的,谷歌一定喜歡;而且,谷歌喜歡的東西,用戶(hù)不一定喜歡。
看了上面的內容,遇到設置標題的時(shí)候不要把關(guān)鍵詞放在最前面。您還需要結合用戶(hù)的閱讀體驗,使標題易于閱讀和吸引人。為此,把關(guān)鍵詞往后放一點(diǎn)也沒(méi)關(guān)系。
比如我們的一篇文章針對“尚未收錄”的問(wèn)題,但是結合用戶(hù)的閱讀情況和遇到問(wèn)題的地方,我們將整個(gè)標題設置如下:
頁(yè)面的標題最好是能吸引用戶(hù)的一句話(huà)。只有這樣,用戶(hù)在搜索引擎結果中找到你的頁(yè)面時(shí),才會(huì )更愿意點(diǎn)擊。這對排名非常重要。如果你的頁(yè)面只排在第三位,很多用戶(hù)在搜索對應的關(guān)鍵詞時(shí),大部分會(huì )選擇你的頁(yè)面點(diǎn)擊查看;很長(cháng)一段時(shí)間后,谷歌會(huì )認為您的此頁(yè)面更相關(guān),并且會(huì )提升您的排名。
因此,在優(yōu)化英文網(wǎng)站時(shí),一定要記住,你不是在為谷歌優(yōu)化,而是在為用戶(hù)優(yōu)化。
14. 使用谷歌站長(cháng)工具監控網(wǎng)站性能
可以說(shuō),做谷歌排名優(yōu)化離不開(kāi)谷歌站長(cháng)工具的使用,這個(gè)工具可以讓你清楚地知道你的網(wǎng)站在谷歌搜索中的表現如何。
這個(gè)工具有很多功能,包括前面提到的PageSpeed Insights,這里介紹幾個(gè)主要的功能:
績(jì)效報告
在谷歌站長(cháng)工具的性能報告中,您可以看到您的網(wǎng)站在谷歌搜索中被顯示了多少次,有多少人點(diǎn)擊了,以及平均點(diǎn)擊率和排名。
再往下,您可以看到準確的 關(guān)鍵詞 排名、展示次數和點(diǎn)擊次數。還可以查看不同網(wǎng)頁(yè)的表現,不同國家和地區的搜索表現等。
從長(cháng)遠來(lái)看,如果您的網(wǎng)站性能的展示次數和點(diǎn)擊次數呈上升趨勢,則說(shuō)明您的優(yōu)化策略是正確的。
覆蓋率報告
檢查您的網(wǎng)站覆蓋率。它會(huì )清楚地顯示您的網(wǎng)站中有多少頁(yè)面被谷歌收錄和顯示,即有效頁(yè)面數。同時(shí),它也會(huì )顯示錯誤的頁(yè)面。如果發(fā)現錯誤,請嘗試盡快更正它們。
常見(jiàn)錯誤及解決方法可參考:谷歌站長(cháng)工具提示“尚未收錄”收錄不理想怎么辦
移動(dòng)可用性報告
自從谷歌推出其移動(dòng)優(yōu)先索引規則以來(lái),移動(dòng)適應性已成為一個(gè)非常重要的排名因素。在此報告中,您可以查看網(wǎng)站上有多少頁(yè)面適合移動(dòng)設備。
在實(shí)際使用過(guò)程中,我們發(fā)現該報告顯示的頁(yè)數會(huì )比實(shí)際情況少很多。所以,如果你有很多索引頁(yè)面,但這里只顯示了一小部分,不要擔心,只要沒(méi)有錯誤信息即可。
15.圖片優(yōu)化
上面我們已經(jīng)提到了一些關(guān)于圖片的注意事項,比如不要使用太大的圖片和壓縮圖片的大小。下面我們繼續深入探討圖片優(yōu)化的要點(diǎn)。
根據谷歌的報告:圖片的 Alt 屬性可以幫助網(wǎng)頁(yè)在搜索排名中表現更好
因此,如果您在頁(yè)面上使用圖像,則需要確保它們經(jīng)過(guò)適當優(yōu)化。圖片優(yōu)化,除了使用大小合適的圖片外,只需要把握兩個(gè)關(guān)鍵點(diǎn)。
給圖片合理命名:雖然現在谷歌已經(jīng)具備了一定的識別圖片內容的能力,但是這種識別還是很粗糙的。它無(wú)法像真人一樣理解圖片的含義。圖片的名稱(chēng)可以幫助谷歌更好地了解圖片的內容。
比如你的網(wǎng)頁(yè)上有一張煎餅的圖片,不要隨意命名,比如image123.jpg或者image123.png,而是根據圖片的描述性語(yǔ)句來(lái)命名,比如Say: A stack of pancakes on桌子
Alt屬性必須填寫(xiě):谷歌已經(jīng)聲明他們會(huì )通過(guò)圖片的Alt屬性來(lái)了解圖片的內容。
對于您網(wǎng)站上使用的每張圖片,您必須填寫(xiě)適當的 Alt 屬性。就像起名一樣,不要亂,看圖寫(xiě)圖所表達的內容。
16、合理使用內部鏈接
內部鏈接是您網(wǎng)站的一個(gè)頁(yè)面上指向網(wǎng)站上另一個(gè)頁(yè)面的鏈接,通常出現在頁(yè)面的正文中。
使用內部鏈接時(shí),這里有一些提示可以幫助您更好地使用它。
使用錨文本鏈接:錨文本鏈接傳遞權重的效率遠高于URL鏈接。錨文本鏈接的錨文本內容盡量收錄
目標頁(yè)面的關(guān)鍵詞,或者直接使用目標頁(yè)面的標題。
不要濫用內鏈:內鏈可以起到傳遞權重的作用,但是不要刻意利用內鏈來(lái)推動(dòng)某個(gè)頁(yè)面的排名,Google可以識別出不合理的權重傳遞。
例如,一些客戶(hù)喜歡在產(chǎn)品頁(yè)面中插入大量指向其他產(chǎn)品的鏈接。這是明顯的故意插入鏈接的行為,會(huì )損害頁(yè)面的健康和內容的自然度。
之前我們做過(guò)一個(gè)實(shí)驗,使用大量的內鏈來(lái)提升一個(gè)頁(yè)面的排名,結果確實(shí)有效,那個(gè)頁(yè)面的排名從第6頁(yè)排到了第3頁(yè),但是只維持了更少的排名比一周之內,該頁(yè)面被谷歌懲罰并下降到第 9 頁(yè)。
你可以從用戶(hù)的角度考慮是否需要使用內部鏈接。比如一篇文章提到了另一篇文章的重點(diǎn);然后,可以使用內部鏈接將此關(guān)鍵點(diǎn)鏈接到相應的頁(yè)面。因為這個(gè)鏈接可以幫助用戶(hù)了解更多相關(guān)信息,對用戶(hù)來(lái)說(shuō)是有價(jià)值的。
17.發(fā)布優(yōu)質(zhì)內容
在任何專(zhuān)業(yè)的 Google SEO 研究網(wǎng)站上,您都可以找到強調內容重要性的文章。
發(fā)布原創(chuàng )有價(jià)值的內容,對于英文SEO優(yōu)化具有重要意義。因為,內容是所有SEO的基礎。
高質(zhì)量的內容是谷歌一直提倡的,而且這個(gè)標準也在不斷提高。如果你仔細觀(guān)察,你會(huì )發(fā)現,在過(guò)去的網(wǎng)站上,一篇1000字左右的文章比較少,但現在卻普遍可見(jiàn)。平均而言,創(chuàng )作者在每篇文章上花費的時(shí)間都在逐年增加:
因此,網(wǎng)站的內容是每個(gè)網(wǎng)站運營(yíng)者都必須多加注意的。持續輸出優(yōu)質(zhì)內容是獲得谷歌青睞的重中之重。
18.改善網(wǎng)站的用戶(hù)體驗
用戶(hù)體驗這個(gè)因素可以說(shuō)直接關(guān)系到谷歌排名。谷歌可以通過(guò)用戶(hù)的訪(fǎng)問(wèn)行為感知本網(wǎng)站對用戶(hù)的價(jià)值。如果用戶(hù)在搜索結果中點(diǎn)擊進(jìn)入您的頁(yè)面,很快跳出,然后點(diǎn)擊進(jìn)入另一個(gè)結果,這就告訴谷歌您的頁(yè)面不符合他們的需求。結果是,隨著(zhù)時(shí)間的推移,Google 會(huì )降低您的網(wǎng)頁(yè)排名。
您可以使用 Google Analytics 來(lái)衡量您的網(wǎng)站跳出率。如果你發(fā)現你的網(wǎng)站跳出率很高,說(shuō)明你的頁(yè)面不能滿(mǎn)足大部分用戶(hù)的需求,頁(yè)面內容質(zhì)量有待提高。
如果你的英文網(wǎng)站不好用,有很多彈窗廣告、死鏈接等,這些對用戶(hù)體驗都是很不好的。
外貿SEO功能
搜索引擎優(yōu)化(Search Engine Optimization,簡(jiǎn)稱(chēng)SEO)是一種利用搜索引擎搜索規則來(lái)提高目標網(wǎng)站在相關(guān)搜索引擎中排名的方法。由于許多研究發(fā)現搜索引擎用戶(hù)往往只關(guān)注搜索結果中的前幾項,因此許多網(wǎng)站希望通過(guò)各種形式影響搜索引擎的排名。SEO(搜索引擎優(yōu)化)是一種有效、持久且經(jīng)濟的搜索引擎營(yíng)銷(xiāo)方式,其主要特點(diǎn)有:
1.覆蓋面廣:被選中的關(guān)鍵詞出現在谷歌中英文搜索結果首頁(yè)之外,也出現在全球網(wǎng)站的自然排名中:Aol、Netscape、CompuServe、Ask、Yahoo、Hotbot、Earthlink、Infoseek 、Sympatico等將大幅增加;
2、無(wú)需擔心惡意點(diǎn)擊:與關(guān)鍵詞合作,采用包年形式,可完全避免惡意點(diǎn)擊;
3、長(cháng)期效果:搜索引擎優(yōu)化從本質(zhì)上提高了網(wǎng)站的綜合性能,提高了網(wǎng)絡(luò )的整體覆蓋率,從而贏(yíng)得了潛在客戶(hù)。
我們的優(yōu)勢
1、豐富的英文SEO實(shí)戰經(jīng)驗我們長(cháng)期從事搜索引擎排名規律的研究,經(jīng)常與國內外SEO(搜索引擎優(yōu)化)專(zhuān)家交流。因此,我們的技術(shù)團隊非常熟悉各大搜索引擎的排名規則;
2、豐富的網(wǎng)絡(luò )資源:對于搜索引擎排名,尤其是谷歌排名,網(wǎng)絡(luò )資源必不可少。只有擁有豐富的網(wǎng)絡(luò )資源,才能在短時(shí)間內達到客戶(hù)網(wǎng)站的排名效果;
3、系統化服務(wù):我們擁有專(zhuān)業(yè)的SEO團隊,為客戶(hù)提供系統化的服務(wù),值得您信賴(lài);
4、良好的服務(wù)口碑:眾多案例說(shuō)明一切,按效果說(shuō)話(huà),無(wú)效押金退還;
5、專(zhuān)業(yè)的訪(fǎng)問(wèn)統計系統:能夠反映網(wǎng)站每天的訪(fǎng)問(wèn)情況,來(lái)源方式等都可以分析清楚。返回搜狐查看更多
編輯: 查看全部
解決方案:webrtc的音視頻同步處理一
WebRTC的音視頻同步處理之一
WebRTC如何處理內部音頻和視頻同步?
幾個(gè)主要詞:捕獲時(shí)間、
渲染時(shí)間、RTP 的時(shí)間戳、SR、計算 NTP
讓我們從視頻捕獲過(guò)程開(kāi)始
1. 調用堆棧
2. 采集
The VideoCaptureImpl::IncomingFrame
調用 set_timestamp_ms() 設置時(shí)間
rtc::TimeMillis() 此時(shí)間是獲取的
CLOCK_MONOTONIC:計時(shí)從系統啟動(dòng)的那一刻開(kāi)始,不受用戶(hù)更改的系統時(shí)間的影響
此值分配給timestamp_us_
3. 繼續執行并進(jìn)入
4. 您可以看到此處設置了 NTP
incoming_frame.set_ntp_time_ms(capture_ntp_time_ms);
未來(lái)有三個(gè)分支計算capture_ntp_time_ms

斷點(diǎn)調試排在第二位,為什么?
因為 video_frame.render_time_ms() 獲取timestamp_us_,所以之前設置的時(shí)間是從引導時(shí)間計算的
但delta_ntp_internal_ms_補充一下,這個(gè)價(jià)值是怎么來(lái)的?
5. 接下來(lái),在 RTP 中生成時(shí)間戳,該時(shí)間戳仍在
設置ntp,生成時(shí)間戳,下一步就是放入編碼隊列和編碼線(xiàn)程進(jìn)行編碼
6.總結一下:
delta_ntp_internal_ms_ = 絕對時(shí)間 - 自啟動(dòng)打開(kāi)以來(lái)的時(shí)間
timestamp_us_ = render_time_ms() =
set_timestamp_ms() = 自啟動(dòng)以來(lái)的時(shí)間
ntp_time_ms_ = 絕對時(shí)間 = timestamp_us_ + delta_ntp_internal_ms_
時(shí)間戳 = 90*ntp_time_ms_
7. 編碼后的調用堆棧
8.函數 RtpVideoSender::OnEncodedImage().
您可以看到rtp_timestamp有一個(gè)偏移值 rtp_rtcp->StartTimestamp()。事實(shí)證明,這是一個(gè)隨機值,為安全而加密。

9. 此代碼是重頭戲,設置 RTCP 時(shí)間戳和 NTP 之間的對應關(guān)系以生成 SR
這個(gè)capture_time_ms中間繞了好幾圈,還是打開(kāi)到現在的時(shí)間。
10. 發(fā)送的每一幀數據都會(huì )刷新與 RTCP 時(shí)間點(diǎn)擊對應的 NTP
11. 接下來(lái),讓我們看看 sr 是如何打包的
rtp_timestamp = 初始偏移量 + 發(fā)送幀的 tm
+ 上次發(fā)送到當前經(jīng)過(guò)的幀的 tm
NTP 是當前時(shí)間,但需要轉換
report->SetNtp(TimeMicrosToNtp(ctx.now_us_));
sr 中的 NTP 分為兩部分:
秒是正常符號
幾秒鐘后,它被分成 2 的 32 次方
12. 總結一下:
總體而言,該過(guò)程還隱藏了一些鏈接:
NTP 計算生成時(shí)間戳
收錄
時(shí)間戳和 ntp 之間的對應關(guān)系。
請注意,SR 中 NTP 的表示分為 2 的 32 次方,而不是毫秒
分享技術(shù):外貿整合營(yíng)銷(xiāo)谷歌SEO簡(jiǎn)介
升騰科技外貿整合營(yíng)銷(xiāo)基于8年外貿推廣經(jīng)驗研發(fā),以SEO為核心的智能網(wǎng)絡(luò )營(yíng)銷(xiāo)系統平臺,集多語(yǔ)言建站(Web)、搜索引擎優(yōu)化(SEO)、社交媒體大數據于一體營(yíng)銷(xiāo)(SNS)、搜索引擎營(yíng)銷(xiāo)(SEM)、視頻營(yíng)銷(xiāo)(Video)、交易員數據(DMS)、B2B平臺推廣(B2B)營(yíng)銷(xiāo)模式,幫助外貿企業(yè)通過(guò)多語(yǔ)言、多關(guān)鍵詞 、多搜索引擎、多渠道推廣的模式整合,實(shí)現低成本獲取優(yōu)質(zhì)客戶(hù)。
你有沒(méi)有擔心遇到這樣的問(wèn)題?
● 沒(méi)有流量,網(wǎng)站就不能跨入網(wǎng)絡(luò )營(yíng)銷(xiāo)的門(mén)檻?
● 網(wǎng)站關(guān)鍵詞沒(méi)有排名,前五的搜索引擎流量很少?
● SEO優(yōu)化時(shí)間成本高,能否滿(mǎn)足公司的銷(xiāo)售目標,又沒(méi)有24小時(shí)的品牌展示?
● SEO優(yōu)化,關(guān)鍵詞排名能否穩定?沒(méi)有豐富的網(wǎng)站內容,是否被搜索引擎收錄?
● 潛在精準客戶(hù)很難通過(guò)搜索引擎找到您的網(wǎng)站,網(wǎng)站價(jià)值無(wú)法體現?
● 組建自己的SEO團隊,但成本太高,沒(méi)有達到預期目標?
1.提高網(wǎng)站加載速度
除了少數幾次,谷歌很少公開(kāi)其算法中的排名因素。因此,他們公布的每一個(gè)排名因素對于SEO來(lái)說(shuō)都是一種非常有價(jià)值的信息,值得所有做英文SEO優(yōu)化的人去關(guān)注。
網(wǎng)站速度是谷歌公布的排名因素之一,尤其是移動(dòng)搜索排名。
首先,您必須了解您網(wǎng)站的當前速度。推薦使用谷歌的PageSpeed Insights工具,輸入你的網(wǎng)頁(yè)網(wǎng)址,就可以得到谷歌對其速度的詳細評價(jià)。
PageSpeed Insights 是對頁(yè)面速度性能的測試,不包括實(shí)際速度測試。要了解網(wǎng)站的實(shí)際加載速度,我們可以使用免費工具網(wǎng)頁(yè)測試。
測試時(shí),您可以自由選擇測試區域。如果是外貿網(wǎng)站,一般可以選擇美國地區進(jìn)行測試,這也是默認選項。如果是國內的網(wǎng)站,那自然是選擇中國比較好。也就是選擇測試區域作為你的目標用戶(hù)所在的區域,畢竟網(wǎng)站是供他們訪(fǎng)問(wèn)的。
這個(gè)工具不僅可以查看實(shí)際的加載速度,還有對應的檢測報告,更詳細的資源加載耗時(shí):
站點(diǎn)速度對于排名很重要,但不應過(guò)分關(guān)注。從對超過(guò)1000萬(wàn)條排名數據的研究中,我們發(fā)現網(wǎng)站速度對排名沒(méi)有明顯的促進(jìn)作用。也就是說(shuō),您的網(wǎng)站快或慢并不重要;但是,如果網(wǎng)站打開(kāi)速度太慢,則必須進(jìn)行整改。一般建議網(wǎng)站能秒打開(kāi),最好不要慢于3秒。
一般來(lái)說(shuō),網(wǎng)站的速度取決于所使用的主機和頁(yè)面的大小。因此,選擇一臺質(zhì)量好的主機非常重要。對于外貿網(wǎng)站,我們推薦使用Siteground主機。盡量不要在網(wǎng)頁(yè)上使用尺寸過(guò)大的圖片,也不要加載過(guò)多的媒體資源,以免拖慢訪(fǎng)問(wèn)速度。
根據一項研究,在谷歌首頁(yè)排名第一的英文網(wǎng)站通常比排名在首頁(yè)底部的網(wǎng)站加載速度更快。
因此,如果你想做好英文SEO,你需要讓你的網(wǎng)站加載速度更快。
2、爭取谷歌Featured Snippets專(zhuān)項展示
如果我們對Featured Snippets做一個(gè)定位,我們可以稱(chēng)它為排名0的位置,也就是說(shuō)它比排名第一的位置要好。
作為第54個(gè)技巧,我們在Google SEO詞條優(yōu)化技巧中也討論過(guò)這一點(diǎn),下面會(huì )做一些補充,具體是如何操作才能拿下這個(gè)展示位置。
首先,您必須找到一個(gè) 關(guān)鍵詞 和您已經(jīng)獲得良好排名的相應頁(yè)面。這個(gè)排名在第一頁(yè)是最好的,因為根據 Ahrefs 的統計,99.58% 的 Featured Snippets 都是從第一頁(yè)結果中挑選出來(lái)的。
所以,想要爭奪這個(gè)特殊的展示空間,首先得跨過(guò)首頁(yè)這道門(mén)檻。
接下來(lái),你需要有一個(gè)明確的內容定位來(lái)滿(mǎn)足Featured Snippets的要求。一般來(lái)說(shuō),特殊展示空間的內容有以下幾種:
定義類(lèi)、名詞解釋?zhuān)ɡ纾菏裁词荢EO)
推薦類(lèi)別,1、2、3...排名(例如:Top 10 SEO 工具)
表類(lèi),如價(jià)格、型號等(例如:SEO Prices)
根據首頁(yè)排名,您的內容需要定位在以上類(lèi)型中,才有機會(huì )被特選展示槽選中。被選中的好處不言而喻,是獲得這個(gè)關(guān)鍵詞流量的最佳位置。
3.提高用戶(hù)的停留時(shí)間
在我看來(lái),用戶(hù)在網(wǎng)站上的停留時(shí)間或者說(shuō)持續訪(fǎng)問(wèn)的時(shí)間可以看作是一個(gè)重要的英文SEO排名因素。試想一下,如果一個(gè)用戶(hù)進(jìn)入你的網(wǎng)站,然后迅速離開(kāi),這意味著(zhù)什么?說(shuō)明你的網(wǎng)站不是用戶(hù)需要的,或者不能提供用戶(hù)需要的信息。
谷歌會(huì )跟蹤和統計用戶(hù)行為,然后對網(wǎng)站排名做出調整。谷歌搜索的本質(zhì)是讓用戶(hù)更容易找到他們需要的東西。因此,用戶(hù)喜歡的英文網(wǎng)站排名會(huì )提高;用戶(hù)討厭的英文網(wǎng)站排名自然只會(huì )下降。
用戶(hù)的停留時(shí)間可以直接反映用戶(hù)對一個(gè)網(wǎng)站的喜好程度。
所以盡可能的降低用戶(hù)的跳出率,對于英文SEO是非常有幫助的。怎么做?下面分享幾個(gè)方法:
提高內容質(zhì)量,頁(yè)面內容不能只有幾張圖、幾句話(huà),要圍繞主題,盡可能擴展用戶(hù)會(huì )感興趣的知識點(diǎn)。推薦你閱讀這篇文章:外貿網(wǎng)站建設內容如何發(fā)布方便優(yōu)化
除了文字和圖片,可以考慮在內容中插入相應的視頻。實(shí)驗證明,這種方法也能起到很好的降低跳出率的作用。
4.附加鏈接
附加鏈接是出現在 Google 搜索結果中的網(wǎng)站鏈接。例如,您可以去谷歌搜索我們客戶(hù)的品牌:finemim,您可以看到這個(gè)網(wǎng)站的Sitelinks。
獲得Sitelinks表明谷歌已經(jīng)認可了本網(wǎng)站的品牌,并給予了本網(wǎng)站較高的信任度。相對的,谷歌會(huì )給這個(gè)網(wǎng)站更多的權重加成。
如何獲得附加鏈接?
首先,你的網(wǎng)站要有足夠多的優(yōu)質(zhì)內容;其次,你的網(wǎng)站結構要清晰,主題要明確。最后,保持網(wǎng)站活躍,定期更新優(yōu)質(zhì)內容。慢慢的,你的網(wǎng)站就能獲得Sitelinks了。
5. 吃
很久以前,英文網(wǎng)站或域名增加權重的方式就是單純依靠外鏈。
今天,谷歌會(huì )根據專(zhuān)業(yè)性、權威性和可信度三個(gè)方面來(lái)評估你網(wǎng)站的權重。這三個(gè)方面統稱(chēng)為EAT。
去年的Google Quality Score Guidelines明確指出了EAT的內容。
事實(shí)上,谷歌最近并沒(méi)有開(kāi)始關(guān)注EAT。EAT 的概念已經(jīng)存在好幾年了。只是谷歌現在更加重視EAT作為網(wǎng)站價(jià)值的衡量標準。
例如,最新版本的 Google 搜索工作原理報告指出,他們的目標是對可信賴(lài)的來(lái)源進(jìn)行良好排名。
甚至,他們提到 EAT 作為核心排名因素。
英文SEO的重點(diǎn)來(lái)了,如何提高自己網(wǎng)站的EAT?建議從以下幾點(diǎn)入手。
1.獲取專(zhuān)業(yè)人士撰寫(xiě)的內容
網(wǎng)站內容越專(zhuān)業(yè)越好,最好由業(yè)內知名人士或機構撰寫(xiě)。在普通人寫(xiě)的內容和行業(yè)專(zhuān)家寫(xiě)的內容之間,谷歌肯定更喜歡后者。
特別是醫學(xué)和醫學(xué)指導內容必須由具有相關(guān)資格的專(zhuān)家、學(xué)者或機構撰寫(xiě)。
這里的內容主要是指文章類(lèi)型的內容。文章有出版商,可以署名。
2. 公開(kāi)透明
谷歌建議大多數網(wǎng)站可以公開(kāi)一些信息,比如網(wǎng)站的負責人是誰(shuí),是個(gè)人、公司還是其他團體組織,以及詳細的聯(lián)系方式。
因此,最好在您的英文網(wǎng)站中收錄
以下信息:
關(guān)于我們
聯(lián)系我們

相關(guān)資源的引用鏈接
隱私政策和服務(wù)條款
作者簽名
3. 被其他權威網(wǎng)站提及
你說(shuō)你是權威、專(zhuān)家也沒(méi)用。只有很多人認可你的專(zhuān)業(yè),你才是真正的專(zhuān)業(yè)。如果你說(shuō)你是專(zhuān)業(yè)的,別人不承認,那么谷歌就會(huì )相信后者,這是大多數人的意見(jiàn)。
因此,獲得其他網(wǎng)站的認可非常重要。簡(jiǎn)而言之,這意味著(zhù)擁有來(lái)自其他高質(zhì)量網(wǎng)站的反向鏈接,并且這些鏈接來(lái)自正面內容,而不是負面新聞。
6.搜索意圖
搜索意圖在過(guò)去兩年一直是谷歌搜索引擎優(yōu)化的熱點(diǎn)。說(shuō)白了,如果網(wǎng)站內容不符合搜索意圖,那么網(wǎng)站就得不到任何排名。因為,谷歌正在不斷改進(jìn)其算法,以便為用戶(hù)提供最符合他們需求的結果。因此,要想做好英文SEO,就必須了解搜索意圖。
用戶(hù)每次使用 關(guān)鍵詞 搜索都是有目的的,沒(méi)有多少人會(huì )什么都不搜索。換句話(huà)說(shuō),關(guān)鍵詞背后是用戶(hù)的特定需求。
它可能是用戶(hù)尋找某物、購買(mǎi)、比較等的意圖。同樣的 關(guān)鍵詞 背后可能有不止一個(gè)用戶(hù)需求。
因此,只有搞清楚你要排名的關(guān)鍵詞中收錄
的用戶(hù)需求,然后讓網(wǎng)站內容滿(mǎn)足這些需求,才能獲得更好的排名。
有的時(shí)候,關(guān)鍵詞就是需求,明確表達用戶(hù)的需求,比如買(mǎi)東西;很明顯,使用這個(gè)關(guān)鍵詞的用戶(hù),基本上都有購買(mǎi)商品的需求。
Google 還將提供有關(guān)可供購買(mǎi)的產(chǎn)品的反饋。
但是,有時(shí)關(guān)鍵詞收錄
的用戶(hù)需求并不明顯,存在多種可能性。例如,當用戶(hù)在谷歌搜索“英文SEO”這個(gè)詞時(shí),有的用戶(hù)是在尋找相關(guān)信息,有的是為了學(xué)習,還有的是在尋找這樣的服務(wù)等等。
這時(shí)候你應該去搜索這個(gè)詞,看看哪些類(lèi)型的頁(yè)面在谷歌首頁(yè)上排名靠前。如果做SEO的公司占據更多首頁(yè),說(shuō)明谷歌更傾向于提供服務(wù)商信息;如果是文章類(lèi)型的頁(yè)面More,說(shuō)明Google更傾向于為這個(gè)關(guān)鍵詞提供文章信息。
假設首頁(yè)只有文章類(lèi)型的頁(yè)面,說(shuō)明Google對這個(gè)關(guān)鍵詞的意圖是文章素材的內容。嗯,如果你想這樣做 關(guān)鍵詞,你的網(wǎng)站上也必須有相應的文章頁(yè)面。
7.提高點(diǎn)擊率(CTR)
點(diǎn)擊率(CTR)也是谷歌衡量一個(gè)網(wǎng)站能否滿(mǎn)足用戶(hù)需求的指標。這就好比,一個(gè)公司考核員工的績(jì)效,我把你放在一個(gè)職位上,你能不能勝任這個(gè)職位,如果能,你就留下來(lái),以后還有機會(huì )升職;如果你不能,那就退位。
例如,Google 將您的英文網(wǎng)站排在首頁(yè)的第三位。結果,搜索 關(guān)鍵詞 的 100 名用戶(hù)中只有 10 名點(diǎn)擊了您的網(wǎng)站,而 20、30 甚至更多的用戶(hù)點(diǎn)擊了排名在您之后的網(wǎng)站。這給了谷歌一個(gè)明確的信號,表明用戶(hù)對你的網(wǎng)站不感興趣。如果這種情況長(cháng)期存在,你的網(wǎng)站排名肯定會(huì )下降。
早些時(shí)候,我們談到了用戶(hù)停留時(shí)間對網(wǎng)站排名的影響。用戶(hù)點(diǎn)擊進(jìn)入網(wǎng)站是第一步,接下來(lái)就是停留多久。如果沒(méi)有點(diǎn)擊,就沒(méi)有后續。
因此,有必要盡可能地提高您網(wǎng)站的點(diǎn)擊率。這就要求你的網(wǎng)站在谷歌上的搜索內容能夠吸引用戶(hù)并產(chǎn)生點(diǎn)擊欲望。為此,我們有以下建議。
URL 收錄
目標 關(guān)鍵詞
Google的搜索結果中收錄
網(wǎng)頁(yè)的Url信息,用戶(hù)可以直觀(guān)的看到網(wǎng)頁(yè)的Url。如果Url中收錄
用戶(hù)搜索的關(guān)鍵詞,會(huì )增加用戶(hù)對這個(gè)頁(yè)面的期待值。
據統計,收錄
用戶(hù)搜索詞的 Url 頁(yè)面比不收錄
它們的頁(yè)面獲得的點(diǎn)擊次數多 45%。
在標題中使用情感詞
標題中使用情感詞相當于每個(gè)人都穿著(zhù)西裝,但你穿著(zhù)運動(dòng)服,顯得與眾不同。歸根結底,這完全是一個(gè)取巧的方法,并不容易掌握。因為很多非正式網(wǎng)站都會(huì )使用這種標題方式。一些用戶(hù)對具有此類(lèi)標題的網(wǎng)頁(yè)缺乏信任。
因此,使用此方法可能會(huì )增加您的點(diǎn)擊率;但是,它也可能導致負面影響。
這只是為了擴展知識,一般情況下不建議使用。
重要頁(yè)面配有原創(chuàng )
描述
在谷歌搜索結果中,除了頁(yè)面標題和Url,大部分區域顯示頁(yè)面的描述。因此,頁(yè)面描述非常重要。需要參加排名賽的重要英文頁(yè)面需要設置合理的描述內容。
如果您沒(méi)有設置該內容,但您的頁(yè)面有富文本描述,則無(wú)需設置,Google會(huì )智能識別、抓取和優(yōu)化。如果不設置描述內容,頁(yè)面上沒(méi)有實(shí)質(zhì)性的文字描述,對點(diǎn)擊率會(huì )比較不利。
據統計,有描述的頁(yè)面比沒(méi)有描述的頁(yè)面點(diǎn)擊率高6%。
8.建立高質(zhì)量的英文外鏈
自從有了搜索引擎,就有了外鏈的概念。最初的谷歌是根據外部鏈接的因素來(lái)確定搜索排名的。這導致了刷外鏈等作弊手段的泛濫,使得很多真正優(yōu)質(zhì)的網(wǎng)站被埋沒(méi),也使得網(wǎng)絡(luò )上充斥著(zhù)各種專(zhuān)門(mén)提供垃圾外鏈的垃圾網(wǎng)站。
隨著(zhù)谷歌算法的改進(jìn),外鏈的作用一直在下降,垃圾外鏈的作用幾乎為零,甚至可能給網(wǎng)站帶來(lái)不利的處罰。盡管外部鏈接不再是排名的唯一因素,但它們仍然是當今谷歌排名的關(guān)鍵因素;這里的外部鏈接是指高質(zhì)量的外部鏈接,不是垃圾鏈接。
關(guān)于外部鏈接的作用,谷歌最近公開(kāi)承認它是排名的關(guān)鍵參考。
目前外鏈對谷歌排名的影響還是很大的。SEMrush 發(fā)表的一項研究表明,反向鏈接與高排名之間仍然存在很強的相關(guān)性。
關(guān)于外鏈的搭建方法,我們在另一篇文章:Google SEO英文外鏈搭建中有詳細的介紹,這里不再贅述。
還有一點(diǎn),建議多發(fā)表一些高質(zhì)量的知識文章和解答,有利于別人主動(dòng)鏈接到你的頁(yè)面。例如,為什么 xxx,什么 xxx
總之,要想自己的英文網(wǎng)站有好的排名,甚至是首頁(yè)排名,高質(zhì)量的反向鏈接是必不可少的。而且,最好有英文的外部鏈接。
9. 用戶(hù)評論
很多人可能不知道,真實(shí)的用戶(hù)評論對英文SEO排名非常有利。最常見(jiàn)的是博客文章底部的評論功能?;ヂ?lián)網(wǎng)的本質(zhì)是信息的傳遞和交互。用戶(hù)對內容的評論是互動(dòng)的明顯信號,谷歌更喜歡這種互動(dòng)內容。
注意,這里所說(shuō)的互動(dòng)是真實(shí)用戶(hù)產(chǎn)生的,不是你自己在自己的文章下做假評論。這很容易識別。谷歌可以抓取評論者使用的設備、來(lái)源、IP等信息。因此,自我故意的評論是無(wú)效的。
10.刪除無(wú)用頁(yè)面
一個(gè)英文網(wǎng)站或多或少都會(huì )有一些沒(méi)有價(jià)值的頁(yè)面,比如:內容重復的頁(yè)面,沒(méi)有內容的頁(yè)面,信息過(guò)時(shí)的頁(yè)面等等。如果一個(gè)網(wǎng)站中這樣的頁(yè)面不多,基本上不會(huì )有什么不良影響對網(wǎng)站排名的影響。但是,如果有很多這樣的頁(yè)面,那就不好了。
我找了一個(gè)例子,一個(gè)國外的旅游公司網(wǎng)站。運營(yíng)商注意到他們的網(wǎng)站上大約有 50 個(gè)頁(yè)面具有相同的內容。然后,他們做了一件事,就是把這50頁(yè)的內容,整合成內容差異較大的4頁(yè)。
一段時(shí)間后,他們發(fā)現網(wǎng)站的搜索流量增加了 36.9%:
因此,每個(gè)頁(yè)面的內容應盡量避免雷同。如果網(wǎng)站中有很多無(wú)意義的頁(yè)面,最好整合或直接刪除。
11.在頁(yè)面內容中盡早出現關(guān)鍵詞
您的目標 關(guān)鍵詞 需要出現在頁(yè)面的內容中。這是很多人都知道的Google SEO常識,因為只有你的內容收錄
關(guān)鍵詞,這個(gè)頁(yè)面才會(huì )生成與關(guān)鍵詞關(guān)聯(lián)。
但是,您可能不知道 關(guān)鍵詞 出現在不同的位置,這可能會(huì )影響您網(wǎng)頁(yè)的排名能力。
至于關(guān)鍵詞何時(shí)出現在頁(yè)面上,我們的建議是在前幾句中至少收錄
一個(gè)關(guān)鍵詞。為什么?因為,谷歌更關(guān)注出現在頁(yè)面開(kāi)頭的內容。在其思維邏輯中,頁(yè)面的主題或焦點(diǎn)不能也不應該出現得太晚。
比如我們網(wǎng)站上一篇關(guān)于谷歌排名查詢(xún)的文章,文章的重點(diǎn)自然是“谷歌排名查詢(xún)”,我們在文章開(kāi)頭使用了關(guān)鍵詞。
12.創(chuàng )建獨特的頁(yè)面內容
我們一直向客戶(hù)強調:要在谷歌排名優(yōu)化中取得好的效果,網(wǎng)站內容必須是原創(chuàng )的,不能有重復和抄襲。關(guān)于這一點(diǎn),谷歌在其部分文件中也有明確說(shuō)明。谷歌建議所有網(wǎng)站不要復制網(wǎng)上已有的內容。
所以,在做英文SEO的時(shí)候,一定要注意網(wǎng)站的內容。如果我們發(fā)現有很多重復或相似的內容,我們會(huì )告訴客戶(hù)需要整改。除了網(wǎng)頁(yè)上的內容,頁(yè)面的標題也需要獨一無(wú)二。確保站點(diǎn)上沒(méi)有任何頁(yè)面使用相同的標題,并且盡量不要使用與其他站點(diǎn)完全相同的標題。
如果遇到無(wú)法避免的內部重復問(wèn)題,可以使用Canonical標簽來(lái)指明這些相同頁(yè)面中哪些是主版本,從而避免內部權重分散。
大型電商網(wǎng)站一般是這類(lèi)問(wèn)題的高發(fā)區,因為上面有很多類(lèi)似的商品,很難一一打造出獨一無(wú)二的內容。不過(guò),不管怎么說(shuō),有本事的話(huà),還是多派點(diǎn)人手,為每個(gè)頁(yè)面做獨立的內容吧,至少不能太雷同。如果不行,就用上面的標簽進(jìn)行處理。
十三、優(yōu)化頁(yè)面標題
頁(yè)面標題是站內優(yōu)化的重點(diǎn)之一。Google 表示:為您的網(wǎng)頁(yè)使用高質(zhì)量的標題很重要。
那么,優(yōu)化頁(yè)面標題應該注意哪些方面呢?

首先,盡量在標題中盡早放置 關(guān)鍵詞。就像我上面剛剛引用的谷歌排名查詢(xún)的例子,你可以發(fā)現我把 關(guān)鍵詞 直接放在了標題的頂部。你為什么這么做?
與頁(yè)面內容類(lèi)似,當谷歌查看頁(yè)面標題時(shí),它也會(huì )關(guān)注最前面的內容。那么,此頁(yè)面的目標 關(guān)鍵詞 是什么?建議將其放置在盡可能高的位置,以便 Google 可以識別頁(yè)面的關(guān)鍵點(diǎn)。
所以不要把你能想到的每一個(gè) 關(guān)鍵詞 都堆放在頁(yè)面標題中,這是沒(méi)有意義的。后面出現的關(guān)鍵詞基本會(huì )被Google忽略,過(guò)多的關(guān)鍵詞會(huì )影響Google對頁(yè)面重心的識別。什么都想要,到頭來(lái)往往一事無(wú)成。
我們的建議是一個(gè)頁(yè)面不要有多個(gè)重心,主要目標應該在一個(gè)關(guān)鍵詞上。對此,谷歌也明確表示。
在優(yōu)化標題時(shí),不僅要關(guān)注Google喜歡什么樣的標題,還要站在用戶(hù)的角度來(lái)擬定標題。因為,用戶(hù)喜歡的,谷歌一定喜歡;而且,谷歌喜歡的東西,用戶(hù)不一定喜歡。
看了上面的內容,遇到設置標題的時(shí)候不要把關(guān)鍵詞放在最前面。您還需要結合用戶(hù)的閱讀體驗,使標題易于閱讀和吸引人。為此,把關(guān)鍵詞往后放一點(diǎn)也沒(méi)關(guān)系。
比如我們的一篇文章針對“尚未收錄”的問(wèn)題,但是結合用戶(hù)的閱讀情況和遇到問(wèn)題的地方,我們將整個(gè)標題設置如下:
頁(yè)面的標題最好是能吸引用戶(hù)的一句話(huà)。只有這樣,用戶(hù)在搜索引擎結果中找到你的頁(yè)面時(shí),才會(huì )更愿意點(diǎn)擊。這對排名非常重要。如果你的頁(yè)面只排在第三位,很多用戶(hù)在搜索對應的關(guān)鍵詞時(shí),大部分會(huì )選擇你的頁(yè)面點(diǎn)擊查看;很長(cháng)一段時(shí)間后,谷歌會(huì )認為您的此頁(yè)面更相關(guān),并且會(huì )提升您的排名。
因此,在優(yōu)化英文網(wǎng)站時(shí),一定要記住,你不是在為谷歌優(yōu)化,而是在為用戶(hù)優(yōu)化。
14. 使用谷歌站長(cháng)工具監控網(wǎng)站性能
可以說(shuō),做谷歌排名優(yōu)化離不開(kāi)谷歌站長(cháng)工具的使用,這個(gè)工具可以讓你清楚地知道你的網(wǎng)站在谷歌搜索中的表現如何。
這個(gè)工具有很多功能,包括前面提到的PageSpeed Insights,這里介紹幾個(gè)主要的功能:
績(jì)效報告
在谷歌站長(cháng)工具的性能報告中,您可以看到您的網(wǎng)站在谷歌搜索中被顯示了多少次,有多少人點(diǎn)擊了,以及平均點(diǎn)擊率和排名。
再往下,您可以看到準確的 關(guān)鍵詞 排名、展示次數和點(diǎn)擊次數。還可以查看不同網(wǎng)頁(yè)的表現,不同國家和地區的搜索表現等。
從長(cháng)遠來(lái)看,如果您的網(wǎng)站性能的展示次數和點(diǎn)擊次數呈上升趨勢,則說(shuō)明您的優(yōu)化策略是正確的。
覆蓋率報告
檢查您的網(wǎng)站覆蓋率。它會(huì )清楚地顯示您的網(wǎng)站中有多少頁(yè)面被谷歌收錄和顯示,即有效頁(yè)面數。同時(shí),它也會(huì )顯示錯誤的頁(yè)面。如果發(fā)現錯誤,請嘗試盡快更正它們。
常見(jiàn)錯誤及解決方法可參考:谷歌站長(cháng)工具提示“尚未收錄”收錄不理想怎么辦
移動(dòng)可用性報告
自從谷歌推出其移動(dòng)優(yōu)先索引規則以來(lái),移動(dòng)適應性已成為一個(gè)非常重要的排名因素。在此報告中,您可以查看網(wǎng)站上有多少頁(yè)面適合移動(dòng)設備。
在實(shí)際使用過(guò)程中,我們發(fā)現該報告顯示的頁(yè)數會(huì )比實(shí)際情況少很多。所以,如果你有很多索引頁(yè)面,但這里只顯示了一小部分,不要擔心,只要沒(méi)有錯誤信息即可。
15.圖片優(yōu)化
上面我們已經(jīng)提到了一些關(guān)于圖片的注意事項,比如不要使用太大的圖片和壓縮圖片的大小。下面我們繼續深入探討圖片優(yōu)化的要點(diǎn)。
根據谷歌的報告:圖片的 Alt 屬性可以幫助網(wǎng)頁(yè)在搜索排名中表現更好
因此,如果您在頁(yè)面上使用圖像,則需要確保它們經(jīng)過(guò)適當優(yōu)化。圖片優(yōu)化,除了使用大小合適的圖片外,只需要把握兩個(gè)關(guān)鍵點(diǎn)。
給圖片合理命名:雖然現在谷歌已經(jīng)具備了一定的識別圖片內容的能力,但是這種識別還是很粗糙的。它無(wú)法像真人一樣理解圖片的含義。圖片的名稱(chēng)可以幫助谷歌更好地了解圖片的內容。
比如你的網(wǎng)頁(yè)上有一張煎餅的圖片,不要隨意命名,比如image123.jpg或者image123.png,而是根據圖片的描述性語(yǔ)句來(lái)命名,比如Say: A stack of pancakes on桌子
Alt屬性必須填寫(xiě):谷歌已經(jīng)聲明他們會(huì )通過(guò)圖片的Alt屬性來(lái)了解圖片的內容。
對于您網(wǎng)站上使用的每張圖片,您必須填寫(xiě)適當的 Alt 屬性。就像起名一樣,不要亂,看圖寫(xiě)圖所表達的內容。
16、合理使用內部鏈接
內部鏈接是您網(wǎng)站的一個(gè)頁(yè)面上指向網(wǎng)站上另一個(gè)頁(yè)面的鏈接,通常出現在頁(yè)面的正文中。
使用內部鏈接時(shí),這里有一些提示可以幫助您更好地使用它。
使用錨文本鏈接:錨文本鏈接傳遞權重的效率遠高于URL鏈接。錨文本鏈接的錨文本內容盡量收錄
目標頁(yè)面的關(guān)鍵詞,或者直接使用目標頁(yè)面的標題。
不要濫用內鏈:內鏈可以起到傳遞權重的作用,但是不要刻意利用內鏈來(lái)推動(dòng)某個(gè)頁(yè)面的排名,Google可以識別出不合理的權重傳遞。
例如,一些客戶(hù)喜歡在產(chǎn)品頁(yè)面中插入大量指向其他產(chǎn)品的鏈接。這是明顯的故意插入鏈接的行為,會(huì )損害頁(yè)面的健康和內容的自然度。
之前我們做過(guò)一個(gè)實(shí)驗,使用大量的內鏈來(lái)提升一個(gè)頁(yè)面的排名,結果確實(shí)有效,那個(gè)頁(yè)面的排名從第6頁(yè)排到了第3頁(yè),但是只維持了更少的排名比一周之內,該頁(yè)面被谷歌懲罰并下降到第 9 頁(yè)。
你可以從用戶(hù)的角度考慮是否需要使用內部鏈接。比如一篇文章提到了另一篇文章的重點(diǎn);然后,可以使用內部鏈接將此關(guān)鍵點(diǎn)鏈接到相應的頁(yè)面。因為這個(gè)鏈接可以幫助用戶(hù)了解更多相關(guān)信息,對用戶(hù)來(lái)說(shuō)是有價(jià)值的。
17.發(fā)布優(yōu)質(zhì)內容
在任何專(zhuān)業(yè)的 Google SEO 研究網(wǎng)站上,您都可以找到強調內容重要性的文章。
發(fā)布原創(chuàng )有價(jià)值的內容,對于英文SEO優(yōu)化具有重要意義。因為,內容是所有SEO的基礎。
高質(zhì)量的內容是谷歌一直提倡的,而且這個(gè)標準也在不斷提高。如果你仔細觀(guān)察,你會(huì )發(fā)現,在過(guò)去的網(wǎng)站上,一篇1000字左右的文章比較少,但現在卻普遍可見(jiàn)。平均而言,創(chuàng )作者在每篇文章上花費的時(shí)間都在逐年增加:
因此,網(wǎng)站的內容是每個(gè)網(wǎng)站運營(yíng)者都必須多加注意的。持續輸出優(yōu)質(zhì)內容是獲得谷歌青睞的重中之重。
18.改善網(wǎng)站的用戶(hù)體驗
用戶(hù)體驗這個(gè)因素可以說(shuō)直接關(guān)系到谷歌排名。谷歌可以通過(guò)用戶(hù)的訪(fǎng)問(wèn)行為感知本網(wǎng)站對用戶(hù)的價(jià)值。如果用戶(hù)在搜索結果中點(diǎn)擊進(jìn)入您的頁(yè)面,很快跳出,然后點(diǎn)擊進(jìn)入另一個(gè)結果,這就告訴谷歌您的頁(yè)面不符合他們的需求。結果是,隨著(zhù)時(shí)間的推移,Google 會(huì )降低您的網(wǎng)頁(yè)排名。
您可以使用 Google Analytics 來(lái)衡量您的網(wǎng)站跳出率。如果你發(fā)現你的網(wǎng)站跳出率很高,說(shuō)明你的頁(yè)面不能滿(mǎn)足大部分用戶(hù)的需求,頁(yè)面內容質(zhì)量有待提高。
如果你的英文網(wǎng)站不好用,有很多彈窗廣告、死鏈接等,這些對用戶(hù)體驗都是很不好的。
外貿SEO功能
搜索引擎優(yōu)化(Search Engine Optimization,簡(jiǎn)稱(chēng)SEO)是一種利用搜索引擎搜索規則來(lái)提高目標網(wǎng)站在相關(guān)搜索引擎中排名的方法。由于許多研究發(fā)現搜索引擎用戶(hù)往往只關(guān)注搜索結果中的前幾項,因此許多網(wǎng)站希望通過(guò)各種形式影響搜索引擎的排名。SEO(搜索引擎優(yōu)化)是一種有效、持久且經(jīng)濟的搜索引擎營(yíng)銷(xiāo)方式,其主要特點(diǎn)有:
1.覆蓋面廣:被選中的關(guān)鍵詞出現在谷歌中英文搜索結果首頁(yè)之外,也出現在全球網(wǎng)站的自然排名中:Aol、Netscape、CompuServe、Ask、Yahoo、Hotbot、Earthlink、Infoseek 、Sympatico等將大幅增加;
2、無(wú)需擔心惡意點(diǎn)擊:與關(guān)鍵詞合作,采用包年形式,可完全避免惡意點(diǎn)擊;
3、長(cháng)期效果:搜索引擎優(yōu)化從本質(zhì)上提高了網(wǎng)站的綜合性能,提高了網(wǎng)絡(luò )的整體覆蓋率,從而贏(yíng)得了潛在客戶(hù)。
我們的優(yōu)勢
1、豐富的英文SEO實(shí)戰經(jīng)驗我們長(cháng)期從事搜索引擎排名規律的研究,經(jīng)常與國內外SEO(搜索引擎優(yōu)化)專(zhuān)家交流。因此,我們的技術(shù)團隊非常熟悉各大搜索引擎的排名規則;
2、豐富的網(wǎng)絡(luò )資源:對于搜索引擎排名,尤其是谷歌排名,網(wǎng)絡(luò )資源必不可少。只有擁有豐富的網(wǎng)絡(luò )資源,才能在短時(shí)間內達到客戶(hù)網(wǎng)站的排名效果;
3、系統化服務(wù):我們擁有專(zhuān)業(yè)的SEO團隊,為客戶(hù)提供系統化的服務(wù),值得您信賴(lài);
4、良好的服務(wù)口碑:眾多案例說(shuō)明一切,按效果說(shuō)話(huà),無(wú)效押金退還;
5、專(zhuān)業(yè)的訪(fǎng)問(wèn)統計系統:能夠反映網(wǎng)站每天的訪(fǎng)問(wèn)情況,來(lái)源方式等都可以分析清楚。返回搜狐查看更多
編輯:
最新版本:iOS下WebRTC如何采集視頻
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 189 次瀏覽 ? 2022-11-30 05:44
前言
前兩天介紹了iOS下如何采集音頻,今天介紹iOS下的視頻采集。要了解iOS是如何采集視頻的,首先我們需要了解AVCaptureSession、AVCaptureDevice的基本概念以及iOS上視頻采集的工作原理。
基本概念
iPhone包括攝像頭、麥克風(fēng)等設備,我們用AVCaptureDevice來(lái)表示。同時(shí)攝像頭是一個(gè)輸入設備,我們也可以用AVCaptureDeviceInput來(lái)表示;同樣,麥克風(fēng)是另一個(gè)輸入設備(AVCaptureDeviceInput)。
為了方便起見(jiàn),iOS 定義了 AVCaptureSession 類(lèi)來(lái)管理這些輸入設備。您可以通過(guò) AVCaptureSession 打開(kāi)一個(gè)輸入設備進(jìn)行數據采集,也可以關(guān)閉一個(gè)輸入設備。
采集
到數據后,需要保存和處理,所以iOS定義了AVCatpureOutput來(lái)做這件事。
下面我們分別介紹各個(gè)類(lèi)。
AVCaptureSession
AVCaptureSession 對象用于管理捕獲活動(dòng)并協(xié)調數據的流入和流出。
AVCaptureSession 對象的 startRunning() 方法是一個(gè)阻塞調用,可能需要一些時(shí)間,所以你應該在串行隊列上執行會(huì )話(huà)設置,這樣主隊列就不會(huì )被阻塞(這將保持 UI 響應)
AVCapture設備
AVCaptureDevice 對象表示物理設備及其屬性。您可以使用它來(lái)設置底層硬件的屬性。捕獲設備還可以為 AVCaptureSession 對象提供數據。
可以使用帶有 AVCaptureDevice 的類(lèi)方法來(lái)枚舉所有可用設備并查詢(xún)它們的功能。AVCaptureDevice 在設備有效或無(wú)效時(shí)由系統通知。
設置設備屬性時(shí),必須先使用 lockForConfiguration() 方法鎖定設備。為設備設置屬性后,需要檢查是否設置成功,設置完成后調用unlockForConfiguration()釋放鎖。
大多數屬性配置都可以通過(guò) AVCaptureSession 對象進(jìn)行設置,但一些特殊選項如高幀率需要直接在 AVCaptureDevice 上進(jìn)行設置。
AVCaptureDeviceInput
AVCaptureDeviceInput是捕獲設備中的輸入端,它繼承自AVCaptureInput,AVCaptureInput是一個(gè)抽象類(lèi)。
AVCaptureConnection
AVCaptureConnection 表示 AVCaptureSession 中 AVCaptureInput 和 AVCaptureOutput 對象之間建立的連接。
AVCapture輸出
AVCaptureOutput是一個(gè)抽象類(lèi),里面有很多具體的實(shí)現類(lèi),比如AVCaptureVideoDataOutput、AVCaptureMovieFileOutput等。如下圖。但是今天我們主要介紹AVCaptureVideoDataOutput。
AVCaptureVideoDataOutput
AVCaptureVideoDataOutput 是用于錄制視頻和訪(fǎng)問(wèn)視頻幀的輸出。它繼承自 AVCaptureOutput。
下圖是AVCaptureDeviceInput、AVCaptureConnection和AVCaptureOutput的關(guān)系圖:
捕獲視頻的步驟
創(chuàng )建并初始化一個(gè) AVCaptureSession。
創(chuàng )建并初始化 AVCaptureVideoDataOutput。
設置AVCaptureVideoDataOutput的videoSettings,videoSettings中的Key和value收錄
輸出圖片和視頻格式定義。
調用AVCaptureVideoDataOutput對象的setSampleBufferDelegate方法設置采樣數據緩沖區的代理。這樣當從輸入設備采集數據時(shí),系統會(huì )自動(dòng)調用AVCaptureVideoDataOutputSampleBufferDelegate協(xié)議中的captureOutput方法獲取視頻數據。
將 AVCaptureVideoDataOutput 對象添加到 AVCaptureSession 對象。
根據視頻類(lèi)型AVMediaTypeVideo,創(chuàng )建一個(gè)AVCaptureDevice對象。(您可以創(chuàng )建視頻設備和音頻設備)。
使用 AVCaptureDevice 作為參數創(chuàng )建一個(gè) AVCaptureDeviceInput 對象。
將 AVCaptureDeviceInput 對象添加到 AVCaptureSession 對象。
調用 AVCaptureSession 對象的 setSessionPreset 方法設置屬性。例如設置質(zhì)量級別、比特率或其他輸出設置。
調用Output對象的connectionWithMediaType方法建立Input和Output之間的連接。
調用 AVCaptureSession 對象的 startRunning() 方法開(kāi)始視頻采集。
調用 AVCaptureSession 對象的 stopRunning() 方法停止視頻采集。
看看 WebRTC 是怎么做的
iOS視頻采集相關(guān)的工作在WebRTC的modules/video_capture/objc/rtc_video_capture_objc.mm文件中實(shí)現:
概括
我們首先介紹了iOS上視頻采集的一些基本概念,然后通過(guò)分析WebRTC代碼學(xué)習了視頻采集的基本步驟(共12步)。
在下一篇文章中,我將向大家介紹如何對采集到的視頻數據進(jìn)行編解碼。
希望大家多多關(guān)注,謝謝!
教程:愛(ài)站工具包 破解版
love station toolkit vip破解版是一款為用戶(hù)打造的seo love station toolkit破解版,完美支持IIS、Apache、Nginx,批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛爬取頁(yè)面/目錄,超強秒殺其他日志該工具具有免費的SEO查詢(xún)功能,包括批量搜索收錄、批量搜索長(cháng)尾關(guān)鍵詞等。
更新日志
1.修復競價(jià)詞挖掘空數據問(wèn)題,優(yōu)化百度推廣號登錄
2.修復工具包重復打開(kāi)問(wèn)題
3. 修復關(guān)鍵詞 url與排名結果不匹配的問(wèn)題
4.優(yōu)化日志分析
5.開(kāi)啟關(guān)鍵詞挖礦手機轉碼(站群測試版)
6.增加VIP域名支持
7.修改工具包函數順序
8.模擬爬取頁(yè)面順序爬取
9、百度主動(dòng)推送百度接口問(wèn)題,臨時(shí)取消當天的額度查詢(xún)
10.修復部分用戶(hù)反映的問(wèn)題并優(yōu)化功能
特征
百度外鏈助手:愛(ài)站seo工具包電腦版批量獲取站點(diǎn)外鏈并進(jìn)行垃圾外鏈檢測和狀態(tài)碼查詢(xún),批量篩選/過(guò)濾,輕松獲取需要拒絕的垃圾外鏈。
關(guān)鍵詞監控:實(shí)時(shí)監控全站關(guān)鍵詞排名,覆蓋百度/搜狗/360等國內主流搜索引擎,記錄指定關(guān)鍵詞的歷史排名數據>,支持自定義添加、相關(guān)推薦、關(guān)鍵詞挖掘和競價(jià)搜索關(guān)鍵詞引用等添加方式,排名一目了然!
收錄率/斷鏈檢測:收錄
查詢(xún)整站頁(yè)面并計算網(wǎng)站頁(yè)面收錄率,批量查詢(xún)整站頁(yè)面狀態(tài)碼檢測死鏈接,提供死鏈接入口頁(yè)面,支持nofollow過(guò)濾、指定目錄頁(yè)面查詢(xún),具有很強的可擴展性。一鍵獲取數據!
站外排名:支持查看關(guān)鍵詞站外排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
關(guān)鍵詞挖掘:支持百度索引批量查詢(xún)和關(guān)鍵詞挖掘功能,可以快速批量查詢(xún)導出指定級別的關(guān)鍵詞索引。關(guān)鍵詞挖礦可以挖出愛(ài)站,打開(kāi)站后的所有數據,支持關(guān)聯(lián)/過(guò)濾/篩選/導出等功能
站群查詢(xún):批量查詢(xún)權重/反向鏈/pr/采集
/記錄信息等海量站點(diǎn)數據,支持內頁(yè)查詢(xún),支持數據批量篩選導出。
日志分析:支持所有格式的日志,覆蓋所有搜索引擎蜘蛛。批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛抓取頁(yè)面/目錄/ip排名,同時(shí)提供生動(dòng)的圖標,讓蜘蛛和用戶(hù)行為一目了然!
工具箱:支持查看關(guān)鍵詞遠程排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
常問(wèn)問(wèn)題
安裝包下載后打不開(kāi)怎么辦?(如何打開(kāi).rar文件)
最近收到一小部分新手用戶(hù)反饋下載安裝包后無(wú)法打開(kāi)文件,文件沒(méi)有圖標顯示。由于愛(ài)站seo工具安裝包是壓縮軟件壓縮打包的,格式為rar,所以如果需要打開(kāi)該文件,必須使用解壓軟件解壓后才能使用。常見(jiàn)的解壓軟件是Winrar,下面就給大家詳細介紹一下winrar是如何安裝的。
首先下載winrar:
安裝好WinRAR后,就可以解壓愛(ài)站seo工具rar安裝包了。
愛(ài)站SEO Toolkit如何解綁電腦?
Aizhan SEO Toolkit自誕生以來(lái),一直走的是免費軟件和付費VIP的路線(xiàn)。為保障廣大VIP用戶(hù)和站群用戶(hù)的權益,VIP和站群用戶(hù)的電腦綁定數量分別限制為3臺。,每個(gè)VIP賬號或站群賬號都有一次免費修改綁定電腦的機會(huì )。如需再次修改綁定,需收取相應的解綁費用。因此,VIP用戶(hù)和站群用戶(hù)在使用愛(ài)站SEO工具包時(shí)要注意工具資源的規劃和利用,合理指定綁定的電腦。
愛(ài)站SEO工具包解綁教程如圖:
1 點(diǎn)擊網(wǎng)站右上角工具包解綁
2 只支持VIP和站群用戶(hù)解綁
3 按照提示解綁。一次免費解綁機會(huì )用完后,如需解綁,需額外支付費用
“如果3套滿(mǎn)了需要換,就需要解綁,第一次解綁是免費的,相當于6次免費綁定的機會(huì )?!?br /> 安裝步驟
1、從本站下載最新版愛(ài)站SEO Toolkit安裝包,雙擊運行。
2、選擇接受條款后,可以點(diǎn)擊【瀏覽】選擇軟件的安裝路徑;或直接點(diǎn)擊【下一步】,軟件將安裝到默認位置。
3、耐心等待軟件安裝完成,然后點(diǎn)擊【完成】。
技巧
愛(ài)站SEO Toolkit網(wǎng)站監控工具功能強大,可以批量添加50個(gè)域名。是一款可以幫助用戶(hù)實(shí)時(shí)監控網(wǎng)站,實(shí)現實(shí)時(shí)提醒的強大工具。使用方法也很簡(jiǎn)單,下面我就來(lái)介紹一下這個(gè)工具的使用方法。
1. 點(diǎn)擊網(wǎng)站監控,輸入需要監控的域名。
2. 網(wǎng)站監控設置:可以設置監控頻率的時(shí)間段,當出現問(wèn)題時(shí),會(huì )發(fā)送報警到手機號或郵箱;告警方式(從故障發(fā)生到恢復正常發(fā)送一次告警信息,或繼續告警直至恢復正常) 設置完成后選擇保存,即可實(shí)現網(wǎng)站監控。 查看全部
最新版本:iOS下WebRTC如何采集視頻
前言
前兩天介紹了iOS下如何采集音頻,今天介紹iOS下的視頻采集。要了解iOS是如何采集視頻的,首先我們需要了解AVCaptureSession、AVCaptureDevice的基本概念以及iOS上視頻采集的工作原理。
基本概念
iPhone包括攝像頭、麥克風(fēng)等設備,我們用AVCaptureDevice來(lái)表示。同時(shí)攝像頭是一個(gè)輸入設備,我們也可以用AVCaptureDeviceInput來(lái)表示;同樣,麥克風(fēng)是另一個(gè)輸入設備(AVCaptureDeviceInput)。
為了方便起見(jiàn),iOS 定義了 AVCaptureSession 類(lèi)來(lái)管理這些輸入設備。您可以通過(guò) AVCaptureSession 打開(kāi)一個(gè)輸入設備進(jìn)行數據采集,也可以關(guān)閉一個(gè)輸入設備。
采集
到數據后,需要保存和處理,所以iOS定義了AVCatpureOutput來(lái)做這件事。
下面我們分別介紹各個(gè)類(lèi)。
AVCaptureSession
AVCaptureSession 對象用于管理捕獲活動(dòng)并協(xié)調數據的流入和流出。
AVCaptureSession 對象的 startRunning() 方法是一個(gè)阻塞調用,可能需要一些時(shí)間,所以你應該在串行隊列上執行會(huì )話(huà)設置,這樣主隊列就不會(huì )被阻塞(這將保持 UI 響應)
AVCapture設備
AVCaptureDevice 對象表示物理設備及其屬性。您可以使用它來(lái)設置底層硬件的屬性。捕獲設備還可以為 AVCaptureSession 對象提供數據。
可以使用帶有 AVCaptureDevice 的類(lèi)方法來(lái)枚舉所有可用設備并查詢(xún)它們的功能。AVCaptureDevice 在設備有效或無(wú)效時(shí)由系統通知。
設置設備屬性時(shí),必須先使用 lockForConfiguration() 方法鎖定設備。為設備設置屬性后,需要檢查是否設置成功,設置完成后調用unlockForConfiguration()釋放鎖。

大多數屬性配置都可以通過(guò) AVCaptureSession 對象進(jìn)行設置,但一些特殊選項如高幀率需要直接在 AVCaptureDevice 上進(jìn)行設置。
AVCaptureDeviceInput
AVCaptureDeviceInput是捕獲設備中的輸入端,它繼承自AVCaptureInput,AVCaptureInput是一個(gè)抽象類(lèi)。
AVCaptureConnection
AVCaptureConnection 表示 AVCaptureSession 中 AVCaptureInput 和 AVCaptureOutput 對象之間建立的連接。
AVCapture輸出
AVCaptureOutput是一個(gè)抽象類(lèi),里面有很多具體的實(shí)現類(lèi),比如AVCaptureVideoDataOutput、AVCaptureMovieFileOutput等。如下圖。但是今天我們主要介紹AVCaptureVideoDataOutput。
AVCaptureVideoDataOutput
AVCaptureVideoDataOutput 是用于錄制視頻和訪(fǎng)問(wèn)視頻幀的輸出。它繼承自 AVCaptureOutput。
下圖是AVCaptureDeviceInput、AVCaptureConnection和AVCaptureOutput的關(guān)系圖:
捕獲視頻的步驟
創(chuàng )建并初始化一個(gè) AVCaptureSession。
創(chuàng )建并初始化 AVCaptureVideoDataOutput。
設置AVCaptureVideoDataOutput的videoSettings,videoSettings中的Key和value收錄
輸出圖片和視頻格式定義。
調用AVCaptureVideoDataOutput對象的setSampleBufferDelegate方法設置采樣數據緩沖區的代理。這樣當從輸入設備采集數據時(shí),系統會(huì )自動(dòng)調用AVCaptureVideoDataOutputSampleBufferDelegate協(xié)議中的captureOutput方法獲取視頻數據。

將 AVCaptureVideoDataOutput 對象添加到 AVCaptureSession 對象。
根據視頻類(lèi)型AVMediaTypeVideo,創(chuàng )建一個(gè)AVCaptureDevice對象。(您可以創(chuàng )建視頻設備和音頻設備)。
使用 AVCaptureDevice 作為參數創(chuàng )建一個(gè) AVCaptureDeviceInput 對象。
將 AVCaptureDeviceInput 對象添加到 AVCaptureSession 對象。
調用 AVCaptureSession 對象的 setSessionPreset 方法設置屬性。例如設置質(zhì)量級別、比特率或其他輸出設置。
調用Output對象的connectionWithMediaType方法建立Input和Output之間的連接。
調用 AVCaptureSession 對象的 startRunning() 方法開(kāi)始視頻采集。
調用 AVCaptureSession 對象的 stopRunning() 方法停止視頻采集。
看看 WebRTC 是怎么做的
iOS視頻采集相關(guān)的工作在WebRTC的modules/video_capture/objc/rtc_video_capture_objc.mm文件中實(shí)現:
概括
我們首先介紹了iOS上視頻采集的一些基本概念,然后通過(guò)分析WebRTC代碼學(xué)習了視頻采集的基本步驟(共12步)。
在下一篇文章中,我將向大家介紹如何對采集到的視頻數據進(jìn)行編解碼。
希望大家多多關(guān)注,謝謝!
教程:愛(ài)站工具包 破解版
love station toolkit vip破解版是一款為用戶(hù)打造的seo love station toolkit破解版,完美支持IIS、Apache、Nginx,批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛爬取頁(yè)面/目錄,超強秒殺其他日志該工具具有免費的SEO查詢(xún)功能,包括批量搜索收錄、批量搜索長(cháng)尾關(guān)鍵詞等。
更新日志
1.修復競價(jià)詞挖掘空數據問(wèn)題,優(yōu)化百度推廣號登錄
2.修復工具包重復打開(kāi)問(wèn)題
3. 修復關(guān)鍵詞 url與排名結果不匹配的問(wèn)題
4.優(yōu)化日志分析
5.開(kāi)啟關(guān)鍵詞挖礦手機轉碼(站群測試版)
6.增加VIP域名支持
7.修改工具包函數順序
8.模擬爬取頁(yè)面順序爬取
9、百度主動(dòng)推送百度接口問(wèn)題,臨時(shí)取消當天的額度查詢(xún)
10.修復部分用戶(hù)反映的問(wèn)題并優(yōu)化功能
特征
百度外鏈助手:愛(ài)站seo工具包電腦版批量獲取站點(diǎn)外鏈并進(jìn)行垃圾外鏈檢測和狀態(tài)碼查詢(xún),批量篩選/過(guò)濾,輕松獲取需要拒絕的垃圾外鏈。
關(guān)鍵詞監控:實(shí)時(shí)監控全站關(guān)鍵詞排名,覆蓋百度/搜狗/360等國內主流搜索引擎,記錄指定關(guān)鍵詞的歷史排名數據>,支持自定義添加、相關(guān)推薦、關(guān)鍵詞挖掘和競價(jià)搜索關(guān)鍵詞引用等添加方式,排名一目了然!
收錄率/斷鏈檢測:收錄
查詢(xún)整站頁(yè)面并計算網(wǎng)站頁(yè)面收錄率,批量查詢(xún)整站頁(yè)面狀態(tài)碼檢測死鏈接,提供死鏈接入口頁(yè)面,支持nofollow過(guò)濾、指定目錄頁(yè)面查詢(xún),具有很強的可擴展性。一鍵獲取數據!

站外排名:支持查看關(guān)鍵詞站外排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
關(guān)鍵詞挖掘:支持百度索引批量查詢(xún)和關(guān)鍵詞挖掘功能,可以快速批量查詢(xún)導出指定級別的關(guān)鍵詞索引。關(guān)鍵詞挖礦可以挖出愛(ài)站,打開(kāi)站后的所有數據,支持關(guān)聯(lián)/過(guò)濾/篩選/導出等功能
站群查詢(xún):批量查詢(xún)權重/反向鏈/pr/采集
/記錄信息等海量站點(diǎn)數據,支持內頁(yè)查詢(xún),支持數據批量篩選導出。
日志分析:支持所有格式的日志,覆蓋所有搜索引擎蜘蛛。批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛抓取頁(yè)面/目錄/ip排名,同時(shí)提供生動(dòng)的圖標,讓蜘蛛和用戶(hù)行為一目了然!
工具箱:支持查看關(guān)鍵詞遠程排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
常問(wèn)問(wèn)題
安裝包下載后打不開(kāi)怎么辦?(如何打開(kāi).rar文件)
最近收到一小部分新手用戶(hù)反饋下載安裝包后無(wú)法打開(kāi)文件,文件沒(méi)有圖標顯示。由于愛(ài)站seo工具安裝包是壓縮軟件壓縮打包的,格式為rar,所以如果需要打開(kāi)該文件,必須使用解壓軟件解壓后才能使用。常見(jiàn)的解壓軟件是Winrar,下面就給大家詳細介紹一下winrar是如何安裝的。
首先下載winrar:
安裝好WinRAR后,就可以解壓愛(ài)站seo工具rar安裝包了。
愛(ài)站SEO Toolkit如何解綁電腦?
Aizhan SEO Toolkit自誕生以來(lái),一直走的是免費軟件和付費VIP的路線(xiàn)。為保障廣大VIP用戶(hù)和站群用戶(hù)的權益,VIP和站群用戶(hù)的電腦綁定數量分別限制為3臺。,每個(gè)VIP賬號或站群賬號都有一次免費修改綁定電腦的機會(huì )。如需再次修改綁定,需收取相應的解綁費用。因此,VIP用戶(hù)和站群用戶(hù)在使用愛(ài)站SEO工具包時(shí)要注意工具資源的規劃和利用,合理指定綁定的電腦。
愛(ài)站SEO工具包解綁教程如圖:
1 點(diǎn)擊網(wǎng)站右上角工具包解綁
2 只支持VIP和站群用戶(hù)解綁
3 按照提示解綁。一次免費解綁機會(huì )用完后,如需解綁,需額外支付費用

“如果3套滿(mǎn)了需要換,就需要解綁,第一次解綁是免費的,相當于6次免費綁定的機會(huì )?!?br /> 安裝步驟
1、從本站下載最新版愛(ài)站SEO Toolkit安裝包,雙擊運行。
2、選擇接受條款后,可以點(diǎn)擊【瀏覽】選擇軟件的安裝路徑;或直接點(diǎn)擊【下一步】,軟件將安裝到默認位置。
3、耐心等待軟件安裝完成,然后點(diǎn)擊【完成】。
技巧
愛(ài)站SEO Toolkit網(wǎng)站監控工具功能強大,可以批量添加50個(gè)域名。是一款可以幫助用戶(hù)實(shí)時(shí)監控網(wǎng)站,實(shí)現實(shí)時(shí)提醒的強大工具。使用方法也很簡(jiǎn)單,下面我就來(lái)介紹一下這個(gè)工具的使用方法。
1. 點(diǎn)擊網(wǎng)站監控,輸入需要監控的域名。
2. 網(wǎng)站監控設置:可以設置監控頻率的時(shí)間段,當出現問(wèn)題時(shí),會(huì )發(fā)送報警到手機號或郵箱;告警方式(從故障發(fā)生到恢復正常發(fā)送一次告警信息,或繼續告警直至恢復正常) 設置完成后選擇保存,即可實(shí)現網(wǎng)站監控。
解決方案:MFC+Modbus-Tcp協(xié)議實(shí)現溫濕度傳感器采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-11-29 19:22
本文簡(jiǎn)單介紹MFC使用Modbus-Tcp通訊實(shí)現RS-WS-ETH-6系列MODBUSTCP溫濕度傳感器的數據采集。
1.了解ModbusTCP協(xié)議
一文看懂Modbus協(xié)議:一文看懂Modbus協(xié)議
2.libmodbus驅動(dòng)庫
libmodbus驅動(dòng)庫的使用:Modbus驅動(dòng)庫-libmodbus驅動(dòng)庫的使用_whik1194的博客-CSDN博客_libmodbus
Modbus中文手冊:libmodbus官方手冊中文翻譯
3、溫濕度傳感器配置
1. 參考設備使用說(shuō)明書(shū)(從設備官網(wǎng)下載),使用配置軟件搜索連接的設備,設置設備的本地參數、網(wǎng)絡(luò )參數、設備參數。
2. 確定溫濕度數據的寄存器地址。
4.使用MFC編寫(xiě)上位機軟件
1.新建MFC應用程序ModbusTcpTest
2.為項目添加參考資源
引用外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目:外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目_同酷做的博客-CSDN博客_mfc導入dll
3.建立連接
//創(chuàng )建modbus對象
modbus_t *modbus;
//建立tcp連接
modbus = modbus_new_tcp(ip地址,端口號);
//設置奴隸
int ret = modbus_set_slave(modbus,slave number);//錯誤返回-1,正確返回0;
// 連接
ret = modbus_connect(modbus);//錯誤返回-1,正確返回0;
//設置響應延遲,第三個(gè)參數是最近的時(shí)間,1000是1ms而不是1s;
ret = modbus_response_timeout(modbus,0,900000);
4.讀取數據
ret = modbus_read_registers(modbus, starting address, number of data, storage container);//讀取的數據存入容器,錯誤返回-1,正確返回0
5.程序界面
6.開(kāi)啟線(xiàn)程刷新數據
參考:【轉】MFC子線(xiàn)程中更新控件內容的兩種方式_zhigang_zhao的博客-CSDN博客
7.源碼下載
解決方案:優(yōu)采云
采集器安裝環(huán)境要求
優(yōu)采云
Collector是一款免費的數據采集發(fā)布軟件,可以部署在云服務(wù)器上??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),與各種CMS建站程序無(wú)縫對接,無(wú)需登錄即可實(shí)時(shí)發(fā)布數據。軟件實(shí)現定時(shí)量化自動(dòng)采集發(fā)布,無(wú)需人工干預!最好的云爬蟲(chóng)軟件優(yōu)采云
采集器功能天財機(優(yōu)采云
數據采集發(fā)布系統)大數據和云時(shí)代網(wǎng)站數據自動(dòng)采集發(fā)布,致力于網(wǎng)站數據自動(dòng)采集發(fā)布,制作數據采集??便捷 智能化、智能化、云端化。系統可部署在云服務(wù)器上,實(shí)現移動(dòng)辦公數據采集。自定義采集規則(regular, XPATH, JSON, 等)可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼
查看全部
解決方案:MFC+Modbus-Tcp協(xié)議實(shí)現溫濕度傳感器采集
本文簡(jiǎn)單介紹MFC使用Modbus-Tcp通訊實(shí)現RS-WS-ETH-6系列MODBUSTCP溫濕度傳感器的數據采集。
1.了解ModbusTCP協(xié)議
一文看懂Modbus協(xié)議:一文看懂Modbus協(xié)議
2.libmodbus驅動(dòng)庫
libmodbus驅動(dòng)庫的使用:Modbus驅動(dòng)庫-libmodbus驅動(dòng)庫的使用_whik1194的博客-CSDN博客_libmodbus
Modbus中文手冊:libmodbus官方手冊中文翻譯
3、溫濕度傳感器配置
1. 參考設備使用說(shuō)明書(shū)(從設備官網(wǎng)下載),使用配置軟件搜索連接的設備,設置設備的本地參數、網(wǎng)絡(luò )參數、設備參數。
2. 確定溫濕度數據的寄存器地址。
4.使用MFC編寫(xiě)上位機軟件

1.新建MFC應用程序ModbusTcpTest
2.為項目添加參考資源
引用外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目:外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目_同酷做的博客-CSDN博客_mfc導入dll
3.建立連接
//創(chuàng )建modbus對象
modbus_t *modbus;
//建立tcp連接
modbus = modbus_new_tcp(ip地址,端口號);
//設置奴隸
int ret = modbus_set_slave(modbus,slave number);//錯誤返回-1,正確返回0;

// 連接
ret = modbus_connect(modbus);//錯誤返回-1,正確返回0;
//設置響應延遲,第三個(gè)參數是最近的時(shí)間,1000是1ms而不是1s;
ret = modbus_response_timeout(modbus,0,900000);
4.讀取數據
ret = modbus_read_registers(modbus, starting address, number of data, storage container);//讀取的數據存入容器,錯誤返回-1,正確返回0
5.程序界面
6.開(kāi)啟線(xiàn)程刷新數據
參考:【轉】MFC子線(xiàn)程中更新控件內容的兩種方式_zhigang_zhao的博客-CSDN博客
7.源碼下載
解決方案:優(yōu)采云
采集器安裝環(huán)境要求

優(yōu)采云
Collector是一款免費的數據采集發(fā)布軟件,可以部署在云服務(wù)器上??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),與各種CMS建站程序無(wú)縫對接,無(wú)需登錄即可實(shí)時(shí)發(fā)布數據。軟件實(shí)現定時(shí)量化自動(dòng)采集發(fā)布,無(wú)需人工干預!最好的云爬蟲(chóng)軟件優(yōu)采云
采集器功能天財機(優(yōu)采云
數據采集發(fā)布系統)大數據和云時(shí)代網(wǎng)站數據自動(dòng)采集發(fā)布,致力于網(wǎng)站數據自動(dòng)采集發(fā)布,制作數據采集??便捷 智能化、智能化、云端化。系統可部署在云服務(wù)器上,實(shí)現移動(dòng)辦公數據采集。自定義采集規則(regular, XPATH, JSON, 等)可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼

解決方案:文章采集調用的是七牛數據平臺,需要導入七牛。
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 202 次瀏覽 ? 2022-11-29 19:17
文章采集調用的是七牛數據平臺,需要導入七牛。在七牛中分別有接收搜索和導入數據兩個(gè)操作。其中,引入數據可以看做是商品分類(lèi)。導入數據則是按一類(lèi)存放,存入某數據庫中。數據采集之后,可以拆分分析計算。
這個(gè)應該是你需要找的答案,不過(guò)問(wèn)的人不知道是否找到。
最簡(jiǎn)單直接的方法:下載一個(gè)apiserver,用它解析reactnative,
在android上也不一定要分別去訪(fǎng)問(wèn)七牛和淘寶,下載一個(gè)android網(wǎng)絡(luò )api就可以。具體怎么寫(xiě)都一樣。
不要下七牛,應該找一個(gè)有接口的開(kāi)發(fā)平臺,
簡(jiǎn)單來(lái)說(shuō),就是獲取你認為重要的數據,然后進(jìn)行數據分析,數據拆分分析用好數據這個(gè)我是通過(guò)七牛云上的api接口來(lái)完成的。
如果是導入數據,那需要導入他的sdk,而導入的時(shí)候會(huì )對你的應用做相應的配置,七牛也提供配置接口,所以你可以導入應用。如果你只是想調用七牛的api,那估計就是采集七牛的分析接口了。
七牛數據平臺上有公開(kāi)的api,也可以跟七牛直接連接,接入其它api不過(guò)我知道,你這個(gè)需求,app端的會(huì )比較好做,如果是web端,可能前端同學(xué)做分析比較好。
如果你app采集的是前端的數據, 查看全部
解決方案:文章采集調用的是七牛數據平臺,需要導入七牛。
文章采集調用的是七牛數據平臺,需要導入七牛。在七牛中分別有接收搜索和導入數據兩個(gè)操作。其中,引入數據可以看做是商品分類(lèi)。導入數據則是按一類(lèi)存放,存入某數據庫中。數據采集之后,可以拆分分析計算。
這個(gè)應該是你需要找的答案,不過(guò)問(wèn)的人不知道是否找到。

最簡(jiǎn)單直接的方法:下載一個(gè)apiserver,用它解析reactnative,
在android上也不一定要分別去訪(fǎng)問(wèn)七牛和淘寶,下載一個(gè)android網(wǎng)絡(luò )api就可以。具體怎么寫(xiě)都一樣。
不要下七牛,應該找一個(gè)有接口的開(kāi)發(fā)平臺,

簡(jiǎn)單來(lái)說(shuō),就是獲取你認為重要的數據,然后進(jìn)行數據分析,數據拆分分析用好數據這個(gè)我是通過(guò)七牛云上的api接口來(lái)完成的。
如果是導入數據,那需要導入他的sdk,而導入的時(shí)候會(huì )對你的應用做相應的配置,七牛也提供配置接口,所以你可以導入應用。如果你只是想調用七牛的api,那估計就是采集七牛的分析接口了。
七牛數據平臺上有公開(kāi)的api,也可以跟七牛直接連接,接入其它api不過(guò)我知道,你這個(gè)需求,app端的會(huì )比較好做,如果是web端,可能前端同學(xué)做分析比較好。
如果你app采集的是前端的數據,
解決方案:開(kāi)源一款監控數據采集器,啥都能監控
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 382 次瀏覽 ? 2022-11-29 12:40
介紹
Categraf 是一個(gè)監控和采集
代理,類(lèi)似于 Telegraf、Grafana-Agent 和 Datadog-Agent。它希望為所有常見(jiàn)的監控對象提供監控數據采集能力。它采用一體化設計。不僅支持指標采集,還希望支持日志和調用鏈路數據采集??熵埖难邪l(fā)團隊與Open-Falcon和Nightingale的研發(fā)團隊相同。
categraf 的代碼托管在兩個(gè)地方:
比較的
categraf和telegraf、exporters、grafana-agent、datadog-agent等有什么關(guān)系?
Telegraf 是 influxdb 生態(tài)系統的產(chǎn)物。因為influxdb支持字符串數據,所以telegraf采集的很多字段都是字符串類(lèi)型。另外,influxdb的設計允許標簽是不穩定的結構,比如result_code標簽。有時(shí)它的值為0,有時(shí)它的值為1,這在influxdb中是可以接受的。但是以上兩點(diǎn)在prometheus這樣的時(shí)序庫中處理起來(lái)非常麻煩。
prometheus 生態(tài)系統中有各種導出器,但設計邏輯是每個(gè)監控類(lèi)型一個(gè)導出器,甚至每個(gè)實(shí)例一個(gè)導出器。生產(chǎn)環(huán)境可能會(huì )部署大量的exporter,管理起來(lái)有點(diǎn)麻煩。
grafana-agent導入大量出口商的代碼,沒(méi)有剪裁,沒(méi)有優(yōu)化,沒(méi)有在產(chǎn)品中實(shí)現最佳實(shí)踐。有些中間件還是grafana-agent的一個(gè)目標實(shí)例,管理起來(lái)很不方便。
datadog-agent確實(shí)是高手,但是很多代碼都是python的,而且整個(gè)release包比較大,歷史包袱比較多,而且生態(tài)上自成一派,相對脫離社區。
categraf確實(shí)是另一個(gè)輪子,categraf希望:
安裝
您可以直接轉到 categraf 發(fā)布頁(yè)面,下載已編譯的二進(jìn)制文件,或自行編譯。編譯只需要一個(gè)命令:go build 當然,前提是機器上有Go環(huán)境。
如果您是從舊版本升級,還建議您查看 categraf 發(fā)布頁(yè)面。每個(gè)版本有什么變化,升級的時(shí)候要注意什么,這里都會(huì )寫(xiě)的很清楚。
部署在目標機器上,只需要categraf二進(jìn)制文件和conf目錄。conf下有一個(gè)主配置文件:config.toml,定義了機器名、全局采集頻率、全局附加標簽、遠程寫(xiě)后端地址等;另外,各種采集插件的配置目錄都是以input開(kāi)頭的。如果不想啟用某個(gè)采集
器xx,把input.xx改成其他前綴,比如bak.input.xx,categraf會(huì )忽略這個(gè)采集
器。
conf 目錄中還提供了示例 categraf.service 文件,以便您可以使用 systemd 來(lái)托管 categraf。如果你對systemd不熟悉,推薦學(xué)習一門(mén)課程:Linux進(jìn)階知識
測試
我們經(jīng)常需要測試某個(gè)采集器的行為,臨時(shí)看看采集器輸出了哪些監控指標,比如配置conf/input.mysql/mysql.toml后,查看采集了哪些mysql指標,可以執行命令: 。 /categraf --test --inputs mysql
這個(gè)命令會(huì )連接到你配置的mysql實(shí)例,執行SQL采集
輸出,轉換輸出內容,最后打印到stdout。如果我們在stdout中看到mysql相關(guān)的監控指標正常,說(shuō)明一切正常,否則就是where。如果有問(wèn)題,很大概率是conf/input.mysql/mysql.toml的配置有問(wèn)題。
如果修改了某個(gè)采集器的配置,需要重啟categraf或者向categraf進(jìn)程發(fā)送HUP信號,發(fā)送HUP信號的命令,例如:
kill?-HUP?`pidof?categraf`<br />
另外categraf支持哪些命令行參數可以通過(guò)./categraf --help查看
插件說(shuō)明
采集插件的代碼,在代碼的inputs目錄下,每個(gè)插件都有一個(gè)獨立的目錄,目錄下是采集代碼,以及相關(guān)的監控大盤(pán)JSON(如果有)和告警規則JSON(如果有) ), Linux相關(guān)的dashboards和alarms規則并沒(méi)有分散在cpu、mem、disk等采集器目錄中,而是一起放在了system目錄下,方便使用。
插件的配置文件放在conf目錄下,以input開(kāi)頭。每個(gè)配置文件都有詳細的注釋。不懂的直接去inputs目錄下對應采集器的代碼即可。Go代碼非常易讀,比如不知道某個(gè)配置是干什么的,去采集器代碼中搜索相關(guān)配置項,很容易找到答案。
配置說(shuō)明
下面是對config.toml中各個(gè)配置的解釋?zhuān)?br /> [global]
# 啟動(dòng)的時(shí)候是否在stdout中打印配置內容
print_configs = false
# 機器名,作為本機的唯一標識,會(huì )為時(shí)序數據自動(dòng)附加一個(gè) agent_hostname=$hostname 的標簽
# hostname 配置如果為空,自動(dòng)取本機的機器名
# hostname 配置如果不為空,就使用用戶(hù)配置的內容作為hostname
# 用戶(hù)配置的hostname字符串中,可以包含變量,目前支持兩個(gè)變量,
# $hostname 和 $ip,如果字符串中出現這兩個(gè)變量,就會(huì )自動(dòng)替換
# $hostname 自動(dòng)替換為本機機器名,$ip 自動(dòng)替換為本機IP
# 建議大家使用 --test 做一下測試,看看輸出的內容是否符合預期
hostname = ""
# 是否忽略主機名的標簽,如果設置為true,時(shí)序數據中就不會(huì )自動(dòng)附加agent_hostname=$hostname 的標簽
<p>
omit_hostname = false
# 時(shí)序數據的時(shí)間戳使用ms還是s,默認是ms,是因為remote write協(xié)議使用ms作為時(shí)間戳的單位
precision = "ms"
# 全局采集頻率,15秒采集一次
interval = 15
# 全局附加標簽,一行一個(gè),這些寫(xiě)的標簽會(huì )自動(dòng)附到時(shí)序數據上
# [global.labels]
# region = "shanghai"
# env = "localhost"
# 發(fā)給后端的時(shí)序數據,會(huì )先被扔到 categraf 內存隊列里,每個(gè)采集插件一個(gè)隊列
# chan_size 定義了隊列最大長(cháng)度
# batch 是每次從隊列中取多少條,發(fā)送給后端backend
[writer_opt]
# default: 2000
batch = 2000
# channel(as queue) size
chan_size = 10000
# 后端backend配置,在toml中 [[]] 表示數組,所以可以配置多個(gè)writer
# 每個(gè)writer可以有不同的url,不同的basic auth信息
[[writers]]
url = "http://127.0.0.1:19000/prometheus/v1/write"
# Basic auth username
basic_auth_user = ""
# Basic auth password
basic_auth_pass = ""
# timeout settings, unit: ms
timeout = 5000
dial_timeout = 2500
max_idle_conns_per_host = 100
</p>
對于各個(gè)采集器的配置,這里不做贅述,只說(shuō)一些比較常用的配置項。
間隔
在每個(gè)插件的配置中,開(kāi)頭通常會(huì )有一個(gè)interval配置,表示采集頻率。如果注釋掉該配置,將復用config.toml中的采集頻率。如果此配置配置為數字,則單位為秒。如果配置為字符串時(shí),必須給出單位,例如:
interval = 60
interval = "60s"
interval = "1m"
以上三種寫(xiě)法均表示采集頻率為1分鐘。如果使用字符串,可以使用的單位是:
實(shí)例
在很多采集插件的配置中,有一個(gè)instances配置段,用[[]]包裹起來(lái),表示是一個(gè)數組,即可以出現多個(gè)[[instances]]配置段,比如ping監控采集插件。PING檢測的IP可以配置如下:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1",
"10.4.5.6",
"10.4.5.7"
]
也可以這樣配置:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1"
]
[[instances]]
targets = [
"10.4.5.6",
"10.4.5.7"
]
間隔時(shí)間
如果instances下有interval_times配置,表示interval的倍數,比如ping監控,有的地址是15秒的頻率采集,有的可能不想采集太頻繁,比如30秒,那么你可以配置interval為15,不需要頻繁那些采集到的instance的interval_times配置為2
或者:配置interval為5,將那些需要15秒采集一次的實(shí)例的interval_times配置為3,將那些需要30秒采集一次的實(shí)例的interval_times配置為6
標簽
instances下的標簽和config.toml中的global.labels類(lèi)似,只是作用范圍不同。它們都是時(shí)間序列數據。instances下的labels附在對應的instance上,global.labels附在所有時(shí)序數據上
工作計劃
categraf已經(jīng)完成了一些常用的采集插件,還有很多有待開(kāi)發(fā)。歡迎搭建和補充。完成的采集插件包括:
有些采集器不僅提供采集能力,還提供監控配置和告警規則配置。您可以將 JSON 導入 Nightingale 并使用它。至于哪些插件提供了JSON配置,可以通過(guò)以下方式找到:
[root@master01?categraf]#?find?inputs?-name?"*.json"<br />inputs/redis/alerts.json<br />inputs/redis/dashboard.json<br />inputs/system/dashboard.json<br />inputs/system/alerts-linux.json<br />inputs/oracle/dashboard.json<br />inputs/ping/alerts.json<br />inputs/ping/dashboard.json<br />inputs/ntp/alerts.json<br />inputs/procstat/alerts.json<br />inputs/mysql/alerts.json<br />inputs/mysql/dashboard.json<br />inputs/tomcat/dashboard.json<br />inputs/rabbitmq/dashboard.json<br />inputs/http_response/alerts.json<br />inputs/http_response/dashboard.json<br />inputs/net_response/alerts.json<br />inputs/net_response/dashboard.json<br />
還需要繼續開(kāi)發(fā)的包括:
更多信息
解決方案:基于 PTS 壓測輕松玩轉問(wèn)題診斷
為什么要定位壓力測試的問(wèn)題?
性能測試PTS(Performance Testing Service)是一個(gè)SaaS壓測平臺,具有強大的分布式壓測能力,可以模擬海量用戶(hù)的真實(shí)業(yè)務(wù)場(chǎng)景,全面驗證業(yè)務(wù)站點(diǎn)的性能、容量和穩定性。
在持續測壓服務(wù)器水位的過(guò)程中,我們可以從壓測視圖或者壓測報告中看到更全面的壓測指標,比如QPS、RT、TPS等,但僅僅從這些指標來(lái)看,它無(wú)法快速定位到服務(wù)器的具體問(wèn)題。比如我們可以從整個(gè)場(chǎng)景的錯誤信息中心看到錯誤碼對應的接口的響應體,但是下游是哪個(gè)環(huán)節錯了,錯誤的棧是什么,你是看不到的這里簡(jiǎn)單的從report上看,但是接口下游有什么問(wèn)題,error stack是什么,正是用戶(hù)關(guān)心的問(wèn)題。
借助問(wèn)題診斷,我們可以理清被壓接口的上下游調用。同時(shí)從鏈路視圖中我們可以看到整個(gè)鏈路經(jīng)過(guò)的消息組件(Kafka、RocketMQ等)、緩存(Redis、MongoDB等)。等),數據庫(MySQL,Oracle等),RPC調用(Feign,Dubbo,HttpClient等),比如某個(gè)接口狀態(tài)碼異?;蛘咂渌e誤,那么我們可以從調用鏈上看那就是rpc調用有問(wèn)題,就是數據庫讀寫(xiě)有問(wèn)題,從調用鏈可以看到對應的錯誤棧。根據這些信息,應該比較清楚問(wèn)題出在哪里。
問(wèn)題診斷基本介紹及核心優(yōu)勢
在進(jìn)行問(wèn)題診斷時(shí),用戶(hù)主要關(guān)心接入問(wèn)題診斷是否需要對應用端代碼進(jìn)行一系列修改,是否需要復雜的配置等等。PTS提供的問(wèn)題診斷基于JavaAgent,用戶(hù)端無(wú)需修改業(yè)務(wù)代碼。對于基于Tomcat的部署方式,用戶(hù)只需在啟動(dòng)腳本中添加一些必要的參數即可接入問(wèn)題診斷;對于 Kubernetes 用戶(hù),用戶(hù)只需要在 Yaml 配置文件中添加一些必要的注解即可訪(fǎng)問(wèn)問(wèn)題診斷。對于鏈接采集
規則,PTS會(huì )提供默認配置,用戶(hù)也可以根據自己的需要進(jìn)行更改。
PTS集成問(wèn)題診斷在壓測??過(guò)程中,對于每一個(gè)請求,在壓力引擎側都會(huì )生成一個(gè)TraceId,通過(guò)TraceId關(guān)聯(lián)請求中涉及的上下游環(huán)節,用戶(hù)可以看到作為入口到本次請求結束所涉及的完整調用鏈,同時(shí)問(wèn)題診斷會(huì )為調用鏈生成對應的應用拓撲視圖,讓用戶(hù)清晰的看到應用之間的調用關(guān)系。
對于異常的接口,我們可以在調用鏈中看到相應的錯誤原因。同時(shí),用戶(hù)可以根據具體的錯誤堆棧對服務(wù)端問(wèn)題進(jìn)行排查和優(yōu)化。壓測過(guò)程中,用戶(hù)可以實(shí)時(shí)查看指定請求的調用鏈。同時(shí),壓測結束后,還可以從壓測報告中追溯問(wèn)題。
核心優(yōu)勢
1. 零代碼入侵:對于Java類(lèi)業(yè)務(wù),用戶(hù)側無(wú)需修改業(yè)務(wù)側代碼即可完成問(wèn)題診斷的探針接入。
2、集成度高:壓測、監控、問(wèn)題診斷集成在同一個(gè)控制臺,用戶(hù)理解和操作成本較低。
3、監控指標全面:壓測過(guò)程中,除了比較基礎的監控指標外,還針對各個(gè)服務(wù)提供了接口、機器、應用層面的監控。
4、門(mén)檻低:只需要簡(jiǎn)單的配置參數即可完成問(wèn)題診斷探針的接入。同時(shí),探針還具備多協(xié)議mock、全鏈路壓力測試等功能。
快速玩轉問(wèn)題診斷
接入問(wèn)題診斷的基本流程如下:
訪(fǎng)問(wèn)探針,查看是否訪(fǎng)問(wèn)成功
首先,我們對壓力場(chǎng)景涉及的應用進(jìn)行梳理,將所有涉及的應用按照【問(wèn)題診斷】->【探針接入[1]]文檔中的步驟接入問(wèn)題診斷探針。我們可以在PTS控制臺中選擇應用配置或應用監控、接口監控、機器監控中的一項來(lái)查看應用探針是否連接成功。我們這次演示的壓測場(chǎng)景涉及五個(gè)應用,分別是petstore-web、petstore-user、petstore-order、petstore-catalog、petstore-cart。這里以應用監控為例,檢查應用是否連接成功。點(diǎn)擊【問(wèn)題診斷】->【應用監控[2]]->依次選擇我們在PTS控制臺配置的Region和Namespace。
壓測場(chǎng)景開(kāi)啟問(wèn)題診斷開(kāi)關(guān)
然后,我們在PTS控制臺的【壓測中心】->【創(chuàng )建場(chǎng)景【3】】創(chuàng )建一個(gè)壓測場(chǎng)景。這里可以選擇PTS場(chǎng)景或者JMeter場(chǎng)景。這里我們以PTS場(chǎng)景為例,因為本次演示主要是驗證問(wèn)題診斷的能力,所以需要在場(chǎng)景配置中的【高級設置】中打開(kāi)問(wèn)題診斷開(kāi)關(guān)。對于具體的監控采集規則,PTS會(huì )將默認采集開(kāi)關(guān)的配置推送給用戶(hù)。同時(shí)采樣率設置為1/1000,用戶(hù)也可以根據自己的需要進(jìn)行自定義。
開(kāi)始壓測,查看應用監控
完成以上步驟后,我們的壓測場(chǎng)景就具備了診斷問(wèn)題的能力。我們點(diǎn)擊開(kāi)始壓測后,可以在應用監控、接口監控、機器監控中選擇我們關(guān)心的服務(wù),查看相應的監控情況。這里我們以應用監控[2]為例。其他類(lèi)型監控的操作步驟類(lèi)似。我們選擇 petstore-user 這個(gè)服務(wù)來(lái)查看應用監控,如下圖:
壓測結束后,查看整個(gè)場(chǎng)景的錯誤信息
壓測結束后,我們需要從壓測報告中排查受壓服務(wù)器的問(wèn)題,打開(kāi)對應場(chǎng)景的壓測報告。具體步驟為:PTS控制臺->【壓測中心】->【報告列表[4]】,選擇對應的壓測報告,在概覽頁(yè)面可以看到整個(gè)場(chǎng)景的信息,如圖下圖:
選擇探針采樣查看具體的調用鏈
點(diǎn)擊【查看采樣日志】,采樣類(lèi)型選擇“探針采樣”,過(guò)濾出問(wèn)題診斷探針采集到的調用鏈,如下圖:
查看調用鏈的具體錯誤堆棧信息定位服務(wù)端問(wèn)題
過(guò)濾掉探針端采集
到的調用鏈后,就可以分析出問(wèn)題接口的調用鏈了。例如商品列表接口返回的狀態(tài)碼為500,點(diǎn)擊查看詳情可以查看具體原因,如下圖:
從調用??梢钥闯鼍唧w的錯誤原因,從而優(yōu)化和修復服務(wù)端代碼。同時(shí),您可以通過(guò)應用拓撲視圖和數據庫視圖查看服務(wù)之間的調用和數據庫使用情況。這里以應用拓撲視圖為例,如下圖所示:
壓測報告常見(jiàn)錯誤碼匯總 問(wèn)題診斷錯誤碼匯總
問(wèn)題診斷調用環(huán)節中常見(jiàn)的錯誤碼總結如下:
壓測報告錯誤碼匯總
以下是壓力測試報告中的常見(jiàn)錯誤列表。我們可以從整個(gè)場(chǎng)景的錯誤信息中看到相關(guān)的錯誤信息,如下:
相關(guān)鏈接
[1] 探測訪(fǎng)問(wèn)
[2] 應用監控
[3] 創(chuàng )建場(chǎng)景
[4] 報告清單
???? 查看全部
解決方案:開(kāi)源一款監控數據采集器,啥都能監控
介紹
Categraf 是一個(gè)監控和采集
代理,類(lèi)似于 Telegraf、Grafana-Agent 和 Datadog-Agent。它希望為所有常見(jiàn)的監控對象提供監控數據采集能力。它采用一體化設計。不僅支持指標采集,還希望支持日志和調用鏈路數據采集??熵埖难邪l(fā)團隊與Open-Falcon和Nightingale的研發(fā)團隊相同。
categraf 的代碼托管在兩個(gè)地方:
比較的
categraf和telegraf、exporters、grafana-agent、datadog-agent等有什么關(guān)系?
Telegraf 是 influxdb 生態(tài)系統的產(chǎn)物。因為influxdb支持字符串數據,所以telegraf采集的很多字段都是字符串類(lèi)型。另外,influxdb的設計允許標簽是不穩定的結構,比如result_code標簽。有時(shí)它的值為0,有時(shí)它的值為1,這在influxdb中是可以接受的。但是以上兩點(diǎn)在prometheus這樣的時(shí)序庫中處理起來(lái)非常麻煩。
prometheus 生態(tài)系統中有各種導出器,但設計邏輯是每個(gè)監控類(lèi)型一個(gè)導出器,甚至每個(gè)實(shí)例一個(gè)導出器。生產(chǎn)環(huán)境可能會(huì )部署大量的exporter,管理起來(lái)有點(diǎn)麻煩。
grafana-agent導入大量出口商的代碼,沒(méi)有剪裁,沒(méi)有優(yōu)化,沒(méi)有在產(chǎn)品中實(shí)現最佳實(shí)踐。有些中間件還是grafana-agent的一個(gè)目標實(shí)例,管理起來(lái)很不方便。
datadog-agent確實(shí)是高手,但是很多代碼都是python的,而且整個(gè)release包比較大,歷史包袱比較多,而且生態(tài)上自成一派,相對脫離社區。
categraf確實(shí)是另一個(gè)輪子,categraf希望:
安裝
您可以直接轉到 categraf 發(fā)布頁(yè)面,下載已編譯的二進(jìn)制文件,或自行編譯。編譯只需要一個(gè)命令:go build 當然,前提是機器上有Go環(huán)境。
如果您是從舊版本升級,還建議您查看 categraf 發(fā)布頁(yè)面。每個(gè)版本有什么變化,升級的時(shí)候要注意什么,這里都會(huì )寫(xiě)的很清楚。
部署在目標機器上,只需要categraf二進(jìn)制文件和conf目錄。conf下有一個(gè)主配置文件:config.toml,定義了機器名、全局采集頻率、全局附加標簽、遠程寫(xiě)后端地址等;另外,各種采集插件的配置目錄都是以input開(kāi)頭的。如果不想啟用某個(gè)采集
器xx,把input.xx改成其他前綴,比如bak.input.xx,categraf會(huì )忽略這個(gè)采集
器。
conf 目錄中還提供了示例 categraf.service 文件,以便您可以使用 systemd 來(lái)托管 categraf。如果你對systemd不熟悉,推薦學(xué)習一門(mén)課程:Linux進(jìn)階知識
測試
我們經(jīng)常需要測試某個(gè)采集器的行為,臨時(shí)看看采集器輸出了哪些監控指標,比如配置conf/input.mysql/mysql.toml后,查看采集了哪些mysql指標,可以執行命令: 。 /categraf --test --inputs mysql
這個(gè)命令會(huì )連接到你配置的mysql實(shí)例,執行SQL采集
輸出,轉換輸出內容,最后打印到stdout。如果我們在stdout中看到mysql相關(guān)的監控指標正常,說(shuō)明一切正常,否則就是where。如果有問(wèn)題,很大概率是conf/input.mysql/mysql.toml的配置有問(wèn)題。
如果修改了某個(gè)采集器的配置,需要重啟categraf或者向categraf進(jìn)程發(fā)送HUP信號,發(fā)送HUP信號的命令,例如:
kill?-HUP?`pidof?categraf`<br />
另外categraf支持哪些命令行參數可以通過(guò)./categraf --help查看
插件說(shuō)明
采集插件的代碼,在代碼的inputs目錄下,每個(gè)插件都有一個(gè)獨立的目錄,目錄下是采集代碼,以及相關(guān)的監控大盤(pán)JSON(如果有)和告警規則JSON(如果有) ), Linux相關(guān)的dashboards和alarms規則并沒(méi)有分散在cpu、mem、disk等采集器目錄中,而是一起放在了system目錄下,方便使用。
插件的配置文件放在conf目錄下,以input開(kāi)頭。每個(gè)配置文件都有詳細的注釋。不懂的直接去inputs目錄下對應采集器的代碼即可。Go代碼非常易讀,比如不知道某個(gè)配置是干什么的,去采集器代碼中搜索相關(guān)配置項,很容易找到答案。
配置說(shuō)明
下面是對config.toml中各個(gè)配置的解釋?zhuān)?br /> [global]
# 啟動(dòng)的時(shí)候是否在stdout中打印配置內容
print_configs = false
# 機器名,作為本機的唯一標識,會(huì )為時(shí)序數據自動(dòng)附加一個(gè) agent_hostname=$hostname 的標簽
# hostname 配置如果為空,自動(dòng)取本機的機器名
# hostname 配置如果不為空,就使用用戶(hù)配置的內容作為hostname
# 用戶(hù)配置的hostname字符串中,可以包含變量,目前支持兩個(gè)變量,
# $hostname 和 $ip,如果字符串中出現這兩個(gè)變量,就會(huì )自動(dòng)替換
# $hostname 自動(dòng)替換為本機機器名,$ip 自動(dòng)替換為本機IP
# 建議大家使用 --test 做一下測試,看看輸出的內容是否符合預期
hostname = ""
# 是否忽略主機名的標簽,如果設置為true,時(shí)序數據中就不會(huì )自動(dòng)附加agent_hostname=$hostname 的標簽
<p>

omit_hostname = false
# 時(shí)序數據的時(shí)間戳使用ms還是s,默認是ms,是因為remote write協(xié)議使用ms作為時(shí)間戳的單位
precision = "ms"
# 全局采集頻率,15秒采集一次
interval = 15
# 全局附加標簽,一行一個(gè),這些寫(xiě)的標簽會(huì )自動(dòng)附到時(shí)序數據上
# [global.labels]
# region = "shanghai"
# env = "localhost"
# 發(fā)給后端的時(shí)序數據,會(huì )先被扔到 categraf 內存隊列里,每個(gè)采集插件一個(gè)隊列
# chan_size 定義了隊列最大長(cháng)度
# batch 是每次從隊列中取多少條,發(fā)送給后端backend
[writer_opt]
# default: 2000
batch = 2000
# channel(as queue) size
chan_size = 10000
# 后端backend配置,在toml中 [[]] 表示數組,所以可以配置多個(gè)writer
# 每個(gè)writer可以有不同的url,不同的basic auth信息
[[writers]]
url = "http://127.0.0.1:19000/prometheus/v1/write"
# Basic auth username
basic_auth_user = ""
# Basic auth password
basic_auth_pass = ""
# timeout settings, unit: ms
timeout = 5000
dial_timeout = 2500
max_idle_conns_per_host = 100
</p>
對于各個(gè)采集器的配置,這里不做贅述,只說(shuō)一些比較常用的配置項。
間隔

在每個(gè)插件的配置中,開(kāi)頭通常會(huì )有一個(gè)interval配置,表示采集頻率。如果注釋掉該配置,將復用config.toml中的采集頻率。如果此配置配置為數字,則單位為秒。如果配置為字符串時(shí),必須給出單位,例如:
interval = 60
interval = "60s"
interval = "1m"
以上三種寫(xiě)法均表示采集頻率為1分鐘。如果使用字符串,可以使用的單位是:
實(shí)例
在很多采集插件的配置中,有一個(gè)instances配置段,用[[]]包裹起來(lái),表示是一個(gè)數組,即可以出現多個(gè)[[instances]]配置段,比如ping監控采集插件。PING檢測的IP可以配置如下:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1",
"10.4.5.6",
"10.4.5.7"
]
也可以這樣配置:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1"
]
[[instances]]
targets = [
"10.4.5.6",
"10.4.5.7"
]
間隔時(shí)間
如果instances下有interval_times配置,表示interval的倍數,比如ping監控,有的地址是15秒的頻率采集,有的可能不想采集太頻繁,比如30秒,那么你可以配置interval為15,不需要頻繁那些采集到的instance的interval_times配置為2
或者:配置interval為5,將那些需要15秒采集一次的實(shí)例的interval_times配置為3,將那些需要30秒采集一次的實(shí)例的interval_times配置為6
標簽
instances下的標簽和config.toml中的global.labels類(lèi)似,只是作用范圍不同。它們都是時(shí)間序列數據。instances下的labels附在對應的instance上,global.labels附在所有時(shí)序數據上
工作計劃
categraf已經(jīng)完成了一些常用的采集插件,還有很多有待開(kāi)發(fā)。歡迎搭建和補充。完成的采集插件包括:
有些采集器不僅提供采集能力,還提供監控配置和告警規則配置。您可以將 JSON 導入 Nightingale 并使用它。至于哪些插件提供了JSON配置,可以通過(guò)以下方式找到:
[root@master01?categraf]#?find?inputs?-name?"*.json"<br />inputs/redis/alerts.json<br />inputs/redis/dashboard.json<br />inputs/system/dashboard.json<br />inputs/system/alerts-linux.json<br />inputs/oracle/dashboard.json<br />inputs/ping/alerts.json<br />inputs/ping/dashboard.json<br />inputs/ntp/alerts.json<br />inputs/procstat/alerts.json<br />inputs/mysql/alerts.json<br />inputs/mysql/dashboard.json<br />inputs/tomcat/dashboard.json<br />inputs/rabbitmq/dashboard.json<br />inputs/http_response/alerts.json<br />inputs/http_response/dashboard.json<br />inputs/net_response/alerts.json<br />inputs/net_response/dashboard.json<br />
還需要繼續開(kāi)發(fā)的包括:
更多信息
解決方案:基于 PTS 壓測輕松玩轉問(wèn)題診斷
為什么要定位壓力測試的問(wèn)題?
性能測試PTS(Performance Testing Service)是一個(gè)SaaS壓測平臺,具有強大的分布式壓測能力,可以模擬海量用戶(hù)的真實(shí)業(yè)務(wù)場(chǎng)景,全面驗證業(yè)務(wù)站點(diǎn)的性能、容量和穩定性。
在持續測壓服務(wù)器水位的過(guò)程中,我們可以從壓測視圖或者壓測報告中看到更全面的壓測指標,比如QPS、RT、TPS等,但僅僅從這些指標來(lái)看,它無(wú)法快速定位到服務(wù)器的具體問(wèn)題。比如我們可以從整個(gè)場(chǎng)景的錯誤信息中心看到錯誤碼對應的接口的響應體,但是下游是哪個(gè)環(huán)節錯了,錯誤的棧是什么,你是看不到的這里簡(jiǎn)單的從report上看,但是接口下游有什么問(wèn)題,error stack是什么,正是用戶(hù)關(guān)心的問(wèn)題。
借助問(wèn)題診斷,我們可以理清被壓接口的上下游調用。同時(shí)從鏈路視圖中我們可以看到整個(gè)鏈路經(jīng)過(guò)的消息組件(Kafka、RocketMQ等)、緩存(Redis、MongoDB等)。等),數據庫(MySQL,Oracle等),RPC調用(Feign,Dubbo,HttpClient等),比如某個(gè)接口狀態(tài)碼異?;蛘咂渌e誤,那么我們可以從調用鏈上看那就是rpc調用有問(wèn)題,就是數據庫讀寫(xiě)有問(wèn)題,從調用鏈可以看到對應的錯誤棧。根據這些信息,應該比較清楚問(wèn)題出在哪里。
問(wèn)題診斷基本介紹及核心優(yōu)勢
在進(jìn)行問(wèn)題診斷時(shí),用戶(hù)主要關(guān)心接入問(wèn)題診斷是否需要對應用端代碼進(jìn)行一系列修改,是否需要復雜的配置等等。PTS提供的問(wèn)題診斷基于JavaAgent,用戶(hù)端無(wú)需修改業(yè)務(wù)代碼。對于基于Tomcat的部署方式,用戶(hù)只需在啟動(dòng)腳本中添加一些必要的參數即可接入問(wèn)題診斷;對于 Kubernetes 用戶(hù),用戶(hù)只需要在 Yaml 配置文件中添加一些必要的注解即可訪(fǎng)問(wèn)問(wèn)題診斷。對于鏈接采集
規則,PTS會(huì )提供默認配置,用戶(hù)也可以根據自己的需要進(jìn)行更改。
PTS集成問(wèn)題診斷在壓測??過(guò)程中,對于每一個(gè)請求,在壓力引擎側都會(huì )生成一個(gè)TraceId,通過(guò)TraceId關(guān)聯(lián)請求中涉及的上下游環(huán)節,用戶(hù)可以看到作為入口到本次請求結束所涉及的完整調用鏈,同時(shí)問(wèn)題診斷會(huì )為調用鏈生成對應的應用拓撲視圖,讓用戶(hù)清晰的看到應用之間的調用關(guān)系。
對于異常的接口,我們可以在調用鏈中看到相應的錯誤原因。同時(shí),用戶(hù)可以根據具體的錯誤堆棧對服務(wù)端問(wèn)題進(jìn)行排查和優(yōu)化。壓測過(guò)程中,用戶(hù)可以實(shí)時(shí)查看指定請求的調用鏈。同時(shí),壓測結束后,還可以從壓測報告中追溯問(wèn)題。
核心優(yōu)勢
1. 零代碼入侵:對于Java類(lèi)業(yè)務(wù),用戶(hù)側無(wú)需修改業(yè)務(wù)側代碼即可完成問(wèn)題診斷的探針接入。
2、集成度高:壓測、監控、問(wèn)題診斷集成在同一個(gè)控制臺,用戶(hù)理解和操作成本較低。
3、監控指標全面:壓測過(guò)程中,除了比較基礎的監控指標外,還針對各個(gè)服務(wù)提供了接口、機器、應用層面的監控。
4、門(mén)檻低:只需要簡(jiǎn)單的配置參數即可完成問(wèn)題診斷探針的接入。同時(shí),探針還具備多協(xié)議mock、全鏈路壓力測試等功能。
快速玩轉問(wèn)題診斷
接入問(wèn)題診斷的基本流程如下:

訪(fǎng)問(wèn)探針,查看是否訪(fǎng)問(wèn)成功
首先,我們對壓力場(chǎng)景涉及的應用進(jìn)行梳理,將所有涉及的應用按照【問(wèn)題診斷】->【探針接入[1]]文檔中的步驟接入問(wèn)題診斷探針。我們可以在PTS控制臺中選擇應用配置或應用監控、接口監控、機器監控中的一項來(lái)查看應用探針是否連接成功。我們這次演示的壓測場(chǎng)景涉及五個(gè)應用,分別是petstore-web、petstore-user、petstore-order、petstore-catalog、petstore-cart。這里以應用監控為例,檢查應用是否連接成功。點(diǎn)擊【問(wèn)題診斷】->【應用監控[2]]->依次選擇我們在PTS控制臺配置的Region和Namespace。
壓測場(chǎng)景開(kāi)啟問(wèn)題診斷開(kāi)關(guān)
然后,我們在PTS控制臺的【壓測中心】->【創(chuàng )建場(chǎng)景【3】】創(chuàng )建一個(gè)壓測場(chǎng)景。這里可以選擇PTS場(chǎng)景或者JMeter場(chǎng)景。這里我們以PTS場(chǎng)景為例,因為本次演示主要是驗證問(wèn)題診斷的能力,所以需要在場(chǎng)景配置中的【高級設置】中打開(kāi)問(wèn)題診斷開(kāi)關(guān)。對于具體的監控采集規則,PTS會(huì )將默認采集開(kāi)關(guān)的配置推送給用戶(hù)。同時(shí)采樣率設置為1/1000,用戶(hù)也可以根據自己的需要進(jìn)行自定義。
開(kāi)始壓測,查看應用監控
完成以上步驟后,我們的壓測場(chǎng)景就具備了診斷問(wèn)題的能力。我們點(diǎn)擊開(kāi)始壓測后,可以在應用監控、接口監控、機器監控中選擇我們關(guān)心的服務(wù),查看相應的監控情況。這里我們以應用監控[2]為例。其他類(lèi)型監控的操作步驟類(lèi)似。我們選擇 petstore-user 這個(gè)服務(wù)來(lái)查看應用監控,如下圖:
壓測結束后,查看整個(gè)場(chǎng)景的錯誤信息
壓測結束后,我們需要從壓測報告中排查受壓服務(wù)器的問(wèn)題,打開(kāi)對應場(chǎng)景的壓測報告。具體步驟為:PTS控制臺->【壓測中心】->【報告列表[4]】,選擇對應的壓測報告,在概覽頁(yè)面可以看到整個(gè)場(chǎng)景的信息,如圖下圖:
選擇探針采樣查看具體的調用鏈
點(diǎn)擊【查看采樣日志】,采樣類(lèi)型選擇“探針采樣”,過(guò)濾出問(wèn)題診斷探針采集到的調用鏈,如下圖:

查看調用鏈的具體錯誤堆棧信息定位服務(wù)端問(wèn)題
過(guò)濾掉探針端采集
到的調用鏈后,就可以分析出問(wèn)題接口的調用鏈了。例如商品列表接口返回的狀態(tài)碼為500,點(diǎn)擊查看詳情可以查看具體原因,如下圖:
從調用??梢钥闯鼍唧w的錯誤原因,從而優(yōu)化和修復服務(wù)端代碼。同時(shí),您可以通過(guò)應用拓撲視圖和數據庫視圖查看服務(wù)之間的調用和數據庫使用情況。這里以應用拓撲視圖為例,如下圖所示:
壓測報告常見(jiàn)錯誤碼匯總 問(wèn)題診斷錯誤碼匯總
問(wèn)題診斷調用環(huán)節中常見(jiàn)的錯誤碼總結如下:
壓測報告錯誤碼匯總
以下是壓力測試報告中的常見(jiàn)錯誤列表。我們可以從整個(gè)場(chǎng)景的錯誤信息中看到相關(guān)的錯誤信息,如下:
相關(guān)鏈接
[1] 探測訪(fǎng)問(wèn)
[2] 應用監控
[3] 創(chuàng )建場(chǎng)景
[4] 報告清單
????
事實(shí):老老實(shí)實(shí)看論文api接口,簡(jiǎn)單好用安全穩定
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2022-12-22 15:54
文章采集調用的是字符串分詞實(shí)現,和爬蟲(chóng)spider基本一致。
建議老老實(shí)實(shí)看論文的代碼,
百度統計api接口。接口文檔比較全面了,
就百度統計比較有保障,
自薦一下看山論文api接口,簡(jiǎn)單好用安全穩定,定制化產(chǎn)品化開(kāi)發(fā)接口可與數據源捆綁分析維度匹配,全網(wǎng)數據對接提供搜索一級,二級,推薦一級和推薦二級數據服務(wù),歡迎免費注冊開(kāi)發(fā)接口,
靠譜的沒(méi)有,有靠譜的產(chǎn)品嗎?還是靠你自己去找呢?我的話(huà)找的bdp個(gè)人版,有成套的數據挖掘分析和api開(kāi)發(fā)服務(wù),還有自助式數據服務(wù),
世紀互聯(lián)-專(zhuān)業(yè)的互聯(lián)網(wǎng)數據產(chǎn)品服務(wù)商
其實(shí)啊,方法還是很多的,比如淘寶的搜索數據也好excel加一些可視化的東西都可以看圖說(shuō)話(huà)。
你用的百度統計,肯定是可以淘寶統計的網(wǎng)站爬蟲(chóng),你要給出真實(shí)的流量,也可以用google的ga,excel文件的數據肯定是不行的。
pandas有個(gè)scatter.py文件
python爬蟲(chóng)抓取加上文本分析也是一大任務(wù),先上面有幾個(gè)詳細的代碼我也不知道他是怎么調用的 查看全部
事實(shí):老老實(shí)實(shí)看論文api接口,簡(jiǎn)單好用安全穩定
文章采集調用的是字符串分詞實(shí)現,和爬蟲(chóng)spider基本一致。
建議老老實(shí)實(shí)看論文的代碼,
百度統計api接口。接口文檔比較全面了,

就百度統計比較有保障,
自薦一下看山論文api接口,簡(jiǎn)單好用安全穩定,定制化產(chǎn)品化開(kāi)發(fā)接口可與數據源捆綁分析維度匹配,全網(wǎng)數據對接提供搜索一級,二級,推薦一級和推薦二級數據服務(wù),歡迎免費注冊開(kāi)發(fā)接口,
靠譜的沒(méi)有,有靠譜的產(chǎn)品嗎?還是靠你自己去找呢?我的話(huà)找的bdp個(gè)人版,有成套的數據挖掘分析和api開(kāi)發(fā)服務(wù),還有自助式數據服務(wù),
世紀互聯(lián)-專(zhuān)業(yè)的互聯(lián)網(wǎng)數據產(chǎn)品服務(wù)商

其實(shí)啊,方法還是很多的,比如淘寶的搜索數據也好excel加一些可視化的東西都可以看圖說(shuō)話(huà)。
你用的百度統計,肯定是可以淘寶統計的網(wǎng)站爬蟲(chóng),你要給出真實(shí)的流量,也可以用google的ga,excel文件的數據肯定是不行的。
pandas有個(gè)scatter.py文件
python爬蟲(chóng)抓取加上文本分析也是一大任務(wù),先上面有幾個(gè)詳細的代碼我也不知道他是怎么調用的
核心方法:帝國php調用文章列表,帝國cms列表頁(yè)調用文章關(guān)鍵詞與tag的方法
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 148 次瀏覽 ? 2022-12-22 13:10
1、打開(kāi)e/class/connect.php文件,找到如下代碼
搜索部分鏈接
添加
$listtemp=str_replace('[!--keyboard--]',$r[keyboard],$listtemp);
在列表頁(yè)面模板的列表內容模板(list.var)(*)中調用
帝王CMS列表頁(yè)調用本文關(guān)鍵詞TAGS的方法
一般我們在填寫(xiě)關(guān)鍵詞的時(shí)候,會(huì )同時(shí)把關(guān)鍵詞復制到標簽中,這樣才能對文章進(jìn)行分類(lèi),達到更好的SEO優(yōu)化效果。 有的朋友還想把關(guān)鍵詞或者標簽的鏈接放在欄目和列表頁(yè)上,以獲得更好的曝光率。 下面, cms大學(xué)小編就給大家分享一下調用方法。 希望新手朋友可以使用。
$nsmalltext=$r[smalltext];
$ntext=strip_tags($nsmalltext);//去除內容介紹中的HTML標簽
$newtext=esub($ntext,100,'...') ;//限制100個(gè)字
$keyboard=$r[鍵盤(pán)];
$r_tag=explode(",",$keyboard);
$tempid=1;//這里是搜索模板ID
對于($i=0;$i
{
如果($r_tag[$i])
{
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r_tag[$i];//鏈接
$tags.="".$r_tag[$i]." ";
}
}
$listtemp='
[! - 標題 - ]
'.$newtext.'...
標簽:'.$標簽。' 2010-12-16
';
將上述代碼復制到列表頁(yè)模板,即list.var中,并勾選使用程序代碼。
使用后效果如下:
具體可以根據自己的需要選擇。
最佳實(shí)踐:php cms引用css樣式
帝國CMS技術(shù)互助群:540946827 一群大神帶你裝強帶你飛! 還有美女陪你玩!
我們在使用PHPCMS V9默認的采集功能進(jìn)行文章采集時(shí),并不能完全過(guò)濾掉采集目標頁(yè)面內容的CSS樣式。 如果不過(guò)濾掉CSS樣式,文章發(fā)布后可能布局會(huì )亂。
下面CMS資源網(wǎng)教大家通過(guò)添加一個(gè)函數來(lái)過(guò)濾掉采集目標頁(yè)面的CSS樣式。 詳細方法如下:
Step 1. 找到并打開(kāi)/php cms /libs/functions/global.func.php文件,然后在其后面添加如下代碼:
函數 htmrp($str) { $str = preg_replace("/
第二步:修改當前模板中的文章內容頁(yè)模板show.html
界面—模板樣式—詳情列表—內容—show.html
在里面找到 {if $allow_visitor==1} {$content}
將其更改為 {htmrp($content)}
修改完成后保存!
如果您對本文有任何疑問(wèn),請提交至交流社區,熱心網(wǎng)友將為您解答! !點(diǎn)擊進(jìn)入社區
打賞,我們將為您提供更多優(yōu)質(zhì)資源!
您的所有打賞都將用于采集更多優(yōu)質(zhì)資源!
掃描二維碼打賞,說(shuō)多少就多少
打開(kāi)微信掃一掃,即可掃碼打賞 查看全部
核心方法:帝國php調用文章列表,帝國cms列表頁(yè)調用文章關(guān)鍵詞與tag的方法
1、打開(kāi)e/class/connect.php文件,找到如下代碼
搜索部分鏈接
添加
$listtemp=str_replace('[!--keyboard--]',$r[keyboard],$listtemp);
在列表頁(yè)面模板的列表內容模板(list.var)(*)中調用
帝王CMS列表頁(yè)調用本文關(guān)鍵詞TAGS的方法
一般我們在填寫(xiě)關(guān)鍵詞的時(shí)候,會(huì )同時(shí)把關(guān)鍵詞復制到標簽中,這樣才能對文章進(jìn)行分類(lèi),達到更好的SEO優(yōu)化效果。 有的朋友還想把關(guān)鍵詞或者標簽的鏈接放在欄目和列表頁(yè)上,以獲得更好的曝光率。 下面, cms大學(xué)小編就給大家分享一下調用方法。 希望新手朋友可以使用。
$nsmalltext=$r[smalltext];
$ntext=strip_tags($nsmalltext);//去除內容介紹中的HTML標簽

$newtext=esub($ntext,100,'...') ;//限制100個(gè)字
$keyboard=$r[鍵盤(pán)];
$r_tag=explode(",",$keyboard);
$tempid=1;//這里是搜索模板ID
對于($i=0;$i
{
如果($r_tag[$i])
{
$tagslink=$public_r[newsurl]."e/search/?searchget=1&tbname=$tbname&tempid=$tempid&show=keyboard&keyboard=".$r_tag[$i];//鏈接
$tags.="".$r_tag[$i]." ";
}

}
$listtemp='
[! - 標題 - ]
'.$newtext.'...
標簽:'.$標簽。' 2010-12-16
';
將上述代碼復制到列表頁(yè)模板,即list.var中,并勾選使用程序代碼。
使用后效果如下:
具體可以根據自己的需要選擇。
最佳實(shí)踐:php cms引用css樣式
帝國CMS技術(shù)互助群:540946827 一群大神帶你裝強帶你飛! 還有美女陪你玩!
我們在使用PHPCMS V9默認的采集功能進(jìn)行文章采集時(shí),并不能完全過(guò)濾掉采集目標頁(yè)面內容的CSS樣式。 如果不過(guò)濾掉CSS樣式,文章發(fā)布后可能布局會(huì )亂。
下面CMS資源網(wǎng)教大家通過(guò)添加一個(gè)函數來(lái)過(guò)濾掉采集目標頁(yè)面的CSS樣式。 詳細方法如下:
Step 1. 找到并打開(kāi)/php cms /libs/functions/global.func.php文件,然后在其后面添加如下代碼:
函數 htmrp($str) { $str = preg_replace("/

第二步:修改當前模板中的文章內容頁(yè)模板show.html
界面—模板樣式—詳情列表—內容—show.html
在里面找到 {if $allow_visitor==1} {$content}
將其更改為 {htmrp($content)}
修改完成后保存!
如果您對本文有任何疑問(wèn),請提交至交流社區,熱心網(wǎng)友將為您解答! !點(diǎn)擊進(jìn)入社區
打賞,我們將為您提供更多優(yōu)質(zhì)資源!

您的所有打賞都將用于采集更多優(yōu)質(zhì)資源!
掃描二維碼打賞,說(shuō)多少就多少
打開(kāi)微信掃一掃,即可掃碼打賞
教程:Dedecms搜索頁(yè)面調用全站文章的方法
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 87 次瀏覽 ? 2022-12-22 12:59
《德德cms搜索頁(yè)調用全站文章》一文章已被存檔,站長(cháng)之家將不再顯示相關(guān)內容。 以下為站長(cháng)之家自動(dòng)寫(xiě)作機器人提取的文章重點(diǎn)內容。 這個(gè)人工智能還很年輕,請聯(lián)系我們幫助它成長(cháng):
在dede cms搜索頁(yè)面添加最新的文章調用代碼,發(fā)現無(wú)法實(shí)現文章列表調用。 原因是織夢(mèng)CMS的arclist標簽適用于封面模板index.htm、列表模板list_arcitle.htm和文檔模板article_article.htm,所以在搜索頁(yè)面使用最新的文章標簽是無(wú)法調用的,不僅最新文章,還有使用 Arclist 標簽的隨機文章和熱門(mén)文章...
2. 首先選擇一種列表樣式。 “呼喚欄目”不局限于全站文章的欄目,可以在下拉菜單中選擇單獨的分類(lèi); “限定通道”和“附加屬性”同上; 【排序順序】選擇發(fā)布時(shí)間即調用最新文章; 【都是中文的,沒(méi)有詳細介紹】....
……
本文由站長(cháng)之家用戶(hù)“博客欄”投稿。 本平臺僅提供信息索引服務(wù)。 由于內容發(fā)布時(shí)間超過(guò)平臺更新維護時(shí)間,為保證文章信息的及時(shí)性和內容瀏覽的準確性,平臺將不提供完整的內容展示,本頁(yè)面內容僅用于平臺搜索索引。 需要閱讀完整內容的用戶(hù),請聯(lián)系作者獲取原文。
即將跳轉到外部網(wǎng)站
未知安全,是否繼續
繼續
內容分享:哪個(gè)文章采集軟件比較好
優(yōu)采云 采集器是一款快速采集網(wǎng)頁(yè)信息的工具,常用于采集網(wǎng)站文章、網(wǎng)站信息數據等。有優(yōu)采云有免費版和收費版。
在SEO優(yōu)化過(guò)程中,收錄往往會(huì )影響網(wǎng)站的權重和關(guān)鍵詞的排名。 一般來(lái)說(shuō),網(wǎng)站的收錄率也是衡量網(wǎng)站質(zhì)量的一個(gè)關(guān)鍵因素。 那么怎樣才能保證網(wǎng)站有高收錄呢? 這里博客君根據一些注意事項給大家簡(jiǎn)單介紹一下,如下:
1.服務(wù)器選擇
網(wǎng)站服務(wù)器影響SEO優(yōu)化效果的問(wèn)題已經(jīng)說(shuō)了很多遍了,但即便如此,很多人還是沒(méi)有引起足夠的重視。 穩定的服務(wù)器不僅可以提升用戶(hù)體驗,還可以幫助搜索引擎收錄,所以我們在選擇服務(wù)器的時(shí)候,從實(shí)用的角度出發(fā),根據實(shí)際需要來(lái)選擇空間的大??; 從安全的角度來(lái)說(shuō),我們要選擇正規的服務(wù)器,穩定性和速度有保障,同時(shí)可以防止網(wǎng)站被黑。
2、靈活優(yōu)化
當搜索引擎發(fā)現我們的網(wǎng)頁(yè)質(zhì)量低下時(shí),采取的措施往往是提高收錄要求,減少對我們網(wǎng)站的收錄。 如果這種情況長(cháng)期持續下去,這可以說(shuō)是搜索引擎對我們的警示,我們一定要及時(shí)進(jìn)行數據分析,無(wú)論是加強關(guān)鍵詞密度還是使用文章采集器采集高優(yōu)質(zhì)文章排序等,根據實(shí)際情況優(yōu)化或調整我們現有的方法。
有沒(méi)有好的免費文章采集工具,我不需要發(fā)布,我采集文章然后修改...
3、不要輕易更改版本
網(wǎng)站運營(yíng)一段時(shí)間后中途改版,多數情況下會(huì )導致網(wǎng)站收錄量大大減少,也可能出現死鏈接,為保證網(wǎng)站收錄多數情況下不建議進(jìn)行改版。 有時(shí)網(wǎng)站修改是最后的手段。 既然下定決心要進(jìn)行改版,就要做好最好的準備,做最壞的打算。 做好404頁(yè)面,把我們的損失降到最低。
4.優(yōu)質(zhì)內容
想要更高的網(wǎng)站收錄,高質(zhì)量的內容(原創(chuàng )/偽原創(chuàng ))必不可少。 擁有一個(gè)內容優(yōu)質(zhì)的網(wǎng)站是我們網(wǎng)站收錄的根本。 如果我們的網(wǎng)站有很多優(yōu)質(zhì)的內容,那么百度蜘蛛也會(huì )樂(lè )在其中。 它關(guān)心我們的網(wǎng)站每天都會(huì )抓取新鮮文章,我們的網(wǎng)站收錄也會(huì )相應增加。 所以,收錄的提升在于網(wǎng)站內容的不斷更新,那么如何才能保持這么高的頻率呢? 更新它。
使用文章采集器無(wú)需專(zhuān)業(yè)技能,簡(jiǎn)單幾步即可輕松完成采集、偽原創(chuàng )、翻譯、發(fā)布、主動(dòng)推送。
用戶(hù)只需在文章采集器中點(diǎn)擊規則即可完成設置。 完成后,系統根據用戶(hù)設置的關(guān)鍵詞、采集時(shí)間、是否偽原創(chuàng )、是否翻譯、發(fā)布時(shí)間等匹配內容和圖片,自動(dòng)進(jìn)行文章聚合。
文章采集器SEO功能全面,支持市面上大部分CMS,支持在標題和內容中插入關(guān)鍵詞,替換圖片本地化,支持實(shí)時(shí)監控網(wǎng)站進(jìn)度,查看網(wǎng)站收錄狀態(tài),網(wǎng)站權重狀態(tài)。
5.優(yōu)質(zhì)友情鏈接
友情鏈接的建立也很重要。 如果我們的友情鏈接權重比較高,本身的相關(guān)性也比較高,那么對于我們的網(wǎng)站被收錄也是很有幫助的,但是為了讓排名更好,我們必須要對友情鏈接進(jìn)行“監控”才能防止不良情況影響網(wǎng)站。
以上幾點(diǎn)是博主認為在增加收錄時(shí)不能忽視的。 無(wú)論是原創(chuàng )還是利用文章采集器采集相關(guān)文章進(jìn)行參考,都是為了提高網(wǎng)站的質(zhì)量,讓我們的網(wǎng)站排名更好,這對于我們網(wǎng)站來(lái)說(shuō),后期的收獲會(huì )更多。
文章編輯除了采集文章,還有偽原創(chuàng )文章,而且都是批量的。 優(yōu)采云的智能文章采集系統的這些功能不會(huì )顯得繁瑣。 可以提高網(wǎng)絡(luò )編輯的工作效率。
目前采集器的流程是采集、優(yōu)化、發(fā)布。 查看全部
教程:Dedecms搜索頁(yè)面調用全站文章的方法
《德德cms搜索頁(yè)調用全站文章》一文章已被存檔,站長(cháng)之家將不再顯示相關(guān)內容。 以下為站長(cháng)之家自動(dòng)寫(xiě)作機器人提取的文章重點(diǎn)內容。 這個(gè)人工智能還很年輕,請聯(lián)系我們幫助它成長(cháng):
在dede cms搜索頁(yè)面添加最新的文章調用代碼,發(fā)現無(wú)法實(shí)現文章列表調用。 原因是織夢(mèng)CMS的arclist標簽適用于封面模板index.htm、列表模板list_arcitle.htm和文檔模板article_article.htm,所以在搜索頁(yè)面使用最新的文章標簽是無(wú)法調用的,不僅最新文章,還有使用 Arclist 標簽的隨機文章和熱門(mén)文章...

2. 首先選擇一種列表樣式。 “呼喚欄目”不局限于全站文章的欄目,可以在下拉菜單中選擇單獨的分類(lèi); “限定通道”和“附加屬性”同上; 【排序順序】選擇發(fā)布時(shí)間即調用最新文章; 【都是中文的,沒(méi)有詳細介紹】....
……
本文由站長(cháng)之家用戶(hù)“博客欄”投稿。 本平臺僅提供信息索引服務(wù)。 由于內容發(fā)布時(shí)間超過(guò)平臺更新維護時(shí)間,為保證文章信息的及時(shí)性和內容瀏覽的準確性,平臺將不提供完整的內容展示,本頁(yè)面內容僅用于平臺搜索索引。 需要閱讀完整內容的用戶(hù),請聯(lián)系作者獲取原文。

即將跳轉到外部網(wǎng)站
未知安全,是否繼續
繼續
內容分享:哪個(gè)文章采集軟件比較好
優(yōu)采云 采集器是一款快速采集網(wǎng)頁(yè)信息的工具,常用于采集網(wǎng)站文章、網(wǎng)站信息數據等。有優(yōu)采云有免費版和收費版。
在SEO優(yōu)化過(guò)程中,收錄往往會(huì )影響網(wǎng)站的權重和關(guān)鍵詞的排名。 一般來(lái)說(shuō),網(wǎng)站的收錄率也是衡量網(wǎng)站質(zhì)量的一個(gè)關(guān)鍵因素。 那么怎樣才能保證網(wǎng)站有高收錄呢? 這里博客君根據一些注意事項給大家簡(jiǎn)單介紹一下,如下:
1.服務(wù)器選擇
網(wǎng)站服務(wù)器影響SEO優(yōu)化效果的問(wèn)題已經(jīng)說(shuō)了很多遍了,但即便如此,很多人還是沒(méi)有引起足夠的重視。 穩定的服務(wù)器不僅可以提升用戶(hù)體驗,還可以幫助搜索引擎收錄,所以我們在選擇服務(wù)器的時(shí)候,從實(shí)用的角度出發(fā),根據實(shí)際需要來(lái)選擇空間的大??; 從安全的角度來(lái)說(shuō),我們要選擇正規的服務(wù)器,穩定性和速度有保障,同時(shí)可以防止網(wǎng)站被黑。
2、靈活優(yōu)化
當搜索引擎發(fā)現我們的網(wǎng)頁(yè)質(zhì)量低下時(shí),采取的措施往往是提高收錄要求,減少對我們網(wǎng)站的收錄。 如果這種情況長(cháng)期持續下去,這可以說(shuō)是搜索引擎對我們的警示,我們一定要及時(shí)進(jìn)行數據分析,無(wú)論是加強關(guān)鍵詞密度還是使用文章采集器采集高優(yōu)質(zhì)文章排序等,根據實(shí)際情況優(yōu)化或調整我們現有的方法。
有沒(méi)有好的免費文章采集工具,我不需要發(fā)布,我采集文章然后修改...

3、不要輕易更改版本
網(wǎng)站運營(yíng)一段時(shí)間后中途改版,多數情況下會(huì )導致網(wǎng)站收錄量大大減少,也可能出現死鏈接,為保證網(wǎng)站收錄多數情況下不建議進(jìn)行改版。 有時(shí)網(wǎng)站修改是最后的手段。 既然下定決心要進(jìn)行改版,就要做好最好的準備,做最壞的打算。 做好404頁(yè)面,把我們的損失降到最低。
4.優(yōu)質(zhì)內容
想要更高的網(wǎng)站收錄,高質(zhì)量的內容(原創(chuàng )/偽原創(chuàng ))必不可少。 擁有一個(gè)內容優(yōu)質(zhì)的網(wǎng)站是我們網(wǎng)站收錄的根本。 如果我們的網(wǎng)站有很多優(yōu)質(zhì)的內容,那么百度蜘蛛也會(huì )樂(lè )在其中。 它關(guān)心我們的網(wǎng)站每天都會(huì )抓取新鮮文章,我們的網(wǎng)站收錄也會(huì )相應增加。 所以,收錄的提升在于網(wǎng)站內容的不斷更新,那么如何才能保持這么高的頻率呢? 更新它。
使用文章采集器無(wú)需專(zhuān)業(yè)技能,簡(jiǎn)單幾步即可輕松完成采集、偽原創(chuàng )、翻譯、發(fā)布、主動(dòng)推送。
用戶(hù)只需在文章采集器中點(diǎn)擊規則即可完成設置。 完成后,系統根據用戶(hù)設置的關(guān)鍵詞、采集時(shí)間、是否偽原創(chuàng )、是否翻譯、發(fā)布時(shí)間等匹配內容和圖片,自動(dòng)進(jìn)行文章聚合。

文章采集器SEO功能全面,支持市面上大部分CMS,支持在標題和內容中插入關(guān)鍵詞,替換圖片本地化,支持實(shí)時(shí)監控網(wǎng)站進(jìn)度,查看網(wǎng)站收錄狀態(tài),網(wǎng)站權重狀態(tài)。
5.優(yōu)質(zhì)友情鏈接
友情鏈接的建立也很重要。 如果我們的友情鏈接權重比較高,本身的相關(guān)性也比較高,那么對于我們的網(wǎng)站被收錄也是很有幫助的,但是為了讓排名更好,我們必須要對友情鏈接進(jìn)行“監控”才能防止不良情況影響網(wǎng)站。
以上幾點(diǎn)是博主認為在增加收錄時(shí)不能忽視的。 無(wú)論是原創(chuàng )還是利用文章采集器采集相關(guān)文章進(jìn)行參考,都是為了提高網(wǎng)站的質(zhì)量,讓我們的網(wǎng)站排名更好,這對于我們網(wǎng)站來(lái)說(shuō),后期的收獲會(huì )更多。
文章編輯除了采集文章,還有偽原創(chuàng )文章,而且都是批量的。 優(yōu)采云的智能文章采集系統的這些功能不會(huì )顯得繁瑣。 可以提高網(wǎng)絡(luò )編輯的工作效率。
目前采集器的流程是采集、優(yōu)化、發(fā)布。
解決方案:Labwindows\CVI通過(guò)調用DLL文件與非NI采集卡通信
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 112 次瀏覽 ? 2022-12-22 07:52
菜鳥(niǎo)學(xué)習筆記:Java基礎1(走進(jìn)Java,數據類(lèi)型與轉換)
菜鳥(niǎo)學(xué)習筆記:Java基礎1(基礎語(yǔ)法、面向對象) 寫(xiě)在前面 關(guān)于學(xué)習資源 關(guān)于學(xué)習方法 1.Java的發(fā)展歷史 功能快捷鍵 標題的合理創(chuàng )建有助于目錄的生成 如何改變樣式文本插入 鏈接和圖片 如何插入一段漂亮的代碼 生成適合你的列表 創(chuàng )建表格 設置內容居中、左、右 SmartyPants 創(chuàng )建自定義列表 如何創(chuàng )建腳注 注釋也是必不可少的 KaTeX 數學(xué)公式New Gan 特別圖功能,豐富你的文章UML圖表 FLowchart 流程圖 導出導入 導出導入 第一次發(fā)博我寫(xiě)在前面了,還是有點(diǎn)緊張,哈哈,先自我介紹一下,我只是畢業(yè)于小白
Spring Cloud開(kāi)放Feign系列【4】集成OkHttp與連接池配置詳解
文章目錄 Feign 如何發(fā)送請求 Client 接口 默認類(lèi) Proxied 類(lèi) Feign 支持其他 HTTP 客戶(hù)端框架 支持項 HTTP 連接池 Feign 集成 Ok Http1. 添加 okhttp 依賴(lài)2。 添加配置3。 連接池配置 4. 簡(jiǎn)單測試Feign如何發(fā)送Request 在前面的文檔中可以了解到Feign集成了其他HTTP客戶(hù)端框架來(lái)發(fā)送請求。 實(shí)際的發(fā)送請求是由Feign中的Client接口實(shí)現類(lèi)處理的。 默認是 Defalut 類(lèi),它使用 HttpURLConnection。
2.java版商城商戶(hù)平臺搭建 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商戶(hù)入駐商城直播帶貨商城電商_企業(yè)軟件定制博客-程序員寶貝
一個(gè)好的SpringCloud+SpringBoot b2b2c電商平臺涉及到哪些技術(shù)和運營(yíng)方案? 以下是我根據公司產(chǎn)品的總結,希望對大家有所幫助! 1、涉及平臺平臺管理、商戶(hù)端(PC端、移動(dòng)端)、買(mǎi)家平臺(H5/公眾號、小程序、APP端(IOS/Android))、微服務(wù)平臺(業(yè)務(wù)服務(wù)) 2、核心架構Spring Cloud、Spring Boot ,Mybatis,Redis3.前端框架VUE,Uniapp,Bootstrap/H5/CSS3,IOS,Android,小程序
VUE中一個(gè)頁(yè)面調用另一個(gè)頁(yè)面的方法并修改data數據(還記得你曾經(jīng)入過(guò)的坑嗎)_denglei12315的博客-程序員寶寶
頁(yè)面 <template> <div> <el-form ref="form" :model="params" label-width="80px"> <el-row> <el-...
5-38 序列求和-增強版(20分)
給定一個(gè)數AA(1\le A\le 91≤A≤9)和一個(gè)非負整數NN(0\le N\le 1000000≤N≤100000),求序列S = A + AA的和+ AAA + \ cdots + AA\cdots AS=A+AA+AAA+?+AA?A (NN AAs)。 例如當A=1A=1,N=3N=3,S=1+11+111=123S=1+11+111=123.輸入框
【長(cháng)nèng-Logstash】入門(mén)(二)——使用Logstash解析Apache Web日志(使用Filebeat采集數據)
文章目錄 1.簡(jiǎn)介 2.實(shí)現 2.1 下載安裝 2.2 配置輸入filebeat2.3 配置logstash2.3 使用Grok過(guò)濾插件解析web日志編輯 2.4 使用Geoip過(guò)濾插件增強數據編輯 2.5 輸出到es源碼地址 項目推薦 本系列博客是Logstash的學(xué)習應用,部分示例來(lái)自官方文檔。 參考:官方文檔 使用Logstash解析日志 1.介紹示例來(lái)自官網(wǎng)。 在本節中,您將創(chuàng )建一個(gè)...
云優(yōu)采集接口 解決方案:實(shí)踐GoF的設計模式:代理模式
簡(jiǎn)介:代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
本文分享自華為云社區《【Go實(shí)現】練GoF的23種設計模式:代理模式》,作者:袁君子。
介紹
GoF 定義 Proxy Pattern 如下:
為另一個(gè)對象提供代理或占位符以控制對它的訪(fǎng)問(wèn)。
也就是說(shuō),代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
是一種使用率非常高的設計模式,在現實(shí)生活中也很常見(jiàn)。 例如,演唱會(huì )票黃牛。 假設你需要看一場(chǎng)演唱會(huì ),但是官網(wǎng)上的票已經(jīng)賣(mài)完了,你當天就去現場(chǎng),通過(guò)黃牛高價(jià)買(mǎi)了一張。 在這個(gè)例子中,黃牛相當于演唱會(huì )門(mén)票的代理人。 當無(wú)法通過(guò)官方渠道購買(mǎi)到門(mén)票時(shí),您已經(jīng)通過(guò)代理完成了目標。
從演唱會(huì )門(mén)票的例子我們也可以看出,使用代理模式的關(guān)鍵是在客戶(hù)端不方便直接訪(fǎng)問(wèn)某個(gè)對象的時(shí)候,提供一個(gè)代理對象來(lái)控制對象的訪(fǎng)問(wèn)。 客戶(hù)端實(shí)際訪(fǎng)問(wèn)的是代理對象,代理對象會(huì )將客戶(hù)端的請求傳遞給本體對象進(jìn)行處理。
UML結構
場(chǎng)景語(yǔ)境
在一個(gè)簡(jiǎn)單的分布式應用系統(示例代碼項目)中,db模塊用于存儲服務(wù)注冊和監控信息,是一個(gè)key-value數據庫。 為了提高訪(fǎng)問(wèn)數據庫的性能,我們決定為其添加一層新的緩存:
另外,我們希望客戶(hù)端在使用數據庫時(shí)不會(huì )察覺(jué)到緩存的存在。 代理模式可以做到這一點(diǎn)。
代碼
// demo/db/cache.go
package db
// 關(guān)鍵點(diǎn)1: 定義代理對象,實(shí)現被代理對象的接口
type CacheProxy struct {
// 關(guān)鍵點(diǎn)2: 組合被代理對象,這里應該是抽象接口,提升可擴展性
db Db
cache sync.Map // key為tableName,value為sync.Map[key: primaryId, value: interface{}]
hit int
miss int
}
// 關(guān)鍵點(diǎn)3: 在具體接口實(shí)現上,嵌入代理本身的邏輯
func (c *CacheProxy) Query(tableName string, primaryKey interface{}, result interface{}) error {
cache, ok := c.cache.Load(tableName)
if ok {
if record, ok := cache.(*sync.Map).Load(primaryKey); ok {
c.hit++
result = record
return nil
}
}
c.miss++
if err := c.db.Query(tableName, primaryKey, result); err != nil {
return err
}
cache.(*sync.Map).Store(primaryKey, result)
return nil
}
func (c *CacheProxy) Insert(tableName string, primaryKey interface{}, record interface{}) error {
if err := c.db.Insert(tableName, primaryKey, record); err != nil {
return err
}
cache, ok := c.cache.Load(tableName)
if !ok {
return nil
}
cache.(*sync.Map).Store(primaryKey, record)
return nil
<p>
}
...
// 關(guān)鍵點(diǎn)4: 代理也可以有自己特有方法,提供一些輔助的功能
func (c *CacheProxy) Hit() int {
return c.hit
}
func (c *CacheProxy) Miss() int {
return c.miss
}
...</p>
客戶(hù)端像這樣使用它:
// 客戶(hù)端只看到抽象的Db接口
func client(db Db) {
table := NewTable("region").
WithType(reflect.TypeOf(new(testRegion))).
WithTableIteratorFactory(NewRandomTableIteratorFactory())
db.CreateTable(table)
table.Insert(1, &testRegion{Id: 1, Name: "region"})
result := new(testRegion)
db.Query("region", 1, result)
}
func main() {
// 關(guān)鍵點(diǎn)5: 在初始化階段,完成緩存的實(shí)例化,并依賴(lài)注入到客戶(hù)端
cache := NewCacheProxy(&memoryDb{tables: sync.Map{}})
client(cache)
}
本例中,Subject是Db接口,Proxy是CacheProxy對象,SubjectImpl是memoryDb對象:
總結一下實(shí)現代理模式的幾個(gè)關(guān)鍵點(diǎn):
定義代理對象,實(shí)現代理對象的接口。 在這個(gè)例子中,前者是CacheProxy對象,后者是Db接口。 代理對象組合代理對象。 這里應該結合抽象接口,使代理更具可擴展性。 在這個(gè)例子中,CacheProxy 對象結合了 Db 接口。 代理對象在具體接口的實(shí)現中嵌入了代理本身的邏輯。 本例中CacheProxy在Query、Insert等方法中加入了cache sync.Map的讀寫(xiě)邏輯。 代理對象也可以有自己獨特的方法來(lái)提供一些輔助功能。 本例中CacheProxy增加了Hit、Miss等方法來(lái)統計緩存的命中率。 最后,在初始化階段,代理被實(shí)例化并注入到客戶(hù)端中。 這就要求客戶(hù)端依賴(lài)抽象接口而不是具體實(shí)現,否則代理是不透明的。在Go標準庫中擴展反向代理
代理模式最典型的應用場(chǎng)景就是遠程代理,其中反向代理是最常用的一種。
以Web應用為例,反向代理位于Web服務(wù)器的前端,將客戶(hù)端(如Web瀏覽器)的請求轉發(fā)給后端Web服務(wù)器。 反向代理通常用于幫助提高安全性、性能和可靠性,例如負載平衡、SSL 安全連接。
Go標準庫的net包也提供了一個(gè)反向代理ReverseProxy,位于net/http/httputil/reverseproxy.go下,它實(shí)現了http.Handler接口。 http.Handler提供了處理Http請求的能力,相當于一個(gè)Http服務(wù)器。 那么,對應UML結構圖,http.Handler是Subject,ReverseProxy是Proxy:
ReverseProxy的部分核心代碼如下:
// net/http/httputil/reverseproxy.go
package httputil
type ReverseProxy struct {
// 修改前端請求,然后通過(guò)Transport將修改后的請求轉發(fā)給后端
Director func(*http.Request)
// 可理解為Subject,通過(guò)Transport來(lái)調用被代理對象的ServeHTTP方法處理請求
Transport http.RoundTripper
// 修改后端響應,并將修改后的響應返回給前端
ModifyResponse func(*http.Response) error
// 錯誤處理
ErrorHandler func(http.ResponseWriter, *http.Request, error)
...
}
func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
// 初始化transport
transport := p.Transport
<p>
if transport == nil {
transport = http.DefaultTransport
}
...
// 修改前端請求
p.Director(outreq)
...
// 將請求轉發(fā)給后端
res, err := transport.RoundTrip(outreq)
...
// 修改后端響應
if !p.modifyResponse(rw, res, outreq) {
return
}
...
// 給前端返回響應
err = p.copyResponse(rw, res.Body, p.flushInterval(res))
...
}</p>
ReverseProxy是代理模式的典型實(shí)現,遠程代理不能直接引用后端的對象引用,所以這里通過(guò)引入Transport來(lái)遠程訪(fǎng)問(wèn)后端服務(wù),Transport可以理解為一個(gè)Subject。
您可以像這樣使用 ReverseProxy:
func proxy(c *gin.Context) {
remote, err := url.Parse("https://yrunz.com")
if err != nil {
panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(remote)
proxy.Director = func(req *http.Request) {
req.Header = c.Request.Header
req.Host = remote.Host
req.URL.Scheme = remote.Scheme
req.URL.Host = remote.Host
req.URL.Path = c.Param("proxyPath")
}
proxy.ServeHTTP(c.Writer, c.Request)
}
func main() {
r := gin.Default()
r.Any("/*proxyPath", proxy)
r.Run(":8080")
}
典型應用場(chǎng)景優(yōu)缺點(diǎn)優(yōu)缺點(diǎn)與其他模式的關(guān)聯(lián)
從結構上看,裝飾模式和代理模式相似度很高,但兩者的側重點(diǎn)不同。 前者強調為本體對象增加新的功能,后者強調對本體對象的訪(fǎng)問(wèn)控制。
帶圖片的文章
文章的繪制方法可以在Keynote手繪風(fēng)格繪圖中找到。
參考
[1]【Go實(shí)現】實(shí)踐GoF的23種設計模式:SOLID原則,元君子
[2]【Go實(shí)現】實(shí)踐GoF的23種設計模式:裝飾模式,元君子
[3] 設計模式,第 4 章結構模式,GoF
[4]代理模式,
[5] 什么是反向代理? , 云耀斑
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云的新鮮技術(shù)~ 查看全部
解決方案:Labwindows\CVI通過(guò)調用DLL文件與非NI采集卡通信
菜鳥(niǎo)學(xué)習筆記:Java基礎1(走進(jìn)Java,數據類(lèi)型與轉換)
菜鳥(niǎo)學(xué)習筆記:Java基礎1(基礎語(yǔ)法、面向對象) 寫(xiě)在前面 關(guān)于學(xué)習資源 關(guān)于學(xué)習方法 1.Java的發(fā)展歷史 功能快捷鍵 標題的合理創(chuàng )建有助于目錄的生成 如何改變樣式文本插入 鏈接和圖片 如何插入一段漂亮的代碼 生成適合你的列表 創(chuàng )建表格 設置內容居中、左、右 SmartyPants 創(chuàng )建自定義列表 如何創(chuàng )建腳注 注釋也是必不可少的 KaTeX 數學(xué)公式New Gan 特別圖功能,豐富你的文章UML圖表 FLowchart 流程圖 導出導入 導出導入 第一次發(fā)博我寫(xiě)在前面了,還是有點(diǎn)緊張,哈哈,先自我介紹一下,我只是畢業(yè)于小白
Spring Cloud開(kāi)放Feign系列【4】集成OkHttp與連接池配置詳解
文章目錄 Feign 如何發(fā)送請求 Client 接口 默認類(lèi) Proxied 類(lèi) Feign 支持其他 HTTP 客戶(hù)端框架 支持項 HTTP 連接池 Feign 集成 Ok Http1. 添加 okhttp 依賴(lài)2。 添加配置3。 連接池配置 4. 簡(jiǎn)單測試Feign如何發(fā)送Request 在前面的文檔中可以了解到Feign集成了其他HTTP客戶(hù)端框架來(lái)發(fā)送請求。 實(shí)際的發(fā)送請求是由Feign中的Client接口實(shí)現類(lèi)處理的。 默認是 Defalut 類(lèi),它使用 HttpURLConnection。

2.java版商城商戶(hù)平臺搭建 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商戶(hù)入駐商城直播帶貨商城電商_企業(yè)軟件定制博客-程序員寶貝
一個(gè)好的SpringCloud+SpringBoot b2b2c電商平臺涉及到哪些技術(shù)和運營(yíng)方案? 以下是我根據公司產(chǎn)品的總結,希望對大家有所幫助! 1、涉及平臺平臺管理、商戶(hù)端(PC端、移動(dòng)端)、買(mǎi)家平臺(H5/公眾號、小程序、APP端(IOS/Android))、微服務(wù)平臺(業(yè)務(wù)服務(wù)) 2、核心架構Spring Cloud、Spring Boot ,Mybatis,Redis3.前端框架VUE,Uniapp,Bootstrap/H5/CSS3,IOS,Android,小程序
VUE中一個(gè)頁(yè)面調用另一個(gè)頁(yè)面的方法并修改data數據(還記得你曾經(jīng)入過(guò)的坑嗎)_denglei12315的博客-程序員寶寶
頁(yè)面 <template> <div> <el-form ref="form" :model="params" label-width="80px"> <el-row> <el-...

5-38 序列求和-增強版(20分)
給定一個(gè)數AA(1\le A\le 91≤A≤9)和一個(gè)非負整數NN(0\le N\le 1000000≤N≤100000),求序列S = A + AA的和+ AAA + \ cdots + AA\cdots AS=A+AA+AAA+?+AA?A (NN AAs)。 例如當A=1A=1,N=3N=3,S=1+11+111=123S=1+11+111=123.輸入框
【長(cháng)nèng-Logstash】入門(mén)(二)——使用Logstash解析Apache Web日志(使用Filebeat采集數據)
文章目錄 1.簡(jiǎn)介 2.實(shí)現 2.1 下載安裝 2.2 配置輸入filebeat2.3 配置logstash2.3 使用Grok過(guò)濾插件解析web日志編輯 2.4 使用Geoip過(guò)濾插件增強數據編輯 2.5 輸出到es源碼地址 項目推薦 本系列博客是Logstash的學(xué)習應用,部分示例來(lái)自官方文檔。 參考:官方文檔 使用Logstash解析日志 1.介紹示例來(lái)自官網(wǎng)。 在本節中,您將創(chuàng )建一個(gè)...
云優(yōu)采集接口 解決方案:實(shí)踐GoF的設計模式:代理模式
簡(jiǎn)介:代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
本文分享自華為云社區《【Go實(shí)現】練GoF的23種設計模式:代理模式》,作者:袁君子。
介紹
GoF 定義 Proxy Pattern 如下:
為另一個(gè)對象提供代理或占位符以控制對它的訪(fǎng)問(wèn)。
也就是說(shuō),代理模式為對象提供了一個(gè)代理來(lái)控制對該對象的訪(fǎng)問(wèn)。
是一種使用率非常高的設計模式,在現實(shí)生活中也很常見(jiàn)。 例如,演唱會(huì )票黃牛。 假設你需要看一場(chǎng)演唱會(huì ),但是官網(wǎng)上的票已經(jīng)賣(mài)完了,你當天就去現場(chǎng),通過(guò)黃牛高價(jià)買(mǎi)了一張。 在這個(gè)例子中,黃牛相當于演唱會(huì )門(mén)票的代理人。 當無(wú)法通過(guò)官方渠道購買(mǎi)到門(mén)票時(shí),您已經(jīng)通過(guò)代理完成了目標。
從演唱會(huì )門(mén)票的例子我們也可以看出,使用代理模式的關(guān)鍵是在客戶(hù)端不方便直接訪(fǎng)問(wèn)某個(gè)對象的時(shí)候,提供一個(gè)代理對象來(lái)控制對象的訪(fǎng)問(wèn)。 客戶(hù)端實(shí)際訪(fǎng)問(wèn)的是代理對象,代理對象會(huì )將客戶(hù)端的請求傳遞給本體對象進(jìn)行處理。
UML結構
場(chǎng)景語(yǔ)境
在一個(gè)簡(jiǎn)單的分布式應用系統(示例代碼項目)中,db模塊用于存儲服務(wù)注冊和監控信息,是一個(gè)key-value數據庫。 為了提高訪(fǎng)問(wèn)數據庫的性能,我們決定為其添加一層新的緩存:
另外,我們希望客戶(hù)端在使用數據庫時(shí)不會(huì )察覺(jué)到緩存的存在。 代理模式可以做到這一點(diǎn)。
代碼
// demo/db/cache.go
package db
// 關(guān)鍵點(diǎn)1: 定義代理對象,實(shí)現被代理對象的接口
type CacheProxy struct {
// 關(guān)鍵點(diǎn)2: 組合被代理對象,這里應該是抽象接口,提升可擴展性
db Db
cache sync.Map // key為tableName,value為sync.Map[key: primaryId, value: interface{}]
hit int
miss int
}
// 關(guān)鍵點(diǎn)3: 在具體接口實(shí)現上,嵌入代理本身的邏輯
func (c *CacheProxy) Query(tableName string, primaryKey interface{}, result interface{}) error {
cache, ok := c.cache.Load(tableName)
if ok {
if record, ok := cache.(*sync.Map).Load(primaryKey); ok {
c.hit++
result = record
return nil
}
}
c.miss++
if err := c.db.Query(tableName, primaryKey, result); err != nil {
return err
}
cache.(*sync.Map).Store(primaryKey, result)
return nil
}
func (c *CacheProxy) Insert(tableName string, primaryKey interface{}, record interface{}) error {
if err := c.db.Insert(tableName, primaryKey, record); err != nil {
return err
}
cache, ok := c.cache.Load(tableName)
if !ok {
return nil
}
cache.(*sync.Map).Store(primaryKey, record)
return nil
<p>

}
...
// 關(guān)鍵點(diǎn)4: 代理也可以有自己特有方法,提供一些輔助的功能
func (c *CacheProxy) Hit() int {
return c.hit
}
func (c *CacheProxy) Miss() int {
return c.miss
}
...</p>
客戶(hù)端像這樣使用它:
// 客戶(hù)端只看到抽象的Db接口
func client(db Db) {
table := NewTable("region").
WithType(reflect.TypeOf(new(testRegion))).
WithTableIteratorFactory(NewRandomTableIteratorFactory())
db.CreateTable(table)
table.Insert(1, &testRegion{Id: 1, Name: "region"})
result := new(testRegion)
db.Query("region", 1, result)
}
func main() {
// 關(guān)鍵點(diǎn)5: 在初始化階段,完成緩存的實(shí)例化,并依賴(lài)注入到客戶(hù)端
cache := NewCacheProxy(&memoryDb{tables: sync.Map{}})
client(cache)
}
本例中,Subject是Db接口,Proxy是CacheProxy對象,SubjectImpl是memoryDb對象:
總結一下實(shí)現代理模式的幾個(gè)關(guān)鍵點(diǎn):
定義代理對象,實(shí)現代理對象的接口。 在這個(gè)例子中,前者是CacheProxy對象,后者是Db接口。 代理對象組合代理對象。 這里應該結合抽象接口,使代理更具可擴展性。 在這個(gè)例子中,CacheProxy 對象結合了 Db 接口。 代理對象在具體接口的實(shí)現中嵌入了代理本身的邏輯。 本例中CacheProxy在Query、Insert等方法中加入了cache sync.Map的讀寫(xiě)邏輯。 代理對象也可以有自己獨特的方法來(lái)提供一些輔助功能。 本例中CacheProxy增加了Hit、Miss等方法來(lái)統計緩存的命中率。 最后,在初始化階段,代理被實(shí)例化并注入到客戶(hù)端中。 這就要求客戶(hù)端依賴(lài)抽象接口而不是具體實(shí)現,否則代理是不透明的。在Go標準庫中擴展反向代理
代理模式最典型的應用場(chǎng)景就是遠程代理,其中反向代理是最常用的一種。
以Web應用為例,反向代理位于Web服務(wù)器的前端,將客戶(hù)端(如Web瀏覽器)的請求轉發(fā)給后端Web服務(wù)器。 反向代理通常用于幫助提高安全性、性能和可靠性,例如負載平衡、SSL 安全連接。
Go標準庫的net包也提供了一個(gè)反向代理ReverseProxy,位于net/http/httputil/reverseproxy.go下,它實(shí)現了http.Handler接口。 http.Handler提供了處理Http請求的能力,相當于一個(gè)Http服務(wù)器。 那么,對應UML結構圖,http.Handler是Subject,ReverseProxy是Proxy:
ReverseProxy的部分核心代碼如下:
// net/http/httputil/reverseproxy.go
package httputil
type ReverseProxy struct {
// 修改前端請求,然后通過(guò)Transport將修改后的請求轉發(fā)給后端
Director func(*http.Request)
// 可理解為Subject,通過(guò)Transport來(lái)調用被代理對象的ServeHTTP方法處理請求
Transport http.RoundTripper
// 修改后端響應,并將修改后的響應返回給前端
ModifyResponse func(*http.Response) error
// 錯誤處理
ErrorHandler func(http.ResponseWriter, *http.Request, error)
...
}
func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
// 初始化transport
transport := p.Transport
<p>

if transport == nil {
transport = http.DefaultTransport
}
...
// 修改前端請求
p.Director(outreq)
...
// 將請求轉發(fā)給后端
res, err := transport.RoundTrip(outreq)
...
// 修改后端響應
if !p.modifyResponse(rw, res, outreq) {
return
}
...
// 給前端返回響應
err = p.copyResponse(rw, res.Body, p.flushInterval(res))
...
}</p>
ReverseProxy是代理模式的典型實(shí)現,遠程代理不能直接引用后端的對象引用,所以這里通過(guò)引入Transport來(lái)遠程訪(fǎng)問(wèn)后端服務(wù),Transport可以理解為一個(gè)Subject。
您可以像這樣使用 ReverseProxy:
func proxy(c *gin.Context) {
remote, err := url.Parse("https://yrunz.com")
if err != nil {
panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(remote)
proxy.Director = func(req *http.Request) {
req.Header = c.Request.Header
req.Host = remote.Host
req.URL.Scheme = remote.Scheme
req.URL.Host = remote.Host
req.URL.Path = c.Param("proxyPath")
}
proxy.ServeHTTP(c.Writer, c.Request)
}
func main() {
r := gin.Default()
r.Any("/*proxyPath", proxy)
r.Run(":8080")
}
典型應用場(chǎng)景優(yōu)缺點(diǎn)優(yōu)缺點(diǎn)與其他模式的關(guān)聯(lián)
從結構上看,裝飾模式和代理模式相似度很高,但兩者的側重點(diǎn)不同。 前者強調為本體對象增加新的功能,后者強調對本體對象的訪(fǎng)問(wèn)控制。
帶圖片的文章
文章的繪制方法可以在Keynote手繪風(fēng)格繪圖中找到。
參考
[1]【Go實(shí)現】實(shí)踐GoF的23種設計模式:SOLID原則,元君子
[2]【Go實(shí)現】實(shí)踐GoF的23種設計模式:裝飾模式,元君子
[3] 設計模式,第 4 章結構模式,GoF
[4]代理模式,
[5] 什么是反向代理? , 云耀斑
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云的新鮮技術(shù)~
匯總:大數據采集[被帶去派出所采集信息]
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 143 次瀏覽 ? 2022-12-15 11:21
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,
大家好,我是建筑先生,一個(gè)會(huì )寫(xiě)代碼會(huì )吟詩(shī)的架構師。今天講講大數據采集【被帶到派出所采集信息】,希望能幫助大家進(jìn)步?。?!
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,真的很累。雖然那時(shí)候C#還是很牛的,但是我也想過(guò)能不能通過(guò)程序批量獲?。ㄋ赃€是多點(diǎn)想法比較好)。幾經(jīng)周折,終于發(fā)現了HtmlAgilityPack這個(gè)神器。這幾年我也用HtmlAgilityPack采集來(lái)處理很多類(lèi)型的數據,尤其是足球比賽數據庫采集和天氣數據采集的數據。HTML敏捷包,
今天的主要內容是HtmlAgilityPack的基本介紹、使用和實(shí)戰代碼。最后,我們以采集天氣數據為例,介紹一下實(shí)際的采集分析過(guò)程和簡(jiǎn)單的代碼。我們將在下一篇文章中開(kāi)源天氣數據庫和C#運行代碼。采集核心就介紹到這里了。其實(shí)核心代碼都在,你自己處理就可以了。同時(shí),也免費向有需要的人開(kāi)放。詳情請關(guān)注下期文章。
.NET開(kāi)源目錄:本博客其他.NET開(kāi)源項目的【目錄】文章目錄
本文原文地址:C#+HtmlAgilityPack+XPath為您帶來(lái)采集數據(以采集天氣數據為例)
一、HtmlAgilityPack簡(jiǎn)介
HtmlAgilityPack 是一個(gè)用于解析 HTML 元素的開(kāi)源類(lèi)庫。它最大的特點(diǎn)是可以通過(guò)XPath來(lái)解析HMTL。如果您以前使用過(guò) C# 操作過(guò) XML,那么您將能夠輕松使用 HtmlAgilityPack。目前最新版本是1.4.6,下載地址如下: 目前穩定版是1.4.6,最后一次更新是2012年,所以很穩定,基礎功能也很全面,沒(méi)必要更新它。
說(shuō)到HtmlAgilityPack,就不得不介紹一個(gè)輔助工具了。不知道別人用的時(shí)候是怎么分析頁(yè)面結構的。反正我用的是官方的工具HAPExplorer。很有用。下面我們就來(lái)介紹下我們在使用的時(shí)候如何使用。
2. XPath技術(shù)介紹及使用 2.1 XPath簡(jiǎn)介
XPath即XML路徑語(yǔ)言,是一種用于確定XML(標準通用標記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言。XPath基于XML的樹(shù)結構,提供了在數據結構樹(shù)中查找節點(diǎn)的能力。XPath 的初衷是將其用作 XPointer 和 XSL 之間的通用語(yǔ)法模型。但 XPath 作為一種小型查詢(xún)語(yǔ)言很快被開(kāi)發(fā)人員采用。
XPath 是 W3C 標準。它的主要目的是在 XML1.0 或 XML1.1 文檔節點(diǎn)樹(shù)中定位節點(diǎn)。目前有XPath1.0和XPath2.0兩個(gè)版本。其中XPath1.0于1999年成為W3C標準,XPath2.0標準于2007年確立。W3C關(guān)于XPath的詳細英文文檔請見(jiàn):。
2.2 XPath的路徑表達式
XPath是XML的一種查詢(xún)語(yǔ)言,其作用與SQL非常相似。下面以XML為例介紹XPath的語(yǔ)法。下面的資料是幾年前學(xué)習這個(gè)的時(shí)候從網(wǎng)上和博客園得到的一些資料。暫時(shí)找不到出處。例子和文字基本上是為了參考。再次感謝你。如果您找到類(lèi)似的 文章,請告訴我鏈接,我會(huì )添加參考。下面XPath的相關(guān)表達式也很基礎,基本夠用了。
Empire Burlesque
Bob Dylan
10.90
只聽(tīng)見(jiàn)建筑師辦公室傳來(lái)建筑師的聲音:
病骨斷冠廣,孤臣千里江。有誰(shuí)會(huì )配上聯(lián)或下聯(lián)嗎?
定位節點(diǎn):XML是樹(shù)狀結構,類(lèi)似于文件系統中的文件夾結構,XPath也類(lèi)似于文件系統的路徑命名方式。但是,XPath是一種模式(Pattern),它可以選擇XML文件中路徑與某種模式相匹配的所有節點(diǎn)。例如,要選擇目錄下 cd 中的所有價(jià)格元素,可以使用:
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/cd/price
如果 XPath 以斜杠 (/) 開(kāi)頭,則表示它是絕對路徑。如果開(kāi)頭有兩個(gè)斜杠 (//),則將選擇文件中與模式匹配的所有元素,即使它們在樹(shù)中處于不同級別。以下語(yǔ)法將選擇文件中所有名為 cd 的元素(將選擇樹(shù)中的任何級別)://cd
選擇未知元素:使用星號 (*) 選擇未知元素。以下語(yǔ)法選擇 /catalog/cd 的所有子元素:
/catalog/cd/*
以下語(yǔ)法將選擇收錄價(jià)格作為子元素的所有目錄子元素。
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/*/price
以下語(yǔ)法選擇具有兩個(gè)名為 price 的父級級別的所有元素。
/*/*/price
需要注意的是,如果要訪(fǎng)問(wèn)不分層次的元素,XPath 語(yǔ)法必須以?xún)蓚€(gè)斜杠(//)開(kāi)頭,如果要訪(fǎng)問(wèn)未知元素,則必須使用星號(*)。星號只能表示未知 name 的元素不能表示未知層次結構的元素。
選擇分支:使用方括號選擇一個(gè)分支。以下語(yǔ)法從目錄的子元素中獲取名為 cd 的第一個(gè)元素。在 XPath 的定義中沒(méi)有第 0 個(gè)元素這樣的東西。
/catalog/cd[1]
以下語(yǔ)法選擇目錄中的最后一個(gè) cd 元素:(XPathj 沒(méi)有定義像 first() 這樣的函數,在上例中使用 [1] 來(lái)提取第一個(gè)元素。
/catalog/cd[last()]
以下語(yǔ)法選擇 price 元素的值等于 10.90 的所有 /catalog/cd 元素
/catalog/cd[price=10.90]
選擇屬性:在XPath中,除了選擇元素外,還可以選擇屬性。屬性都以@開(kāi)頭。例如選擇文件中名為 country 的所有屬性:
//@country
以下語(yǔ)法選擇 country 屬性值為 UK 的 cd 元素
//cd[@country='UK']
3. 采集Weather網(wǎng)站案例3.1需求分析
我們要的采集是全國各個(gè)城市的天氣信息,網(wǎng)站是:,網(wǎng)站數據分為兩種,一種是歷史數據,涵蓋2011年至今,一種是天氣預報數據,歷史數據就是天氣預報,也就是實(shí)際的天氣數據。采集 必須覆蓋全國主要城市,最好是所有城市。通過(guò)分析網(wǎng)站的頁(yè)面,確實(shí)符合要求。天氣信息,包括實(shí)際天氣狀況、風(fēng)力狀況和溫度狀況,包括最小和最大間隔。
結合基本需求,我們進(jìn)入網(wǎng)站,分析一些通用的特征,以及主頁(yè)面的結構。
3.2 網(wǎng)站頁(yè)面結構分析
對于采集大量信息,網(wǎng)站頁(yè)面的詳細分析和總結是必要的。因為機器采集不是人,所以需要動(dòng)態(tài)構造URL、請求或頁(yè)面html,然后解析。所以分析網(wǎng)站頁(yè)面結構是第一步,也是很關(guān)鍵的一步。我們首先進(jìn)入總歷史頁(yè)面:,如下圖:
很明顯,這個(gè)總頁(yè)是按省劃分的??梢钥吹矫總€(gè)省份和地級市名稱(chēng)的鏈接格式是固定的,只是拼音縮寫(xiě)不一樣。每個(gè)省的第一個(gè)城市是省會(huì )城市。需要注意的是,在程序上,要區分省會(huì )城市和其他地級市。當然,省會(huì )城市也可以省略,畢竟只有30多個(gè),人工標注也很快。這個(gè)頁(yè)面我們主要會(huì )用到采集省份的縮寫(xiě)信息,然后我們選擇一個(gè)省份,點(diǎn)擊進(jìn)入,可以看到每個(gè)省份的具體城市信息,比如我們選擇遼寧?。喝缦聢D:
同樣,每個(gè)省下面的地區也有單獨的鏈接,格式和上面類(lèi)似,按照城市的拼音。我們可以看到,每個(gè)省下面都有大的地級行政區,每個(gè)地級市區再細分為小縣城和市區。我們隨意點(diǎn)開(kāi)大連市的鏈接,進(jìn)去看看具體的氣象歷史信息:
本頁(yè)包括該市從2011年1月到2015年至今的歷史數據,以月為單位。鏈接的特征也很固定,包括城市名的拼音和年月信息。所以構建這個(gè)鏈接很容易。以下是每個(gè)月的情況:
我屏蔽了一些廣告,請手動(dòng)清除。每個(gè)城市的月度天氣信息比較簡(jiǎn)單,直接表格填寫(xiě)數據,日期,天氣情況,溫度和風(fēng)力。這些步驟是根據頁(yè)面上的鏈接一步步引導的,所以上面的過(guò)程很清楚,給采集的信息也很清楚,有一個(gè)大概的思路:
先采集整個(gè)省的拼音代碼,然后依次獲取每個(gè)省的每個(gè)地級市的名稱(chēng)和拼音代碼,以及對應的縣級市,最后循環(huán)遍歷每個(gè)縣級市按月獲取所有歷史數據。下面將著(zhù)重分析幾個(gè)頁(yè)面的節點(diǎn),即如何使用HtmlAgilityPack和Xpath獲取你想要的數據信息。至于存入資料庫,就讓八仙過(guò)海大展神通吧。我使用 XCode 組件。
3.3 分析省縣結構頁(yè)面
仍以遼寧省為例:打開(kāi)頁(yè)面,右鍵獲取網(wǎng)頁(yè)源代碼,粘貼到HAPExplorer中,或者直接在HAPExplorer中打開(kāi)鏈接,如下動(dòng)圖所示:
我們可以看到右邊的XPath地址,div結束后,下面有dl標簽,就是我們要采集的行。下面我們使用代碼獲取上面的結構體。先看代碼獲取頁(yè)面源碼:
public?static?string?GetWebClient(string?url)
{
string?strHTML?=?"";
WebClient?myWebClient?=?new?WebClient();????????????
Stream?myStream?=?myWebClient.OpenRead(url);
StreamReader?sr?=?new?StreamReader(myStream,?Encoding.Default);//注意編碼
strHTML?=?sr.ReadToEnd();
myStream.Close();
return?strHTML;
}
下面是分析各省下縣市的程序。限于篇幅,我們省略了數據庫部分,僅采集城市和拼音代碼,輸出:
<p>///?添加省級-地區-縣市?的城市信息,注意?省會(huì )城市?標記5
///?省份代碼
public?static?void?ParsePageByArea(String?cityCode)
{
//更加鏈接格式和省份代碼構造URL
String?url?=?String.Format("http://www.tianqihoubao.com/lishi/{0}.htm",?cityCode);
//下載網(wǎng)頁(yè)源代碼?
var?docText?=?HtmlHelper.GetWebClient(url);
//加載源代碼,獲取文檔對象
var?doc?=?new?HtmlDocument();?doc.LoadHtml(docText);
//更加xpath獲取總的對象,如果不為空,就繼續選擇dl標簽
var?res?=?doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[1]/div[6]/div[1]/div[1]/div[3]");
if?(res?!=?null)
{
var?list?=?res.SelectNodes(@"dl");//選擇標簽數組
if?(list.Count? 查看全部
匯總:大數據采集[被帶去派出所采集信息]
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,
大家好,我是建筑先生,一個(gè)會(huì )寫(xiě)代碼會(huì )吟詩(shī)的架構師。今天講講大數據采集【被帶到派出所采集信息】,希望能幫助大家進(jìn)步?。?!
第一次接觸 HtmlAgilityPack 是在 5 年前。一些意外導致我暫時(shí)從技術(shù)部調到銷(xiāo)售部。我負責建立一些流程并尋找潛在客戶(hù)。最后在阿里巴巴上找了很多客戶(hù)資料。它非常全面。一開(kāi)始是手動(dòng)復制到Excel,真的很累。雖然那時(shí)候C#還是很牛的,但是我也想過(guò)能不能通過(guò)程序批量獲?。ㄋ赃€是多點(diǎn)想法比較好)。幾經(jīng)周折,終于發(fā)現了HtmlAgilityPack這個(gè)神器。這幾年我也用HtmlAgilityPack采集來(lái)處理很多類(lèi)型的數據,尤其是足球比賽數據庫采集和天氣數據采集的數據。HTML敏捷包,
今天的主要內容是HtmlAgilityPack的基本介紹、使用和實(shí)戰代碼。最后,我們以采集天氣數據為例,介紹一下實(shí)際的采集分析過(guò)程和簡(jiǎn)單的代碼。我們將在下一篇文章中開(kāi)源天氣數據庫和C#運行代碼。采集核心就介紹到這里了。其實(shí)核心代碼都在,你自己處理就可以了。同時(shí),也免費向有需要的人開(kāi)放。詳情請關(guān)注下期文章。
.NET開(kāi)源目錄:本博客其他.NET開(kāi)源項目的【目錄】文章目錄
本文原文地址:C#+HtmlAgilityPack+XPath為您帶來(lái)采集數據(以采集天氣數據為例)
一、HtmlAgilityPack簡(jiǎn)介
HtmlAgilityPack 是一個(gè)用于解析 HTML 元素的開(kāi)源類(lèi)庫。它最大的特點(diǎn)是可以通過(guò)XPath來(lái)解析HMTL。如果您以前使用過(guò) C# 操作過(guò) XML,那么您將能夠輕松使用 HtmlAgilityPack。目前最新版本是1.4.6,下載地址如下: 目前穩定版是1.4.6,最后一次更新是2012年,所以很穩定,基礎功能也很全面,沒(méi)必要更新它。
說(shuō)到HtmlAgilityPack,就不得不介紹一個(gè)輔助工具了。不知道別人用的時(shí)候是怎么分析頁(yè)面結構的。反正我用的是官方的工具HAPExplorer。很有用。下面我們就來(lái)介紹下我們在使用的時(shí)候如何使用。
2. XPath技術(shù)介紹及使用 2.1 XPath簡(jiǎn)介
XPath即XML路徑語(yǔ)言,是一種用于確定XML(標準通用標記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言。XPath基于XML的樹(shù)結構,提供了在數據結構樹(shù)中查找節點(diǎn)的能力。XPath 的初衷是將其用作 XPointer 和 XSL 之間的通用語(yǔ)法模型。但 XPath 作為一種小型查詢(xún)語(yǔ)言很快被開(kāi)發(fā)人員采用。
XPath 是 W3C 標準。它的主要目的是在 XML1.0 或 XML1.1 文檔節點(diǎn)樹(shù)中定位節點(diǎn)。目前有XPath1.0和XPath2.0兩個(gè)版本。其中XPath1.0于1999年成為W3C標準,XPath2.0標準于2007年確立。W3C關(guān)于XPath的詳細英文文檔請見(jiàn):。
2.2 XPath的路徑表達式
XPath是XML的一種查詢(xún)語(yǔ)言,其作用與SQL非常相似。下面以XML為例介紹XPath的語(yǔ)法。下面的資料是幾年前學(xué)習這個(gè)的時(shí)候從網(wǎng)上和博客園得到的一些資料。暫時(shí)找不到出處。例子和文字基本上是為了參考。再次感謝你。如果您找到類(lèi)似的 文章,請告訴我鏈接,我會(huì )添加參考。下面XPath的相關(guān)表達式也很基礎,基本夠用了。
Empire Burlesque
Bob Dylan
10.90
只聽(tīng)見(jiàn)建筑師辦公室傳來(lái)建筑師的聲音:
病骨斷冠廣,孤臣千里江。有誰(shuí)會(huì )配上聯(lián)或下聯(lián)嗎?
定位節點(diǎn):XML是樹(shù)狀結構,類(lèi)似于文件系統中的文件夾結構,XPath也類(lèi)似于文件系統的路徑命名方式。但是,XPath是一種模式(Pattern),它可以選擇XML文件中路徑與某種模式相匹配的所有節點(diǎn)。例如,要選擇目錄下 cd 中的所有價(jià)格元素,可以使用:
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/cd/price
如果 XPath 以斜杠 (/) 開(kāi)頭,則表示它是絕對路徑。如果開(kāi)頭有兩個(gè)斜杠 (//),則將選擇文件中與模式匹配的所有元素,即使它們在樹(shù)中處于不同級別。以下語(yǔ)法將選擇文件中所有名為 cd 的元素(將選擇樹(shù)中的任何級別)://cd
選擇未知元素:使用星號 (*) 選擇未知元素。以下語(yǔ)法選擇 /catalog/cd 的所有子元素:
/catalog/cd/*
以下語(yǔ)法將選擇收錄價(jià)格作為子元素的所有目錄子元素。
此代碼由Java架構師必看網(wǎng)-架構君整理
/catalog/*/price
以下語(yǔ)法選擇具有兩個(gè)名為 price 的父級級別的所有元素。
/*/*/price
需要注意的是,如果要訪(fǎng)問(wèn)不分層次的元素,XPath 語(yǔ)法必須以?xún)蓚€(gè)斜杠(//)開(kāi)頭,如果要訪(fǎng)問(wèn)未知元素,則必須使用星號(*)。星號只能表示未知 name 的元素不能表示未知層次結構的元素。
選擇分支:使用方括號選擇一個(gè)分支。以下語(yǔ)法從目錄的子元素中獲取名為 cd 的第一個(gè)元素。在 XPath 的定義中沒(méi)有第 0 個(gè)元素這樣的東西。
/catalog/cd[1]
以下語(yǔ)法選擇目錄中的最后一個(gè) cd 元素:(XPathj 沒(méi)有定義像 first() 這樣的函數,在上例中使用 [1] 來(lái)提取第一個(gè)元素。
/catalog/cd[last()]
以下語(yǔ)法選擇 price 元素的值等于 10.90 的所有 /catalog/cd 元素
/catalog/cd[price=10.90]
選擇屬性:在XPath中,除了選擇元素外,還可以選擇屬性。屬性都以@開(kāi)頭。例如選擇文件中名為 country 的所有屬性:
//@country
以下語(yǔ)法選擇 country 屬性值為 UK 的 cd 元素
//cd[@country='UK']
3. 采集Weather網(wǎng)站案例3.1需求分析
我們要的采集是全國各個(gè)城市的天氣信息,網(wǎng)站是:,網(wǎng)站數據分為兩種,一種是歷史數據,涵蓋2011年至今,一種是天氣預報數據,歷史數據就是天氣預報,也就是實(shí)際的天氣數據。采集 必須覆蓋全國主要城市,最好是所有城市。通過(guò)分析網(wǎng)站的頁(yè)面,確實(shí)符合要求。天氣信息,包括實(shí)際天氣狀況、風(fēng)力狀況和溫度狀況,包括最小和最大間隔。
結合基本需求,我們進(jìn)入網(wǎng)站,分析一些通用的特征,以及主頁(yè)面的結構。
3.2 網(wǎng)站頁(yè)面結構分析
對于采集大量信息,網(wǎng)站頁(yè)面的詳細分析和總結是必要的。因為機器采集不是人,所以需要動(dòng)態(tài)構造URL、請求或頁(yè)面html,然后解析。所以分析網(wǎng)站頁(yè)面結構是第一步,也是很關(guān)鍵的一步。我們首先進(jìn)入總歷史頁(yè)面:,如下圖:
很明顯,這個(gè)總頁(yè)是按省劃分的??梢钥吹矫總€(gè)省份和地級市名稱(chēng)的鏈接格式是固定的,只是拼音縮寫(xiě)不一樣。每個(gè)省的第一個(gè)城市是省會(huì )城市。需要注意的是,在程序上,要區分省會(huì )城市和其他地級市。當然,省會(huì )城市也可以省略,畢竟只有30多個(gè),人工標注也很快。這個(gè)頁(yè)面我們主要會(huì )用到采集省份的縮寫(xiě)信息,然后我們選擇一個(gè)省份,點(diǎn)擊進(jìn)入,可以看到每個(gè)省份的具體城市信息,比如我們選擇遼寧?。喝缦聢D:

同樣,每個(gè)省下面的地區也有單獨的鏈接,格式和上面類(lèi)似,按照城市的拼音。我們可以看到,每個(gè)省下面都有大的地級行政區,每個(gè)地級市區再細分為小縣城和市區。我們隨意點(diǎn)開(kāi)大連市的鏈接,進(jìn)去看看具體的氣象歷史信息:
本頁(yè)包括該市從2011年1月到2015年至今的歷史數據,以月為單位。鏈接的特征也很固定,包括城市名的拼音和年月信息。所以構建這個(gè)鏈接很容易。以下是每個(gè)月的情況:
我屏蔽了一些廣告,請手動(dòng)清除。每個(gè)城市的月度天氣信息比較簡(jiǎn)單,直接表格填寫(xiě)數據,日期,天氣情況,溫度和風(fēng)力。這些步驟是根據頁(yè)面上的鏈接一步步引導的,所以上面的過(guò)程很清楚,給采集的信息也很清楚,有一個(gè)大概的思路:
先采集整個(gè)省的拼音代碼,然后依次獲取每個(gè)省的每個(gè)地級市的名稱(chēng)和拼音代碼,以及對應的縣級市,最后循環(huán)遍歷每個(gè)縣級市按月獲取所有歷史數據。下面將著(zhù)重分析幾個(gè)頁(yè)面的節點(diǎn),即如何使用HtmlAgilityPack和Xpath獲取你想要的數據信息。至于存入資料庫,就讓八仙過(guò)海大展神通吧。我使用 XCode 組件。
3.3 分析省縣結構頁(yè)面
仍以遼寧省為例:打開(kāi)頁(yè)面,右鍵獲取網(wǎng)頁(yè)源代碼,粘貼到HAPExplorer中,或者直接在HAPExplorer中打開(kāi)鏈接,如下動(dòng)圖所示:
我們可以看到右邊的XPath地址,div結束后,下面有dl標簽,就是我們要采集的行。下面我們使用代碼獲取上面的結構體。先看代碼獲取頁(yè)面源碼:
public?static?string?GetWebClient(string?url)
{
string?strHTML?=?"";
WebClient?myWebClient?=?new?WebClient();????????????
Stream?myStream?=?myWebClient.OpenRead(url);
StreamReader?sr?=?new?StreamReader(myStream,?Encoding.Default);//注意編碼
strHTML?=?sr.ReadToEnd();
myStream.Close();
return?strHTML;
}
下面是分析各省下縣市的程序。限于篇幅,我們省略了數據庫部分,僅采集城市和拼音代碼,輸出:
<p>///?添加省級-地區-縣市?的城市信息,注意?省會(huì )城市?標記5
///?省份代碼
public?static?void?ParsePageByArea(String?cityCode)
{
//更加鏈接格式和省份代碼構造URL
String?url?=?String.Format("http://www.tianqihoubao.com/lishi/{0}.htm",?cityCode);
//下載網(wǎng)頁(yè)源代碼?
var?docText?=?HtmlHelper.GetWebClient(url);
//加載源代碼,獲取文檔對象
var?doc?=?new?HtmlDocument();?doc.LoadHtml(docText);
//更加xpath獲取總的對象,如果不為空,就繼續選擇dl標簽
var?res?=?doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[1]/div[6]/div[1]/div[1]/div[3]");
if?(res?!=?null)
{
var?list?=?res.SelectNodes(@"dl");//選擇標簽數組
if?(list.Count?
最佳實(shí)踐:Python突破拉鉤反爬機制,采集各類(lèi)招聘數據
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 149 次瀏覽 ? 2022-12-15 08:38
首先,這個(gè)有什么用?如果有用,那就沒(méi)用了。如果沒(méi)用,那就沒(méi)用了。既然我們能夠得到這些數據,那么我們就可以利用它們來(lái)進(jìn)行數據分析??梢杂行Й@取職位信息、薪資信息等,也可以讓找工作更容易,在匹配職位和公司時(shí)可以更有選擇性
如有異議,直接上代碼!之后有具體的教程和大致的代碼思路!使用的解釋器是Python3.7.1,編輯器是Pycharm 2018.3.5。本著(zhù)虛心求學(xué),孜孜不倦的精神,把賴(lài)賴(lài)逼到這里來(lái)虛心求學(xué),孜孜不倦,把賴(lài)賴(lài)給逼了。不喜勿噴。開(kāi)恩。
私信小編001領(lǐng)取Python學(xué)習資料
本節涉及:Request的基本使用,Request的高級使用-會(huì )話(huà)維護,Cookies,Ajax,JSON數據格式
關(guān)于Request的更多細節,請參考Request官方文檔:
易入門(mén)漢化版
進(jìn)階使用漢化版
Cookie:有時(shí)也使用其復數形式 Cookies。類(lèi)型為“小文本文件”,是一些網(wǎng)站為了識別用戶(hù)身份和跟蹤會(huì )話(huà)而存儲在用戶(hù)本地終端的數據(通常是加密的),信息被臨時(shí)或永久保存通過(guò)用戶(hù)的客戶(hù)端計算機
Ajax即“Asynchronous Javascript And XML”(異步JavaScript和XML),指的是一種用于創(chuàng )建交互式、快速和動(dòng)態(tài)的網(wǎng)絡(luò )應用程序的網(wǎng)絡(luò )開(kāi)發(fā)技術(shù),它可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新部分網(wǎng)頁(yè)。
Ajax 通過(guò)在后臺與服務(wù)器交換少量數據,使網(wǎng)頁(yè)能夠異步更新。這意味著(zhù)可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新網(wǎng)頁(yè)的部分內容。
JSON(JavaScript Object Notation):它是一種輕量級的數據交換格式。便于人類(lèi)閱讀和書(shū)寫(xiě)。機器也很容易解析和生成。它基于 JavaScript 編程語(yǔ)言的子集,標準 ECMA-262 第 3 版 – 1999 年 12 月。JSON 使用完全獨立于語(yǔ)言的文本格式,但也使用類(lèi)似于 C 語(yǔ)言家族(包括 C、C++、C# 、Java、JavaScript、Perl、Python 等)。這些特性使 JSON 成為一種理想的數據交換語(yǔ)言。
首先介紹一下本章代碼的基本思路:
四步(發(fā)起請求,獲取響應,解析響應獲取數據,保存數據)
準確的說(shuō),四個(gè)步驟中的三個(gè)是(發(fā)起請求,得到響應,解析響應,提取數據,保存數據)
請求一個(gè)網(wǎng)頁(yè)(在搜索框輸入你要找的帖子得到BASE_URL,) BASE_URL:添加請求頭(注意添加Cookies)
請求BASE_URL觀(guān)察響應信息和本網(wǎng)頁(yè)源代碼觀(guān)察瀏覽器網(wǎng)頁(yè)源代碼,對比發(fā)現沒(méi)有我們需要的信息:發(fā)現Ajax的蹤跡。經(jīng)過(guò)一系列的操作,找到了Ajax網(wǎng)頁(yè)的地址(直接在這里請求這個(gè)鏈接是訪(fǎng)問(wèn)不了的):多次請求后,發(fā)現報錯。錯誤原因是Cookies的限制,動(dòng)態(tài)檢測網(wǎng)頁(yè),時(shí)間間隔小。學(xué)了前言,就學(xué)會(huì )了。會(huì )話(huà)保持。動(dòng)態(tài)獲取Cookies,這樣就可以徹底繞過(guò)這個(gè)“反爬”?答案肯定是迪娜。讓我們進(jìn)行會(huì )話(huà)維護并動(dòng)態(tài)提取 cookie?;煜c(diǎn):為什么cookie的維護是通過(guò)BASE_URL而不是Ajax_URL來(lái)維護的?下面根據我個(gè)人的理解對這個(gè)Ajax做一下解釋?zhuān)?結合Ajax的原理,Ajax的基本原理就是在網(wǎng)頁(yè)中插入異步觸發(fā)器。畢竟,他還在這個(gè)頁(yè)面,并沒(méi)有切換到其他頁(yè)面。只需觸發(fā)特定條件即可插入此頁(yè)面
此時(shí),您只需要提取相關(guān)數據即可。得到:
數據存儲:(保存到數據庫)
本源碼地址:%E8%81%8C%E4%BD%8D%E6%8B%9B%E8%81%98/Demo_Mongo.py
這里我選擇Mongo,接下來(lái)我們來(lái)操作一下。Mongo的安裝這里不再贅述。文章和mongo相關(guān),這里有幾篇蔡哥和董哥推薦的文章文章。不好,不,我沒(méi)有,我沒(méi)說(shuō)),地址如下: 前方高能預警,趕上?。?!:(此時(shí)你已經(jīng)安裝好了mongo,可以正常使用mongo了,剩下的交給我,我來(lái)教你)
安裝 pymongo 安裝 pymogo
建立連接:重寫(xiě)原來(lái)的代碼,增加類(lèi)似下面的代碼:
新的存儲方式:定義存入數據庫的方式
調用此方法:
注意:由于mongo的存儲格式是key:value格式,所以我們提取的返回數據也必須是key:value格式:
看看我,看看我,我是怎么做到的,我是這樣做的:
左手叉腰,右手顫抖,Over!
如果你只看文章,即使是我自己寫(xiě)的文章,光看文章也會(huì )糊涂。建議結合源碼一起閱讀。祝你學(xué)習進(jìn)步,祝你成功。加油~寫(xiě)到最后:既然能讀到這里,那我相信不是一個(gè)養成了無(wú)償賣(mài)淫習慣的人,也就是說(shuō)他或多或少也想自己干。所有的?下次出來(lái)吹牛,別拉鉤知道,爬回去難嗎?我會(huì )(雖然對于大佬來(lái)說(shuō),可能算不上反pickup,就像玩一樣,這個(gè)確實(shí)是。但是,對于新手來(lái)說(shuō),已經(jīng)很難了。)拉鉤人我也做過(guò)。找工作的話(huà)可以找我,啊哈哈哈哈。
匯總:【POWER BI】用POWER BI抓取網(wǎng)頁(yè)面數據(1)-單頁(yè)抓取
上次我們介紹了如何使用Power BI抓取上市公司的財務(wù)報表,但細細分析,財務(wù)報表都是比較標準的表格,抓取工作自然簡(jiǎn)單。如何使用POWER BI來(lái)完成相對復雜的頁(yè)面數據抓取呢?
今天我們嘗試先解決第一個(gè)問(wèn)題。
我們通過(guò)豆瓣音樂(lè )TOP 250來(lái)了解什么是結構化網(wǎng)頁(yè)。下面的頁(yè)面按照評分列出了不同的音樂(lè )專(zhuān)輯條目,每個(gè)音樂(lè )條目收錄:
專(zhuān)輯名稱(chēng)藝術(shù)家/發(fā)行月份等信息評級
這是一個(gè)結構化網(wǎng)頁(yè),結構化網(wǎng)頁(yè)的特點(diǎn)總結如下:
此類(lèi)常規條目是結構化網(wǎng)頁(yè)。POWER BI 可以抓取具有這種特性的數據嗎?答案當然是肯定的。讓我們嘗試獲取以下音樂(lè )數據。
結構化網(wǎng)頁(yè)分析
第一步:打開(kāi)POWER BI,進(jìn)入Data Acquisition > Web,輸入URL,出現如下界面
導入數據
有兩個(gè)選項,基本和高級。今天我們只抓取第一頁(yè)數據,所以先選擇“Basic”。后面我們要抓取多頁(yè)數據的時(shí)候,會(huì )介紹“高級”選項里面的設置。
解決方案確定后,會(huì )出現一個(gè)導航器,POWER BI會(huì )自動(dòng)識別頁(yè)面上的一些表格數據,如下圖,但是我們發(fā)現都不是我們想要的結果。這里我們點(diǎn)擊“Add table using example”
導航器 1
使用示例添加表
第 2 步:構建自定義結構化數據
這時(shí)會(huì )出現如下界面。我們注意到這個(gè)界面的上半部分是網(wǎng)頁(yè)的預覽。我們可以參考這個(gè)預覽頁(yè)面進(jìn)行選擇,而頁(yè)面的下半部分是欄目。我們可以根據需要添加或刪除列。
構建自定義結構化數據
我們雙擊第一列,會(huì )出現一些POWER BI識別的條目。這時(shí)候我們選擇第一行的相冊名稱(chēng)。同樣的,我們在第二行輸入Viva la...。輸入兩行后,下一行會(huì )自動(dòng)識別我們的意圖,填入后面幾項的相冊名稱(chēng)。
智能識別
同樣的方法,我們添加列,逐列輸入歌手/發(fā)行年份、評分等數據,如下圖所示。
完整的數據采集
這里有兩點(diǎn)值得注意:
歌手、發(fā)行年份、流派等信息混合在同一欄中。我們先抓取這一列混合數據,然后進(jìn)一步梳理;以上信息為顯性信息。即頁(yè)面上可以直接看到的數據很容易抓取,我們也可以抓取通過(guò)“相冊圖片”等超鏈接加載的不可見(jiàn)數據。我們可以進(jìn)入網(wǎng)頁(yè),右擊第一個(gè)條目的圖片,點(diǎn)擊“復制圖片地址”,將其復制到圖片欄的一行中,同理復制第二個(gè)條目的圖片,圖片最后一個(gè)條目的地址,也將被自動(dòng)識別。
當我們完成采集數據后,我們會(huì )對每一列進(jìn)行重命名,方便我們后續的數據清洗。至此,我們已經(jīng)在第一頁(yè)抓取了我們想要的數據。
下期我們會(huì )繼續介紹如何批量抓取以下網(wǎng)頁(yè)的數據。 查看全部
最佳實(shí)踐:Python突破拉鉤反爬機制,采集各類(lèi)招聘數據
首先,這個(gè)有什么用?如果有用,那就沒(méi)用了。如果沒(méi)用,那就沒(méi)用了。既然我們能夠得到這些數據,那么我們就可以利用它們來(lái)進(jìn)行數據分析??梢杂行Й@取職位信息、薪資信息等,也可以讓找工作更容易,在匹配職位和公司時(shí)可以更有選擇性
如有異議,直接上代碼!之后有具體的教程和大致的代碼思路!使用的解釋器是Python3.7.1,編輯器是Pycharm 2018.3.5。本著(zhù)虛心求學(xué),孜孜不倦的精神,把賴(lài)賴(lài)逼到這里來(lái)虛心求學(xué),孜孜不倦,把賴(lài)賴(lài)給逼了。不喜勿噴。開(kāi)恩。
私信小編001領(lǐng)取Python學(xué)習資料
本節涉及:Request的基本使用,Request的高級使用-會(huì )話(huà)維護,Cookies,Ajax,JSON數據格式
關(guān)于Request的更多細節,請參考Request官方文檔:
易入門(mén)漢化版
進(jìn)階使用漢化版
Cookie:有時(shí)也使用其復數形式 Cookies。類(lèi)型為“小文本文件”,是一些網(wǎng)站為了識別用戶(hù)身份和跟蹤會(huì )話(huà)而存儲在用戶(hù)本地終端的數據(通常是加密的),信息被臨時(shí)或永久保存通過(guò)用戶(hù)的客戶(hù)端計算機
Ajax即“Asynchronous Javascript And XML”(異步JavaScript和XML),指的是一種用于創(chuàng )建交互式、快速和動(dòng)態(tài)的網(wǎng)絡(luò )應用程序的網(wǎng)絡(luò )開(kāi)發(fā)技術(shù),它可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新部分網(wǎng)頁(yè)。
Ajax 通過(guò)在后臺與服務(wù)器交換少量數據,使網(wǎng)頁(yè)能夠異步更新。這意味著(zhù)可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下更新網(wǎng)頁(yè)的部分內容。
JSON(JavaScript Object Notation):它是一種輕量級的數據交換格式。便于人類(lèi)閱讀和書(shū)寫(xiě)。機器也很容易解析和生成。它基于 JavaScript 編程語(yǔ)言的子集,標準 ECMA-262 第 3 版 – 1999 年 12 月。JSON 使用完全獨立于語(yǔ)言的文本格式,但也使用類(lèi)似于 C 語(yǔ)言家族(包括 C、C++、C# 、Java、JavaScript、Perl、Python 等)。這些特性使 JSON 成為一種理想的數據交換語(yǔ)言。
首先介紹一下本章代碼的基本思路:
四步(發(fā)起請求,獲取響應,解析響應獲取數據,保存數據)

準確的說(shuō),四個(gè)步驟中的三個(gè)是(發(fā)起請求,得到響應,解析響應,提取數據,保存數據)
請求一個(gè)網(wǎng)頁(yè)(在搜索框輸入你要找的帖子得到BASE_URL,) BASE_URL:添加請求頭(注意添加Cookies)
請求BASE_URL觀(guān)察響應信息和本網(wǎng)頁(yè)源代碼觀(guān)察瀏覽器網(wǎng)頁(yè)源代碼,對比發(fā)現沒(méi)有我們需要的信息:發(fā)現Ajax的蹤跡。經(jīng)過(guò)一系列的操作,找到了Ajax網(wǎng)頁(yè)的地址(直接在這里請求這個(gè)鏈接是訪(fǎng)問(wèn)不了的):多次請求后,發(fā)現報錯。錯誤原因是Cookies的限制,動(dòng)態(tài)檢測網(wǎng)頁(yè),時(shí)間間隔小。學(xué)了前言,就學(xué)會(huì )了。會(huì )話(huà)保持。動(dòng)態(tài)獲取Cookies,這樣就可以徹底繞過(guò)這個(gè)“反爬”?答案肯定是迪娜。讓我們進(jìn)行會(huì )話(huà)維護并動(dòng)態(tài)提取 cookie?;煜c(diǎn):為什么cookie的維護是通過(guò)BASE_URL而不是Ajax_URL來(lái)維護的?下面根據我個(gè)人的理解對這個(gè)Ajax做一下解釋?zhuān)?結合Ajax的原理,Ajax的基本原理就是在網(wǎng)頁(yè)中插入異步觸發(fā)器。畢竟,他還在這個(gè)頁(yè)面,并沒(méi)有切換到其他頁(yè)面。只需觸發(fā)特定條件即可插入此頁(yè)面
此時(shí),您只需要提取相關(guān)數據即可。得到:
數據存儲:(保存到數據庫)
本源碼地址:%E8%81%8C%E4%BD%8D%E6%8B%9B%E8%81%98/Demo_Mongo.py
這里我選擇Mongo,接下來(lái)我們來(lái)操作一下。Mongo的安裝這里不再贅述。文章和mongo相關(guān),這里有幾篇蔡哥和董哥推薦的文章文章。不好,不,我沒(méi)有,我沒(méi)說(shuō)),地址如下: 前方高能預警,趕上?。?!:(此時(shí)你已經(jīng)安裝好了mongo,可以正常使用mongo了,剩下的交給我,我來(lái)教你)
安裝 pymongo 安裝 pymogo
建立連接:重寫(xiě)原來(lái)的代碼,增加類(lèi)似下面的代碼:

新的存儲方式:定義存入數據庫的方式
調用此方法:
注意:由于mongo的存儲格式是key:value格式,所以我們提取的返回數據也必須是key:value格式:
看看我,看看我,我是怎么做到的,我是這樣做的:
左手叉腰,右手顫抖,Over!
如果你只看文章,即使是我自己寫(xiě)的文章,光看文章也會(huì )糊涂。建議結合源碼一起閱讀。祝你學(xué)習進(jìn)步,祝你成功。加油~寫(xiě)到最后:既然能讀到這里,那我相信不是一個(gè)養成了無(wú)償賣(mài)淫習慣的人,也就是說(shuō)他或多或少也想自己干。所有的?下次出來(lái)吹牛,別拉鉤知道,爬回去難嗎?我會(huì )(雖然對于大佬來(lái)說(shuō),可能算不上反pickup,就像玩一樣,這個(gè)確實(shí)是。但是,對于新手來(lái)說(shuō),已經(jīng)很難了。)拉鉤人我也做過(guò)。找工作的話(huà)可以找我,啊哈哈哈哈。
匯總:【POWER BI】用POWER BI抓取網(wǎng)頁(yè)面數據(1)-單頁(yè)抓取
上次我們介紹了如何使用Power BI抓取上市公司的財務(wù)報表,但細細分析,財務(wù)報表都是比較標準的表格,抓取工作自然簡(jiǎn)單。如何使用POWER BI來(lái)完成相對復雜的頁(yè)面數據抓取呢?
今天我們嘗試先解決第一個(gè)問(wèn)題。
我們通過(guò)豆瓣音樂(lè )TOP 250來(lái)了解什么是結構化網(wǎng)頁(yè)。下面的頁(yè)面按照評分列出了不同的音樂(lè )專(zhuān)輯條目,每個(gè)音樂(lè )條目收錄:
專(zhuān)輯名稱(chēng)藝術(shù)家/發(fā)行月份等信息評級
這是一個(gè)結構化網(wǎng)頁(yè),結構化網(wǎng)頁(yè)的特點(diǎn)總結如下:
此類(lèi)常規條目是結構化網(wǎng)頁(yè)。POWER BI 可以抓取具有這種特性的數據嗎?答案當然是肯定的。讓我們嘗試獲取以下音樂(lè )數據。
結構化網(wǎng)頁(yè)分析
第一步:打開(kāi)POWER BI,進(jìn)入Data Acquisition > Web,輸入URL,出現如下界面

導入數據
有兩個(gè)選項,基本和高級。今天我們只抓取第一頁(yè)數據,所以先選擇“Basic”。后面我們要抓取多頁(yè)數據的時(shí)候,會(huì )介紹“高級”選項里面的設置。
解決方案確定后,會(huì )出現一個(gè)導航器,POWER BI會(huì )自動(dòng)識別頁(yè)面上的一些表格數據,如下圖,但是我們發(fā)現都不是我們想要的結果。這里我們點(diǎn)擊“Add table using example”
導航器 1
使用示例添加表
第 2 步:構建自定義結構化數據
這時(shí)會(huì )出現如下界面。我們注意到這個(gè)界面的上半部分是網(wǎng)頁(yè)的預覽。我們可以參考這個(gè)預覽頁(yè)面進(jìn)行選擇,而頁(yè)面的下半部分是欄目。我們可以根據需要添加或刪除列。
構建自定義結構化數據

我們雙擊第一列,會(huì )出現一些POWER BI識別的條目。這時(shí)候我們選擇第一行的相冊名稱(chēng)。同樣的,我們在第二行輸入Viva la...。輸入兩行后,下一行會(huì )自動(dòng)識別我們的意圖,填入后面幾項的相冊名稱(chēng)。
智能識別
同樣的方法,我們添加列,逐列輸入歌手/發(fā)行年份、評分等數據,如下圖所示。
完整的數據采集
這里有兩點(diǎn)值得注意:
歌手、發(fā)行年份、流派等信息混合在同一欄中。我們先抓取這一列混合數據,然后進(jìn)一步梳理;以上信息為顯性信息。即頁(yè)面上可以直接看到的數據很容易抓取,我們也可以抓取通過(guò)“相冊圖片”等超鏈接加載的不可見(jiàn)數據。我們可以進(jìn)入網(wǎng)頁(yè),右擊第一個(gè)條目的圖片,點(diǎn)擊“復制圖片地址”,將其復制到圖片欄的一行中,同理復制第二個(gè)條目的圖片,圖片最后一個(gè)條目的地址,也將被自動(dòng)識別。
當我們完成采集數據后,我們會(huì )對每一列進(jìn)行重命名,方便我們后續的數據清洗。至此,我們已經(jīng)在第一頁(yè)抓取了我們想要的數據。
下期我們會(huì )繼續介紹如何批量抓取以下網(wǎng)頁(yè)的數據。
非常有效:怎樣有效防止自己的文章被采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 151 次瀏覽 ? 2022-12-12 16:30
目前,很多網(wǎng)站選擇通過(guò)采集文章內容或抄襲文章內容的方式為網(wǎng)站打造內容升級。我已經(jīng)提出了明確的建議。想認識更多的朋友可以去百度站長(cháng)工具看文章百度官方解釋。那我想和大家討論一下文章采集的危害,被抄襲了怎么辦?
網(wǎng)站的文章內容是否可以采集?
因為搜索引擎越來(lái)越智能,也越來(lái)越強調用戶(hù)體驗和附加價(jià)值,如果我們只是努力大量采集,可能會(huì )出現以下問(wèn)題。
第一,網(wǎng)站采集的內容不一定符合網(wǎng)站的主題,此類(lèi)內容會(huì )被搜索引擎判定為低質(zhì)量的垃圾內容,嚴重的還可能對網(wǎng)站進(jìn)行降級處罰.
其次,長(cháng)時(shí)間大量采集文章也會(huì )對服務(wù)器造成一定的壓力。如果使用的網(wǎng)站空間不大,有一定的可能網(wǎng)站空間內存滿(mǎn)后,無(wú)法進(jìn)行任何操作。
URL文章內容抄襲如何解決?
首先要做好網(wǎng)站的內部調整,同時(shí)要培養網(wǎng)站固定的時(shí)間更新頻率。這樣操作之后,網(wǎng)站的百度收錄就會(huì )有很大的提升。
二、本站原創(chuàng )文章內容更新后,您可以選擇使用百度站長(cháng)工具原版維護功能,每次更新文章后提交原版維護content 可以,每天原創(chuàng )維護可以投稿10篇。
三、當對方采集你的文章內容時(shí),照片也會(huì )被采集,我們可以給文章內容中的照片添加水印圖片。
我現在想,除了百度官方給文章采集網(wǎng)站的解決方案,我們可以把我們的網(wǎng)站做的更強大,這樣我們才能讓百度收錄保證做的更強大。
分享:【推薦文章】牛掰??!找到并保護采集器:真的會(huì )有很多干貨放送!
看到本文內容請不要感到意外,因為本文由Koala SEO【批量寫(xiě)SEO原創(chuàng )文章】平臺支持。使用考拉每天產(chǎn)出數萬(wàn)篇優(yōu)質(zhì)SEO文章文章!如果您還需要批量編輯SEO文章,可以進(jìn)入平臺用戶(hù)中心試用!
最近大家很關(guān)心尋找和保護采集器這條信息,也有很多網(wǎng)友向我們提問(wèn)。其實(shí)在談內容之前,我們應該先討論如何網(wǎng)站優(yōu)化原創(chuàng )內容!對于計劃單一的網(wǎng)站來(lái)說(shuō),頁(yè)面質(zhì)量真的不是重點(diǎn),他們很在意權重和瀏覽量。一個(gè)好的網(wǎng)站作品發(fā)表??在一個(gè)不好的網(wǎng)站和一個(gè)高質(zhì)量的網(wǎng)站上,最終的排名和引流效果是天壤之別!如果你想知道如何尋找和保護采集器好友,其實(shí)大家關(guān)心的也是本站的主題。本來(lái)原創(chuàng )一個(gè)可讀性好的文案是很方便的,但是這些SEO文案能得到的搜索量非常小。期待通過(guò)信息頁(yè)的布局達到流量的目的,絕對最重要的就是分批!如果一個(gè)網(wǎng)頁(yè)文章可以產(chǎn)生1次page view(每24小時(shí)),如果可以產(chǎn)生10000篇文章,那么每天的訪(fǎng)問(wèn)量可以增加10000。但是說(shuō)起來(lái)容易,其實(shí)在編輯的時(shí)候,一個(gè)人一天只能寫(xiě)30多篇,累死的時(shí)候只能寫(xiě)70篇。就算用偽原創(chuàng )軟件,最多也只有100篇!既然看到了,就不要再談尋找和保護采集器了,研究如何實(shí)現自動(dòng)生成文章吧!搜索引擎認為的自主創(chuàng )作是什么?網(wǎng)站原創(chuàng )不只是逐句原創(chuàng )編輯!在每個(gè)搜索引擎中 s程序字典,原創(chuàng )不等于沒(méi)有post重復詞。也就是說(shuō),只要我們的文案不和其他文章重疊,收錄的幾率就會(huì )大大提高。一篇優(yōu)秀的文章,充滿(mǎn)輝煌的價(jià)值,堅持相同的核心思想,只需要確認沒(méi)有雷同的段落,就說(shuō)明該文章文章仍然有很高的概率被采集搜索引擎,甚至成為引流的好文章。比如說(shuō)這個(gè)文章,你可能會(huì )通過(guò)360找到并保護采集器,最后點(diǎn)擊訪(fǎng)問(wèn)。其實(shí)我編輯的這篇文章文章是用Koala SEO Tools的批量寫(xiě)作文章軟件量產(chǎn)的!本系統的偽原創(chuàng )平臺,準確的表達應該是文章 批量軟件,三個(gè)小時(shí)可以寫(xiě)出幾千個(gè)優(yōu)秀的SEO文章,我們的網(wǎng)站權重只要足夠大,收錄率可以達到79%以上。詳細的應用步驟,個(gè)人主頁(yè)有視頻介紹和入門(mén)指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??
【本文由自由發(fā)布信息采集、編輯、發(fā)布】 查看全部
非常有效:怎樣有效防止自己的文章被采集
目前,很多網(wǎng)站選擇通過(guò)采集文章內容或抄襲文章內容的方式為網(wǎng)站打造內容升級。我已經(jīng)提出了明確的建議。想認識更多的朋友可以去百度站長(cháng)工具看文章百度官方解釋。那我想和大家討論一下文章采集的危害,被抄襲了怎么辦?
網(wǎng)站的文章內容是否可以采集?

因為搜索引擎越來(lái)越智能,也越來(lái)越強調用戶(hù)體驗和附加價(jià)值,如果我們只是努力大量采集,可能會(huì )出現以下問(wèn)題。
第一,網(wǎng)站采集的內容不一定符合網(wǎng)站的主題,此類(lèi)內容會(huì )被搜索引擎判定為低質(zhì)量的垃圾內容,嚴重的還可能對網(wǎng)站進(jìn)行降級處罰.
其次,長(cháng)時(shí)間大量采集文章也會(huì )對服務(wù)器造成一定的壓力。如果使用的網(wǎng)站空間不大,有一定的可能網(wǎng)站空間內存滿(mǎn)后,無(wú)法進(jìn)行任何操作。
URL文章內容抄襲如何解決?

首先要做好網(wǎng)站的內部調整,同時(shí)要培養網(wǎng)站固定的時(shí)間更新頻率。這樣操作之后,網(wǎng)站的百度收錄就會(huì )有很大的提升。
二、本站原創(chuàng )文章內容更新后,您可以選擇使用百度站長(cháng)工具原版維護功能,每次更新文章后提交原版維護content 可以,每天原創(chuàng )維護可以投稿10篇。
三、當對方采集你的文章內容時(shí),照片也會(huì )被采集,我們可以給文章內容中的照片添加水印圖片。
我現在想,除了百度官方給文章采集網(wǎng)站的解決方案,我們可以把我們的網(wǎng)站做的更強大,這樣我們才能讓百度收錄保證做的更強大。
分享:【推薦文章】牛掰??!找到并保護采集器:真的會(huì )有很多干貨放送!
看到本文內容請不要感到意外,因為本文由Koala SEO【批量寫(xiě)SEO原創(chuàng )文章】平臺支持。使用考拉每天產(chǎn)出數萬(wàn)篇優(yōu)質(zhì)SEO文章文章!如果您還需要批量編輯SEO文章,可以進(jìn)入平臺用戶(hù)中心試用!

最近大家很關(guān)心尋找和保護采集器這條信息,也有很多網(wǎng)友向我們提問(wèn)。其實(shí)在談內容之前,我們應該先討論如何網(wǎng)站優(yōu)化原創(chuàng )內容!對于計劃單一的網(wǎng)站來(lái)說(shuō),頁(yè)面質(zhì)量真的不是重點(diǎn),他們很在意權重和瀏覽量。一個(gè)好的網(wǎng)站作品發(fā)表??在一個(gè)不好的網(wǎng)站和一個(gè)高質(zhì)量的網(wǎng)站上,最終的排名和引流效果是天壤之別!如果你想知道如何尋找和保護采集器好友,其實(shí)大家關(guān)心的也是本站的主題。本來(lái)原創(chuàng )一個(gè)可讀性好的文案是很方便的,但是這些SEO文案能得到的搜索量非常小。期待通過(guò)信息頁(yè)的布局達到流量的目的,絕對最重要的就是分批!如果一個(gè)網(wǎng)頁(yè)文章可以產(chǎn)生1次page view(每24小時(shí)),如果可以產(chǎn)生10000篇文章,那么每天的訪(fǎng)問(wèn)量可以增加10000。但是說(shuō)起來(lái)容易,其實(shí)在編輯的時(shí)候,一個(gè)人一天只能寫(xiě)30多篇,累死的時(shí)候只能寫(xiě)70篇。就算用偽原創(chuàng )軟件,最多也只有100篇!既然看到了,就不要再談尋找和保護采集器了,研究如何實(shí)現自動(dòng)生成文章吧!搜索引擎認為的自主創(chuàng )作是什么?網(wǎng)站原創(chuàng )不只是逐句原創(chuàng )編輯!在每個(gè)搜索引擎中 s程序字典,原創(chuàng )不等于沒(méi)有post重復詞。也就是說(shuō),只要我們的文案不和其他文章重疊,收錄的幾率就會(huì )大大提高。一篇優(yōu)秀的文章,充滿(mǎn)輝煌的價(jià)值,堅持相同的核心思想,只需要確認沒(méi)有雷同的段落,就說(shuō)明該文章文章仍然有很高的概率被采集搜索引擎,甚至成為引流的好文章。比如說(shuō)這個(gè)文章,你可能會(huì )通過(guò)360找到并保護采集器,最后點(diǎn)擊訪(fǎng)問(wèn)。其實(shí)我編輯的這篇文章文章是用Koala SEO Tools的批量寫(xiě)作文章軟件量產(chǎn)的!本系統的偽原創(chuàng )平臺,準確的表達應該是文章 批量軟件,三個(gè)小時(shí)可以寫(xiě)出幾千個(gè)優(yōu)秀的SEO文章,我們的網(wǎng)站權重只要足夠大,收錄率可以達到79%以上。詳細的應用步驟,個(gè)人主頁(yè)有視頻介紹和入門(mén)指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??個(gè)人主頁(yè)有視頻介紹和新手指南,可以多試幾次!我很抱歉沒(méi)有給你一個(gè)關(guān)于如何找到和保護 采集器 的詳盡解釋?zhuān)@可能會(huì )導致我們得到很多無(wú)用的內容。但是如果你對考拉的軟件感興趣,可以打開(kāi)導航欄,讓你的頁(yè)面每天達到千萬(wàn)級的UV??赡軉??

【本文由自由發(fā)布信息采集、編輯、發(fā)布】
解密:調用鏈系列(二):解讀UAVStack中的貪吃蛇-調用鏈
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2022-12-11 00:50
前言
上一篇文章分享了調用鏈的模型設計和模型時(shí)序圖。相信大家對調用鏈都有一個(gè)整體的認識,比如:什么是調用鏈,它能做什么,整體的實(shí)現策略。
在本文章中我們繼續介紹調用鏈的服務(wù)端信息采集和服務(wù)間的上下文傳遞。
服務(wù)器信息采集
服務(wù)器端信息采集的整體流程如下圖所示。通過(guò)在應用容器(tomcat等)啟動(dòng)過(guò)程中植入切入點(diǎn),可以在應用邏輯執行前后劫持請求。
切點(diǎn)植入
在介紹切入點(diǎn)之前,我們應該對servlet容器(本文以tomcat為例)處理一個(gè)請求的大致過(guò)程有一個(gè)整體的了解。
圖片來(lái)自網(wǎng)絡(luò )
Connector接收到一個(gè)連接并轉化為請求(Request)后,會(huì )將請求傳遞給Engine的管道(Pipeline)的閥門(mén)(ValveA)。該請求將傳遞到 Engine 的管道中的 Engine Valve。然后這個(gè)request會(huì )從Engine Valve傳到一個(gè)Host pipeline,再傳到pipeline中的Host Valve。然后從Host Valve傳到一個(gè)Context pipeline,再傳到pipeline中的Context Valve。接下來(lái),請求會(huì )被傳遞到 Wrapper C 中收錄在管道中的閥門(mén) Wrapper Valve,在這里它會(huì )經(jīng)過(guò)一個(gè)過(guò)濾器鏈(Filter Chain),最后發(fā)送到一個(gè) Servlet。借助tomcat的這種架構設計,
中間件增強技術(shù)除了巧妙的利用了tomcat容器的架構設計之外,還使用了java Instrumentation(它為我們提供了在對象第一次加載時(shí)動(dòng)態(tài)修改字節碼的能力。給出詳細的解釋?zhuān)欢目梢宰孕胁橘Y料)。在UAV中,通過(guò)UAVServer對外提供各種切點(diǎn)能力。
有了中間件增強技術(shù),應用邏輯執行前后都有切點(diǎn),下一步就是在這些切點(diǎn)執行我們自己的調用鏈邏輯。
調用鏈中中間件增強技術(shù)的使用
上面介紹的中間件增強技術(shù)是一個(gè)框架,通過(guò)使用javaagent在tomcat代碼中動(dòng)態(tài)植入切點(diǎn)代碼,并以UAVServer的形式對外提供能力(具體能力后面會(huì )詳細介紹文章)。輕調用鏈的實(shí)現使用了UAVServer提供的GlobalFilterHandler能力。
GlobalFilterHandler:這里的GlobalFilterHandler是中間件增強技術(shù)中的一個(gè)能力,與傳統的過(guò)濾器無(wú)關(guān)。它對外提供四種能力:
1. doRequest:在所有應用程序處理請求之前劫持;
2. doResponse:在所有應用處理完請求后劫持;
3. BlockHandlerChain:阻塞當前handler之后的所有handler,handler在當前注冊的地方;
4. BlockFilterChain 阻塞當前Filter之后的所有Filter。
調用鏈借助GlobalFilterHandler提供的前兩個(gè)能力,實(shí)現了在應用處理請求前后執行調用鏈邏輯的功能。
輕鏈實(shí)施
具體的UML圖如下:
從UML圖中可以清楚的看到InvokeChainSupporter(調用鏈實(shí)現邏輯入口和調用鏈需要的資源初始化實(shí)現類(lèi))對中間件增強技術(shù)進(jìn)行了二次增強。它允許用戶(hù)在其中注冊不同的handler,并在handler的preCap和doCap(中間件增強技術(shù)中邏輯執行前后的pointcut術(shù)語(yǔ))方法前后動(dòng)態(tài)編織適配器,從而能夠進(jìn)行更多的定制化適配和個(gè)性化邏輯. 所有的支持者和適配器都采用了反射調用的方式,最大程度的減少了對中間件增強技術(shù)的依賴(lài)。
有了二次增強技術(shù),我們就可以開(kāi)始下面的調用鏈繪制工作了。
輕調用鏈繪制實(shí)現主要依賴(lài)于注冊在InvokeChainSupporter上的ServiceSpanInvokeChainHandler。主要繪制過(guò)程如下:
1、解析請求信息,提取調用鏈關(guān)心的信息,將解析后的信息放入上下文中;
2、通過(guò)解析出的請求頭信息進(jìn)行邏輯分流,根據不同的協(xié)議類(lèi)型進(jìn)行不同的邏輯處理;
l mq邏輯
干貨教程:招募偽原創(chuàng )文章生成器手機版(文章采集生成偽原創(chuàng )軟件)
閱讀本文提示語(yǔ):文章采集生成偽原創(chuàng )軟件,偽原創(chuàng )文章生成器軟件手機版下載,偽原創(chuàng )編寫(xiě)文章軟件
招收偽原創(chuàng )文章生成器手機版下載,2019年整合整合全網(wǎng)內容,為文章添加“原創(chuàng )文章制作” . 用戶(hù)分析:偽原創(chuàng )可以提升用戶(hù)體驗,但通篇不能為用戶(hù)提供解決問(wèn)題的建議。如果您有用戶(hù),請使用此工具的“測試資源”集合來(lái)修改現有的 文章,然后手動(dòng)測試資源是否已優(yōu)化以擴展。
如何使用 偽原創(chuàng )文章 生成器修改標題
是使用 偽原創(chuàng ) 工具獲得的 文章 技能之一。
HOW TO WRITE PIT WITH 偽原創(chuàng )文章 GENERATORS 修改標題是文章原創(chuàng )的標志。寫(xiě)偽原創(chuàng )文章時(shí),可以用原創(chuàng )的文章,把文章翻譯成中文,插入到文章中,然后加上文章 中的關(guān)鍵字描述,例如 ALT=transformer。我們這樣修正它的變化,不僅有利于用戶(hù)體驗,圖文匹配,不厭讀,而且有利于搜索引擎蜘蛛分析的原創(chuàng )靈敏度,增加被抓到的概率收錄。
第三:句子替換
同義詞替換有特殊的軟件處理,但不建議所有人使用。閱讀 文章 時(shí)將替換全文。大多數情況下不利于用戶(hù)體驗,因此禁止直接使用所謂的“軟件制造”進(jìn)行仿冒。下面舉例說(shuō)明如何替換:隨機選幾個(gè)句子替換,注意句子是不是單詞,一般在文章的第一部分,趕緊買(mǎi)源碼吧,比如,"我們公司是專(zhuān)業(yè)生產(chǎn)什么的廠(chǎng)家,品種齊全,質(zhì)量有保證。下面就帶大家了解一下它是如何工作的?!?其中一句話(huà)是“讓我們看看有什么用”。我們可以使用“您將在以下 文章 你知道什么?” 這種變化與原文的意思是一致的。它隨上下文流動(dòng),使整個(gè)文本的變化幾乎相同,這可以增加收錄的可能性。搜索引擎優(yōu)化營(yíng)銷(xiāo)推廣文章。
第四:在整個(gè)文章中添加刪除方法ecshop文章seo。
,在一個(gè)位置刪掉一兩句,在另一個(gè)位置加上自己寫(xiě)的一兩句。類(lèi)似于上面的方法。SEO 搜索類(lèi)似文章。
五:更改下單方式
更改 文章 中段落的順序,或更改段落中句子的順序,但要確保整個(gè) 文章 和整個(gè)段落是合乎邏輯且流暢的。一般來(lái)說(shuō),以上兩種方法應該結合使用。SEO文章寫(xiě)作要求
相關(guān)文章 查看全部
解密:調用鏈系列(二):解讀UAVStack中的貪吃蛇-調用鏈
前言
上一篇文章分享了調用鏈的模型設計和模型時(shí)序圖。相信大家對調用鏈都有一個(gè)整體的認識,比如:什么是調用鏈,它能做什么,整體的實(shí)現策略。
在本文章中我們繼續介紹調用鏈的服務(wù)端信息采集和服務(wù)間的上下文傳遞。
服務(wù)器信息采集
服務(wù)器端信息采集的整體流程如下圖所示。通過(guò)在應用容器(tomcat等)啟動(dòng)過(guò)程中植入切入點(diǎn),可以在應用邏輯執行前后劫持請求。
切點(diǎn)植入
在介紹切入點(diǎn)之前,我們應該對servlet容器(本文以tomcat為例)處理一個(gè)請求的大致過(guò)程有一個(gè)整體的了解。
圖片來(lái)自網(wǎng)絡(luò )

Connector接收到一個(gè)連接并轉化為請求(Request)后,會(huì )將請求傳遞給Engine的管道(Pipeline)的閥門(mén)(ValveA)。該請求將傳遞到 Engine 的管道中的 Engine Valve。然后這個(gè)request會(huì )從Engine Valve傳到一個(gè)Host pipeline,再傳到pipeline中的Host Valve。然后從Host Valve傳到一個(gè)Context pipeline,再傳到pipeline中的Context Valve。接下來(lái),請求會(huì )被傳遞到 Wrapper C 中收錄在管道中的閥門(mén) Wrapper Valve,在這里它會(huì )經(jīng)過(guò)一個(gè)過(guò)濾器鏈(Filter Chain),最后發(fā)送到一個(gè) Servlet。借助tomcat的這種架構設計,
中間件增強技術(shù)除了巧妙的利用了tomcat容器的架構設計之外,還使用了java Instrumentation(它為我們提供了在對象第一次加載時(shí)動(dòng)態(tài)修改字節碼的能力。給出詳細的解釋?zhuān)欢目梢宰孕胁橘Y料)。在UAV中,通過(guò)UAVServer對外提供各種切點(diǎn)能力。
有了中間件增強技術(shù),應用邏輯執行前后都有切點(diǎn),下一步就是在這些切點(diǎn)執行我們自己的調用鏈邏輯。
調用鏈中中間件增強技術(shù)的使用
上面介紹的中間件增強技術(shù)是一個(gè)框架,通過(guò)使用javaagent在tomcat代碼中動(dòng)態(tài)植入切點(diǎn)代碼,并以UAVServer的形式對外提供能力(具體能力后面會(huì )詳細介紹文章)。輕調用鏈的實(shí)現使用了UAVServer提供的GlobalFilterHandler能力。
GlobalFilterHandler:這里的GlobalFilterHandler是中間件增強技術(shù)中的一個(gè)能力,與傳統的過(guò)濾器無(wú)關(guān)。它對外提供四種能力:
1. doRequest:在所有應用程序處理請求之前劫持;
2. doResponse:在所有應用處理完請求后劫持;
3. BlockHandlerChain:阻塞當前handler之后的所有handler,handler在當前注冊的地方;
4. BlockFilterChain 阻塞當前Filter之后的所有Filter。

調用鏈借助GlobalFilterHandler提供的前兩個(gè)能力,實(shí)現了在應用處理請求前后執行調用鏈邏輯的功能。
輕鏈實(shí)施
具體的UML圖如下:
從UML圖中可以清楚的看到InvokeChainSupporter(調用鏈實(shí)現邏輯入口和調用鏈需要的資源初始化實(shí)現類(lèi))對中間件增強技術(shù)進(jìn)行了二次增強。它允許用戶(hù)在其中注冊不同的handler,并在handler的preCap和doCap(中間件增強技術(shù)中邏輯執行前后的pointcut術(shù)語(yǔ))方法前后動(dòng)態(tài)編織適配器,從而能夠進(jìn)行更多的定制化適配和個(gè)性化邏輯. 所有的支持者和適配器都采用了反射調用的方式,最大程度的減少了對中間件增強技術(shù)的依賴(lài)。
有了二次增強技術(shù),我們就可以開(kāi)始下面的調用鏈繪制工作了。
輕調用鏈繪制實(shí)現主要依賴(lài)于注冊在InvokeChainSupporter上的ServiceSpanInvokeChainHandler。主要繪制過(guò)程如下:
1、解析請求信息,提取調用鏈關(guān)心的信息,將解析后的信息放入上下文中;
2、通過(guò)解析出的請求頭信息進(jìn)行邏輯分流,根據不同的協(xié)議類(lèi)型進(jìn)行不同的邏輯處理;
l mq邏輯
干貨教程:招募偽原創(chuàng )文章生成器手機版(文章采集生成偽原創(chuàng )軟件)
閱讀本文提示語(yǔ):文章采集生成偽原創(chuàng )軟件,偽原創(chuàng )文章生成器軟件手機版下載,偽原創(chuàng )編寫(xiě)文章軟件
招收偽原創(chuàng )文章生成器手機版下載,2019年整合整合全網(wǎng)內容,為文章添加“原創(chuàng )文章制作” . 用戶(hù)分析:偽原創(chuàng )可以提升用戶(hù)體驗,但通篇不能為用戶(hù)提供解決問(wèn)題的建議。如果您有用戶(hù),請使用此工具的“測試資源”集合來(lái)修改現有的 文章,然后手動(dòng)測試資源是否已優(yōu)化以擴展。
如何使用 偽原創(chuàng )文章 生成器修改標題

是使用 偽原創(chuàng ) 工具獲得的 文章 技能之一。
HOW TO WRITE PIT WITH 偽原創(chuàng )文章 GENERATORS 修改標題是文章原創(chuàng )的標志。寫(xiě)偽原創(chuàng )文章時(shí),可以用原創(chuàng )的文章,把文章翻譯成中文,插入到文章中,然后加上文章 中的關(guān)鍵字描述,例如 ALT=transformer。我們這樣修正它的變化,不僅有利于用戶(hù)體驗,圖文匹配,不厭讀,而且有利于搜索引擎蜘蛛分析的原創(chuàng )靈敏度,增加被抓到的概率收錄。
第三:句子替換
同義詞替換有特殊的軟件處理,但不建議所有人使用。閱讀 文章 時(shí)將替換全文。大多數情況下不利于用戶(hù)體驗,因此禁止直接使用所謂的“軟件制造”進(jìn)行仿冒。下面舉例說(shuō)明如何替換:隨機選幾個(gè)句子替換,注意句子是不是單詞,一般在文章的第一部分,趕緊買(mǎi)源碼吧,比如,"我們公司是專(zhuān)業(yè)生產(chǎn)什么的廠(chǎng)家,品種齊全,質(zhì)量有保證。下面就帶大家了解一下它是如何工作的?!?其中一句話(huà)是“讓我們看看有什么用”。我們可以使用“您將在以下 文章 你知道什么?” 這種變化與原文的意思是一致的。它隨上下文流動(dòng),使整個(gè)文本的變化幾乎相同,這可以增加收錄的可能性。搜索引擎優(yōu)化營(yíng)銷(xiāo)推廣文章。
第四:在整個(gè)文章中添加刪除方法ecshop文章seo。

,在一個(gè)位置刪掉一兩句,在另一個(gè)位置加上自己寫(xiě)的一兩句。類(lèi)似于上面的方法。SEO 搜索類(lèi)似文章。
五:更改下單方式
更改 文章 中段落的順序,或更改段落中句子的順序,但要確保整個(gè) 文章 和整個(gè)段落是合乎邏輯且流暢的。一般來(lái)說(shuō),以上兩種方法應該結合使用。SEO文章寫(xiě)作要求
相關(guān)文章
解決方案:Skywalking Node.js 現支持 Egg 框架調用鏈追蹤
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2022-12-11 00:12
是專(zhuān)門(mén)為微服務(wù)架構和云原生架構設計的支持分布式鏈路追蹤的APM系統。Skywalking后臺通過(guò)在應用中加載探針采集應用調用鏈接信息,分析采集的調用鏈接信息,感知應用與服務(wù)的關(guān)系,并生成相應的服務(wù)指標。目前Apache Skywalking(Incubating)支持Java、.Net Core和Node.js語(yǔ)言的監控,保證多語(yǔ)言系統之間持續的分布式調用鏈路。
該探針是Skywalking為Node.js應用提供的自動(dòng)探針。它主要用于監控使用 Node.js 編寫(xiě)的服務(wù)器端應用程序。Skywalking Node.js探針已經(jīng)支持多種插件,如Http、Mysql等,Node. js probe 計劃在接下來(lái)的幾個(gè)版本中提供更多的插件。目前,Node.js 探針開(kāi)始采集支持組件或框架。如果您想支持Skywalking Node.js探針的框架或組件,可以在issue下留下框架或組件名稱(chēng)和測試demo,我們會(huì )盡量提供。支持插件,歡迎大家提出意見(jiàn)和改進(jìn)。
話(huà)不多說(shuō),展示真技術(shù)的時(shí)候到了。本次準備分為單應用和多應用兩部分,單應用測試功能,多應用主要測試跨應用調用鏈功能。
使用框架編寫(xiě),使用egg mysql插件。業(yè)務(wù)流程相對簡(jiǎn)單。主要執行流程為:Controller mdash;服務(wù)—— mysql。下面是通過(guò)Skywalking Node.js探針監控上報數據的截圖: 概覽:拓撲圖:服務(wù)視圖:應用視圖:調用鏈:Span信息:
面對跨應用場(chǎng)景,測試demo分為egg-projectA和egg-projectB兩個(gè)項目。egg-projectA項目通過(guò)http客戶(hù)端調用egg-projectB提供的服務(wù),egg-projectA和egg-projectB分別調用數據庫。一次,下圖是Skywalking UI數據截圖概覽: Topology: egg-projectA服務(wù)圖 egg-projectB服務(wù)圖 egg-projectA應用圖 egg-projectB應用圖 Trace圖 Span圖
從兩個(gè)demo效果可以看出,Skywalking Node.js探針目前支持egg框架追蹤,可以在多個(gè)egg應用之間進(jìn)行跨應用追蹤。在后續版本中,Skywalking Node.js 探針將根據社區反饋不斷完善。
介紹完demo效果,在文章結尾簡(jiǎn)單介紹一下如何安裝Node.js探針。Skywalking Node.js探針為了減少對應用系統的侵入,采用hook的方式,使得Skywalking Node.js探針的安裝非常簡(jiǎn)單,可以最大程度的做到不修改應用源碼。安裝 Skywalking Node.js 探針只需兩個(gè)簡(jiǎn)單的步驟: 第 1 步:下載探針
$npminstallskywalking-nodejs--save 第二步:安裝探針注意:在應用程序啟動(dòng)入口的第一行,添加如下配置:
如果您對Skywalking Node.js探針的使用有任何疑問(wèn),可以通過(guò)以下方式聯(lián)系我們: 1. 提交issue2。發(fā)送電子郵件至
推薦文章:源碼面前沒(méi)有秘密,推薦 9 個(gè)帶你閱讀源碼的開(kāi)源項目
在文章開(kāi)始之前,請大家回憶一下日常開(kāi)發(fā)過(guò)程中使用或依賴(lài)了哪些開(kāi)源項目?有沒(méi)有發(fā)現開(kāi)源項目已經(jīng)完全融入到日常開(kāi)發(fā)中了!
現在大部分程序員的技術(shù)棧和工具箱都或多或少有開(kāi)源項目:大到操作系統,大到小巧精致的圖標。優(yōu)秀的開(kāi)源項目就像是能讓程序員立于不敗之地的“神器”。用一把鋒利的刀把爛攤子剪掉。但強大的“神器”也帶來(lái)了一些問(wèn)題。如果“神器”使用不熟練或者姿勢不對,就會(huì )出現bug,出現難以解決的問(wèn)題。這時(shí)候常見(jiàn)的解決方法是:
要求搜索引擎檢查文檔并提出問(wèn)題
如果以上方法都不能解決問(wèn)題,那只能自己閱讀源碼,尋找解決問(wèn)題的辦法。這條路雖然漫長(cháng)艱辛,但源碼面前沒(méi)有秘密。同時(shí),通過(guò)源碼的體驗,你一定會(huì )變得更強大,而有時(shí)候你只能慢慢走才能發(fā)現之前錯過(guò)的“風(fēng)景”。
今天HelloGitHub帶來(lái)了幾個(gè)知名開(kāi)源項目的源碼注釋和源碼閱讀筆記,帶你閱讀源碼的技巧,點(diǎn)亮閱讀源碼的技巧。這些項目涵蓋:C、C++、Java、Go、Python、JavaScript 編程語(yǔ)言,總的來(lái)說(shuō)總有一款適合你。
雖然有些項目已經(jīng)很久沒(méi)有更新了,讀過(guò)的版本已經(jīng)過(guò)時(shí)了,但是里面的知識還是閃閃發(fā)光的!最后還得帶著(zhù)問(wèn)題去源碼里找答案,不然很難堅持下去。
深入源碼掌握核心技術(shù)不能止步于應用層面。
走得更慢,走得更深。C語(yǔ)言一、redis-3.0-注解(Redis)
星數:7.9k|語(yǔ)言:C
Redis 是一個(gè)內存中、分布式、可選的持久化、開(kāi)源 KV(鍵值)存儲數據庫。
本項目為Redis 3.0版本源碼注釋。
/huangz1990/redis-3.0-annotated2, linux-0.12 (Linux)
Linux 是一種開(kāi)源的類(lèi) UNIX 操作系統。
該項目是 Linux 內核 0.12 版的完整注釋版本。
先在GitHub上找到別人上傳的老版本(0.11)注解源碼,搜索了一下,找到了原作者趙炯老師的網(wǎng)站。第一個(gè)版本于 2003 年發(fā)布,最后一次更新是在 2021 年,至今已維護了 18 年。這個(gè)閱讀Linux源碼的項目雖然沒(méi)有上傳到GitHub,但是內容、評論的源碼、配套的工具都是開(kāi)源的。
/精簡(jiǎn)版/
PDF: /download/CLK-5.0.1-WithCover.pdfC++3, reading-source-code-of-leveldb-1.23 (LevelDB)
星數:15|語(yǔ)言:C++
LevelDB 是由 Google 開(kāi)源的持久化 KV(鍵值)存儲數據庫。
本項目為L(cháng)evelDB 1.23版本源碼閱讀筆記,內容包括:DB運行過(guò)程、STable等文件格式分析及Compaction過(guò)程。
/SmartKeyerror/reading-source-code-of-leveldb-1.23Java4, spring-analysis (Spring)
星數:10k|語(yǔ)言:Java
Spring框架是一個(gè)開(kāi)源的Java全棧應用框架和控制反轉容器實(shí)現,多用于構建企業(yè)級Web應用。
本項目是Spring 4.3.18版本的源碼閱讀筆記,包括源碼注釋、類(lèi)圖、文字說(shuō)明。
/seaswalker/spring-analysis5, learn_netty_source_code (Netty)
星數:1k|語(yǔ)言:Java
Netty 是一個(gè) Java 異步事件驅動(dòng)的網(wǎng)絡(luò )應用程序框架。
本項目是Netty 4.0.33版本源碼分析教程。
/yongshun/learn_netty_source_codeGo6, grpc-read (gRPC)
星數:154|語(yǔ)言:Go
gRPC是由Google發(fā)起的開(kāi)源RPC系統,基于HTTP/2協(xié)議傳輸,使用Protocol Buffers作為接口描述語(yǔ)言。
本項目是gRPC Go版本的實(shí)現:grpc-go源碼解讀。
/lubanproj/grpc-readPython7,帶注釋的 py-projects
星數:312|語(yǔ)言:Python
本項目收錄各種Python web框架的源碼解讀,包括Flask、Sanic、web.py等項目的源碼注釋。
/hhstore/annotated-py-projectsJavaScript8, learnVue (Vue.js)
星數:11k|語(yǔ)言:JavaScript
Vue.js 是一個(gè)用于創(chuàng )建用戶(hù)界面的開(kāi)源 JavaScript 框架。
本項目收錄Vue.js源碼注釋和筆者在學(xué)習Vue.js源碼過(guò)程中的一些心得和收獲。
/answershuto/learnVue9, 反應插圖系列 (React)
Star數:1.3k|語(yǔ)言:TypeScript
React 是一個(gè)用于構建用戶(hù)界面的聲明式、高效且靈活的 JavaScript 庫。
本項目是對react@17.0.2的源碼進(jìn)行圖解解讀,收錄大量圖片。
/7kms/react-illustration-series 最后
以上就是本文的全部?jì)热?。希望今天推薦的開(kāi)源項目,能幫助大家打開(kāi)閱讀源碼、變強的大門(mén)。
這里是@HelloGithub,用于在 GitHub 上分享有趣的入門(mén)級開(kāi)源項目 查看全部
解決方案:Skywalking Node.js 現支持 Egg 框架調用鏈追蹤
是專(zhuān)門(mén)為微服務(wù)架構和云原生架構設計的支持分布式鏈路追蹤的APM系統。Skywalking后臺通過(guò)在應用中加載探針采集應用調用鏈接信息,分析采集的調用鏈接信息,感知應用與服務(wù)的關(guān)系,并生成相應的服務(wù)指標。目前Apache Skywalking(Incubating)支持Java、.Net Core和Node.js語(yǔ)言的監控,保證多語(yǔ)言系統之間持續的分布式調用鏈路。
該探針是Skywalking為Node.js應用提供的自動(dòng)探針。它主要用于監控使用 Node.js 編寫(xiě)的服務(wù)器端應用程序。Skywalking Node.js探針已經(jīng)支持多種插件,如Http、Mysql等,Node. js probe 計劃在接下來(lái)的幾個(gè)版本中提供更多的插件。目前,Node.js 探針開(kāi)始采集支持組件或框架。如果您想支持Skywalking Node.js探針的框架或組件,可以在issue下留下框架或組件名稱(chēng)和測試demo,我們會(huì )盡量提供。支持插件,歡迎大家提出意見(jiàn)和改進(jìn)。
話(huà)不多說(shuō),展示真技術(shù)的時(shí)候到了。本次準備分為單應用和多應用兩部分,單應用測試功能,多應用主要測試跨應用調用鏈功能。

使用框架編寫(xiě),使用egg mysql插件。業(yè)務(wù)流程相對簡(jiǎn)單。主要執行流程為:Controller mdash;服務(wù)—— mysql。下面是通過(guò)Skywalking Node.js探針監控上報數據的截圖: 概覽:拓撲圖:服務(wù)視圖:應用視圖:調用鏈:Span信息:
面對跨應用場(chǎng)景,測試demo分為egg-projectA和egg-projectB兩個(gè)項目。egg-projectA項目通過(guò)http客戶(hù)端調用egg-projectB提供的服務(wù),egg-projectA和egg-projectB分別調用數據庫。一次,下圖是Skywalking UI數據截圖概覽: Topology: egg-projectA服務(wù)圖 egg-projectB服務(wù)圖 egg-projectA應用圖 egg-projectB應用圖 Trace圖 Span圖
從兩個(gè)demo效果可以看出,Skywalking Node.js探針目前支持egg框架追蹤,可以在多個(gè)egg應用之間進(jìn)行跨應用追蹤。在后續版本中,Skywalking Node.js 探針將根據社區反饋不斷完善。

介紹完demo效果,在文章結尾簡(jiǎn)單介紹一下如何安裝Node.js探針。Skywalking Node.js探針為了減少對應用系統的侵入,采用hook的方式,使得Skywalking Node.js探針的安裝非常簡(jiǎn)單,可以最大程度的做到不修改應用源碼。安裝 Skywalking Node.js 探針只需兩個(gè)簡(jiǎn)單的步驟: 第 1 步:下載探針
$npminstallskywalking-nodejs--save 第二步:安裝探針注意:在應用程序啟動(dòng)入口的第一行,添加如下配置:
如果您對Skywalking Node.js探針的使用有任何疑問(wèn),可以通過(guò)以下方式聯(lián)系我們: 1. 提交issue2。發(fā)送電子郵件至
推薦文章:源碼面前沒(méi)有秘密,推薦 9 個(gè)帶你閱讀源碼的開(kāi)源項目
在文章開(kāi)始之前,請大家回憶一下日常開(kāi)發(fā)過(guò)程中使用或依賴(lài)了哪些開(kāi)源項目?有沒(méi)有發(fā)現開(kāi)源項目已經(jīng)完全融入到日常開(kāi)發(fā)中了!
現在大部分程序員的技術(shù)棧和工具箱都或多或少有開(kāi)源項目:大到操作系統,大到小巧精致的圖標。優(yōu)秀的開(kāi)源項目就像是能讓程序員立于不敗之地的“神器”。用一把鋒利的刀把爛攤子剪掉。但強大的“神器”也帶來(lái)了一些問(wèn)題。如果“神器”使用不熟練或者姿勢不對,就會(huì )出現bug,出現難以解決的問(wèn)題。這時(shí)候常見(jiàn)的解決方法是:
要求搜索引擎檢查文檔并提出問(wèn)題
如果以上方法都不能解決問(wèn)題,那只能自己閱讀源碼,尋找解決問(wèn)題的辦法。這條路雖然漫長(cháng)艱辛,但源碼面前沒(méi)有秘密。同時(shí),通過(guò)源碼的體驗,你一定會(huì )變得更強大,而有時(shí)候你只能慢慢走才能發(fā)現之前錯過(guò)的“風(fēng)景”。
今天HelloGitHub帶來(lái)了幾個(gè)知名開(kāi)源項目的源碼注釋和源碼閱讀筆記,帶你閱讀源碼的技巧,點(diǎn)亮閱讀源碼的技巧。這些項目涵蓋:C、C++、Java、Go、Python、JavaScript 編程語(yǔ)言,總的來(lái)說(shuō)總有一款適合你。
雖然有些項目已經(jīng)很久沒(méi)有更新了,讀過(guò)的版本已經(jīng)過(guò)時(shí)了,但是里面的知識還是閃閃發(fā)光的!最后還得帶著(zhù)問(wèn)題去源碼里找答案,不然很難堅持下去。
深入源碼掌握核心技術(shù)不能止步于應用層面。
走得更慢,走得更深。C語(yǔ)言一、redis-3.0-注解(Redis)
星數:7.9k|語(yǔ)言:C
Redis 是一個(gè)內存中、分布式、可選的持久化、開(kāi)源 KV(鍵值)存儲數據庫。
本項目為Redis 3.0版本源碼注釋。
/huangz1990/redis-3.0-annotated2, linux-0.12 (Linux)
Linux 是一種開(kāi)源的類(lèi) UNIX 操作系統。
該項目是 Linux 內核 0.12 版的完整注釋版本。
先在GitHub上找到別人上傳的老版本(0.11)注解源碼,搜索了一下,找到了原作者趙炯老師的網(wǎng)站。第一個(gè)版本于 2003 年發(fā)布,最后一次更新是在 2021 年,至今已維護了 18 年。這個(gè)閱讀Linux源碼的項目雖然沒(méi)有上傳到GitHub,但是內容、評論的源碼、配套的工具都是開(kāi)源的。
/精簡(jiǎn)版/

PDF: /download/CLK-5.0.1-WithCover.pdfC++3, reading-source-code-of-leveldb-1.23 (LevelDB)
星數:15|語(yǔ)言:C++
LevelDB 是由 Google 開(kāi)源的持久化 KV(鍵值)存儲數據庫。
本項目為L(cháng)evelDB 1.23版本源碼閱讀筆記,內容包括:DB運行過(guò)程、STable等文件格式分析及Compaction過(guò)程。
/SmartKeyerror/reading-source-code-of-leveldb-1.23Java4, spring-analysis (Spring)
星數:10k|語(yǔ)言:Java
Spring框架是一個(gè)開(kāi)源的Java全棧應用框架和控制反轉容器實(shí)現,多用于構建企業(yè)級Web應用。
本項目是Spring 4.3.18版本的源碼閱讀筆記,包括源碼注釋、類(lèi)圖、文字說(shuō)明。
/seaswalker/spring-analysis5, learn_netty_source_code (Netty)
星數:1k|語(yǔ)言:Java
Netty 是一個(gè) Java 異步事件驅動(dòng)的網(wǎng)絡(luò )應用程序框架。
本項目是Netty 4.0.33版本源碼分析教程。
/yongshun/learn_netty_source_codeGo6, grpc-read (gRPC)
星數:154|語(yǔ)言:Go
gRPC是由Google發(fā)起的開(kāi)源RPC系統,基于HTTP/2協(xié)議傳輸,使用Protocol Buffers作為接口描述語(yǔ)言。
本項目是gRPC Go版本的實(shí)現:grpc-go源碼解讀。

/lubanproj/grpc-readPython7,帶注釋的 py-projects
星數:312|語(yǔ)言:Python
本項目收錄各種Python web框架的源碼解讀,包括Flask、Sanic、web.py等項目的源碼注釋。
/hhstore/annotated-py-projectsJavaScript8, learnVue (Vue.js)
星數:11k|語(yǔ)言:JavaScript
Vue.js 是一個(gè)用于創(chuàng )建用戶(hù)界面的開(kāi)源 JavaScript 框架。
本項目收錄Vue.js源碼注釋和筆者在學(xué)習Vue.js源碼過(guò)程中的一些心得和收獲。
/answershuto/learnVue9, 反應插圖系列 (React)
Star數:1.3k|語(yǔ)言:TypeScript
React 是一個(gè)用于構建用戶(hù)界面的聲明式、高效且靈活的 JavaScript 庫。
本項目是對react@17.0.2的源碼進(jìn)行圖解解讀,收錄大量圖片。
/7kms/react-illustration-series 最后
以上就是本文的全部?jì)热?。希望今天推薦的開(kāi)源項目,能幫助大家打開(kāi)閱讀源碼、變強的大門(mén)。
這里是@HelloGithub,用于在 GitHub 上分享有趣的入門(mén)級開(kāi)源項目
可怕:牛逼,看完它,你就會(huì )全網(wǎng)爬蟲(chóng)了
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 118 次瀏覽 ? 2022-12-09 20:45
在這個(gè)時(shí)代,如果不懂得使用爬蟲(chóng)技術(shù),是跟不上時(shí)代的。今天給大家推薦的開(kāi)源項目是關(guān)于爬蟲(chóng)的。
本項目是用Python模擬登陸一些大型的網(wǎng)站,以及一些簡(jiǎn)單的爬蟲(chóng)。
本開(kāi)源項目采集了一些主要的網(wǎng)站登錄方式,以及一些網(wǎng)站爬蟲(chóng)程序,有的通過(guò)selenium登錄,有的通過(guò)抓包直接模擬登錄,有的使用scrapy。希望對小白有所幫助,本項目用于研究分享各大網(wǎng)站的模擬登錄方式和爬蟲(chóng)程序。
這個(gè)開(kāi)源項目是:awesome-python-login-model。
本項目使用的技術(shù)和爬蟲(chóng)方式為:模擬登錄基本采用直接登錄或者selenium+webdriver的方式,有些網(wǎng)站直接登錄難度很大,比如空間,bilibili等。如果你使用硒,你會(huì )相對容易。
雖然登錄時(shí)使用了selenium,但是為了效率,我們可以維護登錄后獲取的cookie,然后調用requests或者scrapy進(jìn)行數據采集,這樣數據采集的速度可以得到保證.
目前已經(jīng)完成的網(wǎng)站有:
超級爽,如果你對爬蟲(chóng)感興趣,可以關(guān)注一下這個(gè)開(kāi)源庫。
開(kāi)源項目地址:
給力:感覺(jué)新站收錄不夠快?這還真就不能著(zhù)急
幾乎所有的新網(wǎng)站都有沙盒期。實(shí)際上,這是網(wǎng)站的評估期。每個(gè)搜索引擎都可以使用沙盒效果?;旧?,它是針對新站點(diǎn)的。時(shí)間長(cháng)短不一樣。搜索引擎這樣做是為了防止大量垃圾站被快速收錄,特別是打擊一些黑帽快速建站、收錄套現作弊手段。由于沙盒期的存在,網(wǎng)站提交收錄的狀態(tài)不會(huì )立即出現,一些seo優(yōu)化人員對網(wǎng)站收錄的期望是可以理解的,但是每個(gè)網(wǎng)站的情況不同,所以搜索引擎給出的評估期也是不同的。不同的。
那么,為了加快新站的收錄速度,在提交網(wǎng)站的時(shí)候應該注意些什么呢?
做好百度自動(dòng)提交和主動(dòng)提交
如果你剛上線(xiàn),想被搜索引擎快速抓取,提交鏈接到各大搜索引擎站長(cháng)平臺,讓蜘蛛知道你的網(wǎng)站上線(xiàn)了,它就會(huì )過(guò)來(lái)抓取你的網(wǎng)站。
對于蜘蛛來(lái)說(shuō),頁(yè)面權重越高,可信度越高,爬取的頻率就越高,比如網(wǎng)站的首頁(yè)和內頁(yè)。蜘蛛先爬取網(wǎng)站首頁(yè),因為首頁(yè)權重較高,大部分鏈接指向首頁(yè)。然后通過(guò)首頁(yè)爬取網(wǎng)站的內頁(yè),并不是所有的內頁(yè)蜘蛛都會(huì )爬。
百度自動(dòng)提交和主動(dòng)提交可以加快百度蜘蛛對網(wǎng)站新內容的抓取和抓取。當然,這并不意味著(zhù)網(wǎng)站的新內容一定會(huì )被百度收錄。關(guān)鍵是看內容的質(zhì)量。如果內容質(zhì)量高,那么有了百度的自動(dòng)提交和主動(dòng)提交,新站的內容被收錄的可能性就更大。百度收錄。
補充網(wǎng)站內容,注意更新頻率
如果蜘蛛爬到網(wǎng)站發(fā)現沒(méi)有內容,就會(huì )降低爬取的頻率。而且,新站一定要注意更新頻率。每天最好更新3-5篇文章,文章質(zhì)量一定要高,最好是原創(chuàng )。無(wú)法從新站點(diǎn)開(kāi)始采集
。搜索引擎可以直接識別當前的收錄內容,一些高權重的網(wǎng)站收錄、收錄、排名沒(méi)有任何問(wèn)題,因為對于老網(wǎng)站收錄,搜索引擎更傾向于收錄的目的是提高用戶(hù)的使用體驗.
由于新站沙盒期是一個(gè)信用積累的過(guò)程,無(wú)論是每天更新的文章數量比較統一,還是內容定期更新,比如按照頻率由少到多的更新,都會(huì )給搜索引擎一個(gè)逐漸走向常規印象的網(wǎng)站,當然網(wǎng)站的更新不僅僅是內容,還有外部鏈接的更新。我們建議最好在建站初期做一批高權重的外鏈,以軟文的形式發(fā)布,以提高網(wǎng)站的信任度。
收錄后定期維護網(wǎng)站
定期監控網(wǎng)站的收錄、排名,再對頁(yè)面進(jìn)行排名,監控流量大小,是否有轉化,沒(méi)有轉化咨詢(xún)。通過(guò)iis日志可以看到蜘蛛爬取了哪些內容。iis日志包括百度蜘蛛等。通過(guò)分析iis日志,我們可以得到蜘蛛的類(lèi)型、爬取時(shí)間、爬取的頁(yè)面、爬取內容的大小以及返回的頁(yè)面代碼。不同的代碼表示不同的爬行情況。根據網(wǎng)站的不同情況,檢查頁(yè)面是否存在問(wèn)題,然后進(jìn)行針對性的優(yōu)化。
網(wǎng)站優(yōu)化是一個(gè)長(cháng)期的過(guò)程。這個(gè)階段在新站收錄之前就開(kāi)始了,所以在新站上線(xiàn)之前不要急于求成。一定要按部就班,循序漸進(jìn),不僅是為了搜索引擎百度,也是為了用戶(hù),雙管齊下。返回搜狐查看更多 查看全部
可怕:牛逼,看完它,你就會(huì )全網(wǎng)爬蟲(chóng)了
在這個(gè)時(shí)代,如果不懂得使用爬蟲(chóng)技術(shù),是跟不上時(shí)代的。今天給大家推薦的開(kāi)源項目是關(guān)于爬蟲(chóng)的。
本項目是用Python模擬登陸一些大型的網(wǎng)站,以及一些簡(jiǎn)單的爬蟲(chóng)。
本開(kāi)源項目采集了一些主要的網(wǎng)站登錄方式,以及一些網(wǎng)站爬蟲(chóng)程序,有的通過(guò)selenium登錄,有的通過(guò)抓包直接模擬登錄,有的使用scrapy。希望對小白有所幫助,本項目用于研究分享各大網(wǎng)站的模擬登錄方式和爬蟲(chóng)程序。

這個(gè)開(kāi)源項目是:awesome-python-login-model。
本項目使用的技術(shù)和爬蟲(chóng)方式為:模擬登錄基本采用直接登錄或者selenium+webdriver的方式,有些網(wǎng)站直接登錄難度很大,比如空間,bilibili等。如果你使用硒,你會(huì )相對容易。
雖然登錄時(shí)使用了selenium,但是為了效率,我們可以維護登錄后獲取的cookie,然后調用requests或者scrapy進(jìn)行數據采集,這樣數據采集的速度可以得到保證.
目前已經(jīng)完成的網(wǎng)站有:

超級爽,如果你對爬蟲(chóng)感興趣,可以關(guān)注一下這個(gè)開(kāi)源庫。
開(kāi)源項目地址:
給力:感覺(jué)新站收錄不夠快?這還真就不能著(zhù)急
幾乎所有的新網(wǎng)站都有沙盒期。實(shí)際上,這是網(wǎng)站的評估期。每個(gè)搜索引擎都可以使用沙盒效果?;旧?,它是針對新站點(diǎn)的。時(shí)間長(cháng)短不一樣。搜索引擎這樣做是為了防止大量垃圾站被快速收錄,特別是打擊一些黑帽快速建站、收錄套現作弊手段。由于沙盒期的存在,網(wǎng)站提交收錄的狀態(tài)不會(huì )立即出現,一些seo優(yōu)化人員對網(wǎng)站收錄的期望是可以理解的,但是每個(gè)網(wǎng)站的情況不同,所以搜索引擎給出的評估期也是不同的。不同的。
那么,為了加快新站的收錄速度,在提交網(wǎng)站的時(shí)候應該注意些什么呢?
做好百度自動(dòng)提交和主動(dòng)提交

如果你剛上線(xiàn),想被搜索引擎快速抓取,提交鏈接到各大搜索引擎站長(cháng)平臺,讓蜘蛛知道你的網(wǎng)站上線(xiàn)了,它就會(huì )過(guò)來(lái)抓取你的網(wǎng)站。
對于蜘蛛來(lái)說(shuō),頁(yè)面權重越高,可信度越高,爬取的頻率就越高,比如網(wǎng)站的首頁(yè)和內頁(yè)。蜘蛛先爬取網(wǎng)站首頁(yè),因為首頁(yè)權重較高,大部分鏈接指向首頁(yè)。然后通過(guò)首頁(yè)爬取網(wǎng)站的內頁(yè),并不是所有的內頁(yè)蜘蛛都會(huì )爬。
百度自動(dòng)提交和主動(dòng)提交可以加快百度蜘蛛對網(wǎng)站新內容的抓取和抓取。當然,這并不意味著(zhù)網(wǎng)站的新內容一定會(huì )被百度收錄。關(guān)鍵是看內容的質(zhì)量。如果內容質(zhì)量高,那么有了百度的自動(dòng)提交和主動(dòng)提交,新站的內容被收錄的可能性就更大。百度收錄。
補充網(wǎng)站內容,注意更新頻率
如果蜘蛛爬到網(wǎng)站發(fā)現沒(méi)有內容,就會(huì )降低爬取的頻率。而且,新站一定要注意更新頻率。每天最好更新3-5篇文章,文章質(zhì)量一定要高,最好是原創(chuàng )。無(wú)法從新站點(diǎn)開(kāi)始采集
。搜索引擎可以直接識別當前的收錄內容,一些高權重的網(wǎng)站收錄、收錄、排名沒(méi)有任何問(wèn)題,因為對于老網(wǎng)站收錄,搜索引擎更傾向于收錄的目的是提高用戶(hù)的使用體驗.

由于新站沙盒期是一個(gè)信用積累的過(guò)程,無(wú)論是每天更新的文章數量比較統一,還是內容定期更新,比如按照頻率由少到多的更新,都會(huì )給搜索引擎一個(gè)逐漸走向常規印象的網(wǎng)站,當然網(wǎng)站的更新不僅僅是內容,還有外部鏈接的更新。我們建議最好在建站初期做一批高權重的外鏈,以軟文的形式發(fā)布,以提高網(wǎng)站的信任度。
收錄后定期維護網(wǎng)站
定期監控網(wǎng)站的收錄、排名,再對頁(yè)面進(jìn)行排名,監控流量大小,是否有轉化,沒(méi)有轉化咨詢(xún)。通過(guò)iis日志可以看到蜘蛛爬取了哪些內容。iis日志包括百度蜘蛛等。通過(guò)分析iis日志,我們可以得到蜘蛛的類(lèi)型、爬取時(shí)間、爬取的頁(yè)面、爬取內容的大小以及返回的頁(yè)面代碼。不同的代碼表示不同的爬行情況。根據網(wǎng)站的不同情況,檢查頁(yè)面是否存在問(wèn)題,然后進(jìn)行針對性的優(yōu)化。
網(wǎng)站優(yōu)化是一個(gè)長(cháng)期的過(guò)程。這個(gè)階段在新站收錄之前就開(kāi)始了,所以在新站上線(xiàn)之前不要急于求成。一定要按部就班,循序漸進(jìn),不僅是為了搜索引擎百度,也是為了用戶(hù),雙管齊下。返回搜狐查看更多
解決方案:Dubbo原理解析-監控
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 131 次瀏覽 ? 2022-12-09 07:27
在Dubbo發(fā)布代碼中,自帶了一個(gè)簡(jiǎn)單的監控中心實(shí)現。對于一般的小型企業(yè)來(lái)說(shuō),這個(gè)監控中心應該可以滿(mǎn)足需求。對于那些業(yè)務(wù)量大的大公司,一般都有自己的監控中心,監控中心的功能比較豐富,比如常用的報警短信通知等等。本章講解分析,讓讀者了解一般的監控中心實(shí)現,也讓有自己接入監控中心需求的人知道如何集成自己的監控中心實(shí)現。先從dubbo自帶的監控中心說(shuō)起。
監控中心
1.啟動(dòng)監控中心,我們先看一下dubbo的屬性文件
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
相比provider和consumer,registry和jetty容器啟動(dòng)注冊中心更多
它們都是基于dubbo的spi擴展機制。
SpringContainer容器啟動(dòng)就是加載classpath*:META-INF/spring/*.xml spring的配置文件
"monitorService" class="com.alibaba.dubbo.monitor.simple.SimpleMonitorService">
"statisticsDirectory" value="${dubbo.statistics.directory}"/>
"chartsDirectory" value="${dubbo.charts.directory}"/>
"${dubbo.application.name}"owner="${dubbo.application.owner}"/>
"${dubbo.registry.address}"/>
"dubbo"port="${dubbo.protocol.port}"/>
"com.alibaba.dubbo.monitor.MonitorService"ref="monitorService"delay="-1"/>
"registryService" interface="com.alibaba.dubbo.registry.RegistryService"/>
2.簡(jiǎn)單監控服務(wù)
監控中心配置監控服務(wù)SimpleMonitorService的實(shí)現,作為一個(gè)普通的dubbo服務(wù)暴露給注冊中心,供服務(wù)提供者和服務(wù)消費者調用,并將服務(wù)提供者和服務(wù)消費者的調用數據保存到監控中心.
監控服務(wù)接口定義
publicinterfaceMonitorService {
/**
*監控數據采集。
* 1.支持調用統計:count://host/interface?application=foo&method=foo&provider=10.20.153.11:20880&success=12&failure=2&elapsed=135423423
* 1.1host,application,interface,group,version,method記錄監控源主機,應用,接口,方法信息。
* 1.2 如果是消費者發(fā)送的數據,則添加提供者地址參數,否則添加源消費者地址參數。
* 1.3 success,faulure,elapsed records from last 采集,調用成功次數,調用失敗次數,調用成功總耗時(shí),平均耗時(shí)除以總耗時(shí)成功調用的次數。
*
*@paramstatistics
*/
voidcollect(網(wǎng)址統計);
/**
*監控數據查詢(xún)。
* 1.支持按天查詢(xún):count://host/interface?application=foo&method=foo&side=provider&view=chart&date=2012-07-03
* 1.1 host, application, interface, group, version, method查詢(xún)host,application,interface,method的匹配條件,缺失條件代表全部,host用0.0.0.0代表全部。
* 1.2 side=consumer,provider 查詢(xún)哪一端采集數據被調用,默認兩者都查詢(xún)。
* 1.3 默認為view=summary,返回全天的匯總信息,支持view=chart,表示返回全天的趨勢圖圖片的URL地址,可以展示在其他嵌入的頁(yè)面上系統。
* 1.4 date=2012-07-03 指定查詢(xún)數據的日期,默認為今天。
*
*@paramquery
*@returnstatistics
*/
列表查找(URL查詢(xún));
}
注:查找在開(kāi)源過(guò)程中可能依賴(lài)阿里的系統,沒(méi)有具體實(shí)現。如果需要這個(gè)功能,需要根據接口定義自己實(shí)現
MonitorService的dubbo默認實(shí)現了SimpleMonitorService
遠程調用Collect方法后,將數據url(傳過(guò)來(lái)的url收錄監控需要的數據)保存在一個(gè)阻塞隊列BlockingQueue中
啟動(dòng)定時(shí)任務(wù)記錄統計日志到本地,
字符串文件名=${user.home}/monitor/statistics
+"/"+天
+"/"+統計。獲取服務(wù)接口()
+"/"+統計。獲取參數(方法)
+"/"+消費者
+"/"+ 供應商
+"/"+ 輸入 +"."+ 鍵
這是文件在本地存儲的格式
文件內容保存如圖,保存方法比較耗時(shí)
3.啟動(dòng)定時(shí)任務(wù),使用JFreeeChart繪制圖表并保存路徑
${user.home}\monitor\charts\date\interfaceName\methodName
生成監控數據
注冊中心對外暴露了MonitorService服務(wù)。誰(shuí)調用的,監控中心的數據來(lái)自哪里?下面看看服務(wù)提供者和服務(wù)的消費方式是如何介入監控中心的。
在服務(wù)提供者和消費者的dubbo配置中添加如下配置
通過(guò)注冊表
或直接連接
在構建服務(wù)的調用鏈時(shí),有上述基于監控的擴展。下面我們來(lái)看看這個(gè)類(lèi)。
@Activate(group = {Constants.PROVIDER, Constants.CONSUMER})
//這個(gè)過(guò)濾器在服務(wù)提供者和服務(wù)消費者應用中被激活,即起作用
公共類(lèi) MonitorFilter 實(shí)現 Filter {
私人監視器工廠(chǎng)監視器工廠(chǎng);
公共結果調用(Invokerinvoker,調用調用)拋出 RpcException {
if(invoker.getUrl().hasParameter(Constants.MONITOR_KEY)) {
//有備注監控中心處理
1.獲取調用者的調用上下文
2.記錄開(kāi)始時(shí)間戳
3.并發(fā)數加一
嘗試 {
4.調用調用鏈中的下一步
5. 采集來(lái)電信息
} 最后 {
6.并發(fā)數減一
}
} 別的 {
//沒(méi)有配置監控中心,直接調用
返回 invoker.inovke(調用);
}
}
關(guān)于上述第 5 點(diǎn)的信息 采集
1.計算調用耗時(shí)
2.獲取并發(fā)數
3.獲取服務(wù)名稱(chēng)
4.獲取方法名
5.判斷是服務(wù)消費者還是服務(wù)提供者監聽(tīng)
6.從工廠(chǎng)類(lèi)monitorFactory.getMonitor(監控url)獲取DubboMonitor對象,
構造Url調用監控中心服務(wù),url收錄監控中心需要的監控信息
monitor.collect(newURL(常量.COUNT_PROTOCOL,
NetUtils.getLocalHost(), 本地端口,
服務(wù)+“/”+方法,
監控服務(wù)。申請,申請,
監控服務(wù)。界面、服務(wù)、
MonitorService.METHOD,方法,
遠程鍵,遠程值,
錯誤?MonitorService.FAILURE:MonitorService.SUCCESS,“1”,
MonitorService.ELAPSED, String.valueOf(elapsed),
MonitorService.CONCURRENT,String.valueOf(并發(fā)),
Constants.INPUT_KEY,輸入,
常數。OUTPUT_KEY, 輸出));
DubboMonitor是對調用監控中心的服務(wù)的封裝。之所以不直接調用監控中心,而是通過(guò)DubboMonitor來(lái)調用,是因為監控是一個(gè)附加功能,不應該影響主鏈路,不應該破壞主鏈路的新性能。DubboMonitor采集收到數據后,通過(guò)任務(wù)定時(shí)調用監控中心服務(wù),將數據提交給監控中心。
注冊表容器
監控中心指的是注冊中心對外暴露的RegistryService服務(wù),主要被下面的RegistryContainer使用。
RegistryContainer主要從注冊中心采集服務(wù)、組、版本信息,并在注冊中心數據發(fā)生變化時(shí)注冊回調以更新監控中心。
我們看一下RegistryContainer的start方法流程:
1.通過(guò)SpringContainer獲取之前初始化的RegistryService,獲取注冊中心的遠程代理服務(wù)
2、構造訂閱注冊中心數據的url,可以看到下面的url都是訂閱服務(wù)提供者和服務(wù)消費者的服務(wù)
subscribeUrl =newURL(Constants.ADMIN_PROTOCOL, NetUtils.getLocalHost(), 0,"",
Constants.INTERFACE_KEY, Constants.ANY_VALUE, //所有服務(wù)
Constants.GROUP_KEY, Constants.ANY_VALUE, //所有組
Constants.VERSION_KEY, Constants.ANY_VALUE, //所有版本
Constants.CLASSIFIER_KEY, Constants.ANY_VALUE, //所有類(lèi)別
Constants.CATEGORY_KEY,Constants.PROVIDERS_CATEGORY +"," + Constants.CONSUMERS_CATEGORY,//服務(wù)提供者和服務(wù)消費者
Constants.CHECK_KEY, String.valueOf(false));//不校驗
3、調用注冊中心服務(wù)registry.subscirbe(subscribeUrl, listener)訂閱所有數據,NotifyListener作為回調服務(wù)暴露在監控中心,由注冊中心回調
回調接口NotifyListener實(shí)現的功能主要是對服務(wù)提供者和服務(wù)消費者進(jìn)行分類(lèi),采集服務(wù)提供者或消費者的服務(wù)名稱(chēng)、服務(wù)url、系統相關(guān)信息。同時(shí)提供了一系列的方法供注冊中心調用和查詢(xún)。
Jetty容器
監控中心將采集收到的信息通過(guò)內置的jetty展示給用戶(hù)。這里為了不依賴(lài)jsp、velocity、freemarker等技術(shù)編寫(xiě)web應用,將html、css、js打印在servlet中
JettyContainer的start方法啟動(dòng)內置的jettyweb容器
將監控中心訪(fǎng)問(wèn)的本地文件目錄設置為ResourceFilter,并將此filter的訪(fǎng)問(wèn)映射到j(luò )etty。ResourceFilter主要是讀取本地保存的JFreeChart繪制的圖片發(fā)送給瀏覽器。
配置監控中心的前端控制器PageServlet,以及這個(gè)servlet到j(luò )etty的訪(fǎng)問(wèn)映射。之所以叫PageServet是前端控制器,和其他mvc框架一樣,用來(lái)分發(fā)具體的業(yè)務(wù)類(lèi)
PageServet的init初始化方法在web容器啟動(dòng)時(shí)加載所有的頁(yè)面處理器PageHandler,用于根據不同的請求生成不同的頁(yè)面。前面說(shuō)過(guò),頁(yè)面html是通過(guò)java代碼打印出來(lái)的。
PageServet的init方法加載所有PageHandler時(shí),會(huì )判斷PageHandler上是否有@Menu注解,將注解的PageHandler添加到集合中,供HomePageHandler生成首頁(yè)和各頁(yè)面的uri
PageServet的doGet和doPost接收瀏覽器請求,請求是xx.hml的形式,xx是PageHandler擴展的key,找到對應的PageHandler繪制對應的頁(yè)面返回給瀏覽器。
@Menu(name = "主頁(yè)", desc = "主頁(yè)", order = Integer.MIN_VALUE)
//注解的name和desc屬性在頁(yè)面上顯示給用戶(hù)
公共類(lèi) HomePageHandler 實(shí)現 PageHandler {
公共頁(yè)面句柄(URL url){
列表> 行 = 新的 ArrayList>();
for (PageHandler handler :PageServlet.getInstance().getMenus()) {
String uri =ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);//這個(gè)uri其實(shí)就是PageHandler擴展配置的key,用于頁(yè)面請求選擇特定的handler進(jìn)行繪制 //特定頁(yè)面
菜單 menu =handler.getClass().getAnnotation(Menu.class);
列表行 = newArrayList();
row.add("" + menu.name() +"");
row.add(menu.desc());
行。添加(行);
}
return new Page("Home", "Menus", new String[]{"Menu Name", "Menu Desc"}, rows);//一個(gè)Page實(shí)體是一個(gè)頁(yè)面,收錄了主HomePage的所有頁(yè)面內容
}
}
com.alibaba.dubbo.container.page.PageHandler文件中PageHandler的擴展配置
index=com.alibaba.dubbo.container.page.pages.HomePageHandler
providers=com.alibaba.dubbo.monitor.simple.pages.ProvidersPageHandler
消費者=com.alibaba.dubbo.monitor.simple.pages.ConsumersPageHandler
. . . .
下面截圖看看dubbo提供了哪些擴展
下面截圖幾張,看看監控中心頁(yè)面。
解決方案:論文替換詞軟件
論文代寫(xiě)軟件
寫(xiě)作文同義詞替換軟件有費大儒同義詞
飛達路同義詞替換工具最新版是一款可以幫助用戶(hù)替換同義詞的軟件。飛達路同義詞替換工具正式版可以讓您的替換更加DIY,更加個(gè)性化。是站長(cháng)朋友更新網(wǎng)站數據的好幫手。飛達路同義詞替換工具最新版界面簡(jiǎn)潔,操作簡(jiǎn)單,簡(jiǎn)單易用,用戶(hù)可以放心使用。
1.支持偽原創(chuàng )各種文章,只需要輸入舊的文章內容,一鍵生成原創(chuàng ),然后偽原創(chuàng )
2. 支持偽原創(chuàng )的多種方式,包括同義詞替換、加擾文章、生成原創(chuàng )
3. 支持多種文章混排選項,包括清除換行、清除空格、添加新的關(guān)鍵詞
4.支持詞庫管理,添加新詞,替換原詞,下載詞庫
5.支持批量偽原創(chuàng ),輸入批量生成地址和網(wǎng)絡(luò )提交地址,即可批量偽原創(chuàng )本地源目錄或網(wǎng)絡(luò )下載列表
有什么好的編輯論文的軟件嗎?
PaperEasy論文修改助手。
使用操作簡(jiǎn)單,一鍵修改,無(wú)需復雜操作,無(wú)需立即下載使用,綠色支持免費試用。大學(xué)生修改論文,降低論文重復率的神器!界面清爽,無(wú)廣告。
PaperEasy論文編輯助手可以有效解決論文重復率高和無(wú)詞無(wú)詞的困境,可以快速將重復的原句改成新的原創(chuàng )內容??焖?、智能、高效!
中華人民共和國國家標準VDC 001.81和GB 7713-87將學(xué)術(shù)論文定義為:
學(xué)術(shù)論文是對某一學(xué)科在實(shí)驗、理論或觀(guān)察方面有新的科學(xué)研究成果或創(chuàng )新見(jiàn)解的知識和科學(xué)記錄;或在實(shí)踐中應用已知原理所取得的新進(jìn)展的科學(xué)總結。提供書(shū)面文件供學(xué)術(shù)會(huì )議閱讀、交流或討論;或在學(xué)術(shù)期刊上發(fā)表;或用于其他目的。
在社會(huì )科學(xué)領(lǐng)域,人們通常把表達科學(xué)研究成果的論文稱(chēng)為學(xué)術(shù)論文。
學(xué)術(shù)論文具有四個(gè)特點(diǎn):①學(xué)術(shù)性、②科學(xué)性、③創(chuàng )造性、④理論性。
1.學(xué)術(shù)
學(xué)術(shù)論文的學(xué)術(shù)性要求作者在論證時(shí)不得有個(gè)人好惡,不得主觀(guān)臆斷。他實(shí)際上必須從客觀(guān)現實(shí)出發(fā),并從中得出現實(shí)的結論。在證據方面,要盡可能多地掌握信息,以最充分、最確鑿、最有力的論據作為論證的依據。論證時(shí),一定要慎重思考,論證嚴謹。
二、科學(xué)
學(xué)術(shù)論文在形式上是議論文,但不同于一般的議論文。他們必須有自己的理論體系,而不僅僅是材料清單。要對大量的事實(shí)和材料進(jìn)行分析研究,提高感性認識。到理性認識。
一般來(lái)說(shuō),學(xué)術(shù)論文都帶有議論文的色彩,或者說(shuō)帶有議論文的色彩。論文內容必須符合歷史唯物主義和唯物辯證法,符合“實(shí)事求是”、“有針對性”、“分析與綜合”相結合的科學(xué)研究方法。
3.創(chuàng )意
科學(xué)研究是對新知識的探索。創(chuàng )造力是科學(xué)研究的生命。學(xué)術(shù)論文的創(chuàng )造性在于作者必須有自己獨到的見(jiàn)解,能夠提出新的觀(guān)點(diǎn)和新的理論。
這是因為科學(xué)的本質(zhì)是“革命的、非正統的”,“科學(xué)方法主要是發(fā)現新現象和形成新理論的手段,舊的科學(xué)理論必然不斷被新理論推翻”。(Stephen Mason) 因此,沒(méi)有創(chuàng )造力,學(xué)術(shù)論文就沒(méi)有科學(xué)價(jià)值。
4.理論
它是指需要用通俗易懂的語(yǔ)言來(lái)表達科學(xué)原理,不僅要流暢,而且要準確、清晰、和諧、生動(dòng)。
有哪些好用的論文翻譯軟件?(二)
6.海詞在線(xiàn)詞典
海詞在線(xiàn)詞典由在美國印第安納大學(xué)留學(xué)的中國留學(xué)生范建淼所創(chuàng )。于2003年11月27日(美國感恩節)正式使用。詞匯主要由電腦生成,準確率弱于iciba,但提供大量例句,并有發(fā)音,可以幫助糾正發(fā)音問(wèn)題。海詞還提供了大量的小工具,您可以將它們添加到您的博客或個(gè)人網(wǎng)站中,以增加更多豐富多彩的功能。
7.百度詞典
百度詞典的定義來(lái)自一點(diǎn)通,并沒(méi)有做太大的改進(jìn)。沒(méi)有拼寫(xiě)提示也沒(méi)有發(fā)音,基本沒(méi)有特點(diǎn)。類(lèi)似于手冊的參考書(shū)。
8.免費翻譯
國外的一個(gè)免費翻譯工具,感覺(jué)這個(gè)工具的翻譯結果還是比較滿(mǎn)意的。翻譯時(shí)可以選擇“人工翻譯”和“自動(dòng)翻譯”,“人工翻譯”為付費服務(wù)。
9. 生物醫學(xué)詞典
生物醫學(xué)詞典為生物醫學(xué)領(lǐng)域的專(zhuān)業(yè)人士提供寫(xiě)作、閱讀和翻譯的便利,最終實(shí)現了一部自我編輯、自我完善的公共詞典。用戶(hù)可以使用簡(jiǎn)體中文、英文、繁體中文和縮略語(yǔ)的任意組合進(jìn)行模糊查詢(xún)。目前,收錄的字數已超過(guò)120萬(wàn),并且還在不斷增加中。 查看全部
解決方案:Dubbo原理解析-監控
在Dubbo發(fā)布代碼中,自帶了一個(gè)簡(jiǎn)單的監控中心實(shí)現。對于一般的小型企業(yè)來(lái)說(shuō),這個(gè)監控中心應該可以滿(mǎn)足需求。對于那些業(yè)務(wù)量大的大公司,一般都有自己的監控中心,監控中心的功能比較豐富,比如常用的報警短信通知等等。本章講解分析,讓讀者了解一般的監控中心實(shí)現,也讓有自己接入監控中心需求的人知道如何集成自己的監控中心實(shí)現。先從dubbo自帶的監控中心說(shuō)起。
監控中心
1.啟動(dòng)監控中心,我們先看一下dubbo的屬性文件
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
相比provider和consumer,registry和jetty容器啟動(dòng)注冊中心更多
它們都是基于dubbo的spi擴展機制。
SpringContainer容器啟動(dòng)就是加載classpath*:META-INF/spring/*.xml spring的配置文件
"monitorService" class="com.alibaba.dubbo.monitor.simple.SimpleMonitorService">
"statisticsDirectory" value="${dubbo.statistics.directory}"/>
"chartsDirectory" value="${dubbo.charts.directory}"/>
"${dubbo.application.name}"owner="${dubbo.application.owner}"/>
"${dubbo.registry.address}"/>
"dubbo"port="${dubbo.protocol.port}"/>
"com.alibaba.dubbo.monitor.MonitorService"ref="monitorService"delay="-1"/>
"registryService" interface="com.alibaba.dubbo.registry.RegistryService"/>
2.簡(jiǎn)單監控服務(wù)
監控中心配置監控服務(wù)SimpleMonitorService的實(shí)現,作為一個(gè)普通的dubbo服務(wù)暴露給注冊中心,供服務(wù)提供者和服務(wù)消費者調用,并將服務(wù)提供者和服務(wù)消費者的調用數據保存到監控中心.
監控服務(wù)接口定義
publicinterfaceMonitorService {
/**
*監控數據采集。
* 1.支持調用統計:count://host/interface?application=foo&method=foo&provider=10.20.153.11:20880&success=12&failure=2&elapsed=135423423
* 1.1host,application,interface,group,version,method記錄監控源主機,應用,接口,方法信息。
* 1.2 如果是消費者發(fā)送的數據,則添加提供者地址參數,否則添加源消費者地址參數。
* 1.3 success,faulure,elapsed records from last 采集,調用成功次數,調用失敗次數,調用成功總耗時(shí),平均耗時(shí)除以總耗時(shí)成功調用的次數。
*
*@paramstatistics
*/
voidcollect(網(wǎng)址統計);
/**
*監控數據查詢(xún)。
* 1.支持按天查詢(xún):count://host/interface?application=foo&method=foo&side=provider&view=chart&date=2012-07-03
* 1.1 host, application, interface, group, version, method查詢(xún)host,application,interface,method的匹配條件,缺失條件代表全部,host用0.0.0.0代表全部。
* 1.2 side=consumer,provider 查詢(xún)哪一端采集數據被調用,默認兩者都查詢(xún)。
* 1.3 默認為view=summary,返回全天的匯總信息,支持view=chart,表示返回全天的趨勢圖圖片的URL地址,可以展示在其他嵌入的頁(yè)面上系統。
* 1.4 date=2012-07-03 指定查詢(xún)數據的日期,默認為今天。
*
*@paramquery
*@returnstatistics
*/
列表查找(URL查詢(xún));
}
注:查找在開(kāi)源過(guò)程中可能依賴(lài)阿里的系統,沒(méi)有具體實(shí)現。如果需要這個(gè)功能,需要根據接口定義自己實(shí)現
MonitorService的dubbo默認實(shí)現了SimpleMonitorService
遠程調用Collect方法后,將數據url(傳過(guò)來(lái)的url收錄監控需要的數據)保存在一個(gè)阻塞隊列BlockingQueue中
啟動(dòng)定時(shí)任務(wù)記錄統計日志到本地,
字符串文件名=${user.home}/monitor/statistics

+"/"+天
+"/"+統計。獲取服務(wù)接口()
+"/"+統計。獲取參數(方法)
+"/"+消費者
+"/"+ 供應商
+"/"+ 輸入 +"."+ 鍵
這是文件在本地存儲的格式
文件內容保存如圖,保存方法比較耗時(shí)
3.啟動(dòng)定時(shí)任務(wù),使用JFreeeChart繪制圖表并保存路徑
${user.home}\monitor\charts\date\interfaceName\methodName
生成監控數據
注冊中心對外暴露了MonitorService服務(wù)。誰(shuí)調用的,監控中心的數據來(lái)自哪里?下面看看服務(wù)提供者和服務(wù)的消費方式是如何介入監控中心的。
在服務(wù)提供者和消費者的dubbo配置中添加如下配置
通過(guò)注冊表
或直接連接
在構建服務(wù)的調用鏈時(shí),有上述基于監控的擴展。下面我們來(lái)看看這個(gè)類(lèi)。
@Activate(group = {Constants.PROVIDER, Constants.CONSUMER})
//這個(gè)過(guò)濾器在服務(wù)提供者和服務(wù)消費者應用中被激活,即起作用
公共類(lèi) MonitorFilter 實(shí)現 Filter {
私人監視器工廠(chǎng)監視器工廠(chǎng);
公共結果調用(Invokerinvoker,調用調用)拋出 RpcException {
if(invoker.getUrl().hasParameter(Constants.MONITOR_KEY)) {
//有備注監控中心處理
1.獲取調用者的調用上下文
2.記錄開(kāi)始時(shí)間戳
3.并發(fā)數加一
嘗試 {
4.調用調用鏈中的下一步
5. 采集來(lái)電信息
} 最后 {
6.并發(fā)數減一
}
} 別的 {
//沒(méi)有配置監控中心,直接調用
返回 invoker.inovke(調用);
}
}
關(guān)于上述第 5 點(diǎn)的信息 采集
1.計算調用耗時(shí)
2.獲取并發(fā)數
3.獲取服務(wù)名稱(chēng)
4.獲取方法名
5.判斷是服務(wù)消費者還是服務(wù)提供者監聽(tīng)
6.從工廠(chǎng)類(lèi)monitorFactory.getMonitor(監控url)獲取DubboMonitor對象,
構造Url調用監控中心服務(wù),url收錄監控中心需要的監控信息
monitor.collect(newURL(常量.COUNT_PROTOCOL,
NetUtils.getLocalHost(), 本地端口,
服務(wù)+“/”+方法,
監控服務(wù)。申請,申請,
監控服務(wù)。界面、服務(wù)、
MonitorService.METHOD,方法,

遠程鍵,遠程值,
錯誤?MonitorService.FAILURE:MonitorService.SUCCESS,“1”,
MonitorService.ELAPSED, String.valueOf(elapsed),
MonitorService.CONCURRENT,String.valueOf(并發(fā)),
Constants.INPUT_KEY,輸入,
常數。OUTPUT_KEY, 輸出));
DubboMonitor是對調用監控中心的服務(wù)的封裝。之所以不直接調用監控中心,而是通過(guò)DubboMonitor來(lái)調用,是因為監控是一個(gè)附加功能,不應該影響主鏈路,不應該破壞主鏈路的新性能。DubboMonitor采集收到數據后,通過(guò)任務(wù)定時(shí)調用監控中心服務(wù),將數據提交給監控中心。
注冊表容器
監控中心指的是注冊中心對外暴露的RegistryService服務(wù),主要被下面的RegistryContainer使用。
RegistryContainer主要從注冊中心采集服務(wù)、組、版本信息,并在注冊中心數據發(fā)生變化時(shí)注冊回調以更新監控中心。
我們看一下RegistryContainer的start方法流程:
1.通過(guò)SpringContainer獲取之前初始化的RegistryService,獲取注冊中心的遠程代理服務(wù)
2、構造訂閱注冊中心數據的url,可以看到下面的url都是訂閱服務(wù)提供者和服務(wù)消費者的服務(wù)
subscribeUrl =newURL(Constants.ADMIN_PROTOCOL, NetUtils.getLocalHost(), 0,"",
Constants.INTERFACE_KEY, Constants.ANY_VALUE, //所有服務(wù)
Constants.GROUP_KEY, Constants.ANY_VALUE, //所有組
Constants.VERSION_KEY, Constants.ANY_VALUE, //所有版本
Constants.CLASSIFIER_KEY, Constants.ANY_VALUE, //所有類(lèi)別
Constants.CATEGORY_KEY,Constants.PROVIDERS_CATEGORY +"," + Constants.CONSUMERS_CATEGORY,//服務(wù)提供者和服務(wù)消費者
Constants.CHECK_KEY, String.valueOf(false));//不校驗
3、調用注冊中心服務(wù)registry.subscirbe(subscribeUrl, listener)訂閱所有數據,NotifyListener作為回調服務(wù)暴露在監控中心,由注冊中心回調
回調接口NotifyListener實(shí)現的功能主要是對服務(wù)提供者和服務(wù)消費者進(jìn)行分類(lèi),采集服務(wù)提供者或消費者的服務(wù)名稱(chēng)、服務(wù)url、系統相關(guān)信息。同時(shí)提供了一系列的方法供注冊中心調用和查詢(xún)。
Jetty容器
監控中心將采集收到的信息通過(guò)內置的jetty展示給用戶(hù)。這里為了不依賴(lài)jsp、velocity、freemarker等技術(shù)編寫(xiě)web應用,將html、css、js打印在servlet中
JettyContainer的start方法啟動(dòng)內置的jettyweb容器
將監控中心訪(fǎng)問(wèn)的本地文件目錄設置為ResourceFilter,并將此filter的訪(fǎng)問(wèn)映射到j(luò )etty。ResourceFilter主要是讀取本地保存的JFreeChart繪制的圖片發(fā)送給瀏覽器。
配置監控中心的前端控制器PageServlet,以及這個(gè)servlet到j(luò )etty的訪(fǎng)問(wèn)映射。之所以叫PageServet是前端控制器,和其他mvc框架一樣,用來(lái)分發(fā)具體的業(yè)務(wù)類(lèi)
PageServet的init初始化方法在web容器啟動(dòng)時(shí)加載所有的頁(yè)面處理器PageHandler,用于根據不同的請求生成不同的頁(yè)面。前面說(shuō)過(guò),頁(yè)面html是通過(guò)java代碼打印出來(lái)的。
PageServet的init方法加載所有PageHandler時(shí),會(huì )判斷PageHandler上是否有@Menu注解,將注解的PageHandler添加到集合中,供HomePageHandler生成首頁(yè)和各頁(yè)面的uri
PageServet的doGet和doPost接收瀏覽器請求,請求是xx.hml的形式,xx是PageHandler擴展的key,找到對應的PageHandler繪制對應的頁(yè)面返回給瀏覽器。
@Menu(name = "主頁(yè)", desc = "主頁(yè)", order = Integer.MIN_VALUE)
//注解的name和desc屬性在頁(yè)面上顯示給用戶(hù)
公共類(lèi) HomePageHandler 實(shí)現 PageHandler {
公共頁(yè)面句柄(URL url){
列表> 行 = 新的 ArrayList>();
for (PageHandler handler :PageServlet.getInstance().getMenus()) {
String uri =ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);//這個(gè)uri其實(shí)就是PageHandler擴展配置的key,用于頁(yè)面請求選擇特定的handler進(jìn)行繪制 //特定頁(yè)面
菜單 menu =handler.getClass().getAnnotation(Menu.class);
列表行 = newArrayList();
row.add("" + menu.name() +"");
row.add(menu.desc());
行。添加(行);
}
return new Page("Home", "Menus", new String[]{"Menu Name", "Menu Desc"}, rows);//一個(gè)Page實(shí)體是一個(gè)頁(yè)面,收錄了主HomePage的所有頁(yè)面內容
}
}
com.alibaba.dubbo.container.page.PageHandler文件中PageHandler的擴展配置
index=com.alibaba.dubbo.container.page.pages.HomePageHandler
providers=com.alibaba.dubbo.monitor.simple.pages.ProvidersPageHandler
消費者=com.alibaba.dubbo.monitor.simple.pages.ConsumersPageHandler
. . . .
下面截圖看看dubbo提供了哪些擴展
下面截圖幾張,看看監控中心頁(yè)面。
解決方案:論文替換詞軟件
論文代寫(xiě)軟件
寫(xiě)作文同義詞替換軟件有費大儒同義詞
飛達路同義詞替換工具最新版是一款可以幫助用戶(hù)替換同義詞的軟件。飛達路同義詞替換工具正式版可以讓您的替換更加DIY,更加個(gè)性化。是站長(cháng)朋友更新網(wǎng)站數據的好幫手。飛達路同義詞替換工具最新版界面簡(jiǎn)潔,操作簡(jiǎn)單,簡(jiǎn)單易用,用戶(hù)可以放心使用。
1.支持偽原創(chuàng )各種文章,只需要輸入舊的文章內容,一鍵生成原創(chuàng ),然后偽原創(chuàng )
2. 支持偽原創(chuàng )的多種方式,包括同義詞替換、加擾文章、生成原創(chuàng )
3. 支持多種文章混排選項,包括清除換行、清除空格、添加新的關(guān)鍵詞
4.支持詞庫管理,添加新詞,替換原詞,下載詞庫
5.支持批量偽原創(chuàng ),輸入批量生成地址和網(wǎng)絡(luò )提交地址,即可批量偽原創(chuàng )本地源目錄或網(wǎng)絡(luò )下載列表
有什么好的編輯論文的軟件嗎?
PaperEasy論文修改助手。
使用操作簡(jiǎn)單,一鍵修改,無(wú)需復雜操作,無(wú)需立即下載使用,綠色支持免費試用。大學(xué)生修改論文,降低論文重復率的神器!界面清爽,無(wú)廣告。

PaperEasy論文編輯助手可以有效解決論文重復率高和無(wú)詞無(wú)詞的困境,可以快速將重復的原句改成新的原創(chuàng )內容??焖?、智能、高效!
中華人民共和國國家標準VDC 001.81和GB 7713-87將學(xué)術(shù)論文定義為:
學(xué)術(shù)論文是對某一學(xué)科在實(shí)驗、理論或觀(guān)察方面有新的科學(xué)研究成果或創(chuàng )新見(jiàn)解的知識和科學(xué)記錄;或在實(shí)踐中應用已知原理所取得的新進(jìn)展的科學(xué)總結。提供書(shū)面文件供學(xué)術(shù)會(huì )議閱讀、交流或討論;或在學(xué)術(shù)期刊上發(fā)表;或用于其他目的。
在社會(huì )科學(xué)領(lǐng)域,人們通常把表達科學(xué)研究成果的論文稱(chēng)為學(xué)術(shù)論文。
學(xué)術(shù)論文具有四個(gè)特點(diǎn):①學(xué)術(shù)性、②科學(xué)性、③創(chuàng )造性、④理論性。
1.學(xué)術(shù)
學(xué)術(shù)論文的學(xué)術(shù)性要求作者在論證時(shí)不得有個(gè)人好惡,不得主觀(guān)臆斷。他實(shí)際上必須從客觀(guān)現實(shí)出發(fā),并從中得出現實(shí)的結論。在證據方面,要盡可能多地掌握信息,以最充分、最確鑿、最有力的論據作為論證的依據。論證時(shí),一定要慎重思考,論證嚴謹。
二、科學(xué)
學(xué)術(shù)論文在形式上是議論文,但不同于一般的議論文。他們必須有自己的理論體系,而不僅僅是材料清單。要對大量的事實(shí)和材料進(jìn)行分析研究,提高感性認識。到理性認識。
一般來(lái)說(shuō),學(xué)術(shù)論文都帶有議論文的色彩,或者說(shuō)帶有議論文的色彩。論文內容必須符合歷史唯物主義和唯物辯證法,符合“實(shí)事求是”、“有針對性”、“分析與綜合”相結合的科學(xué)研究方法。
3.創(chuàng )意
科學(xué)研究是對新知識的探索。創(chuàng )造力是科學(xué)研究的生命。學(xué)術(shù)論文的創(chuàng )造性在于作者必須有自己獨到的見(jiàn)解,能夠提出新的觀(guān)點(diǎn)和新的理論。

這是因為科學(xué)的本質(zhì)是“革命的、非正統的”,“科學(xué)方法主要是發(fā)現新現象和形成新理論的手段,舊的科學(xué)理論必然不斷被新理論推翻”。(Stephen Mason) 因此,沒(méi)有創(chuàng )造力,學(xué)術(shù)論文就沒(méi)有科學(xué)價(jià)值。
4.理論
它是指需要用通俗易懂的語(yǔ)言來(lái)表達科學(xué)原理,不僅要流暢,而且要準確、清晰、和諧、生動(dòng)。
有哪些好用的論文翻譯軟件?(二)
6.海詞在線(xiàn)詞典
海詞在線(xiàn)詞典由在美國印第安納大學(xué)留學(xué)的中國留學(xué)生范建淼所創(chuàng )。于2003年11月27日(美國感恩節)正式使用。詞匯主要由電腦生成,準確率弱于iciba,但提供大量例句,并有發(fā)音,可以幫助糾正發(fā)音問(wèn)題。海詞還提供了大量的小工具,您可以將它們添加到您的博客或個(gè)人網(wǎng)站中,以增加更多豐富多彩的功能。
7.百度詞典
百度詞典的定義來(lái)自一點(diǎn)通,并沒(méi)有做太大的改進(jìn)。沒(méi)有拼寫(xiě)提示也沒(méi)有發(fā)音,基本沒(méi)有特點(diǎn)。類(lèi)似于手冊的參考書(shū)。
8.免費翻譯
國外的一個(gè)免費翻譯工具,感覺(jué)這個(gè)工具的翻譯結果還是比較滿(mǎn)意的。翻譯時(shí)可以選擇“人工翻譯”和“自動(dòng)翻譯”,“人工翻譯”為付費服務(wù)。
9. 生物醫學(xué)詞典
生物醫學(xué)詞典為生物醫學(xué)領(lǐng)域的專(zhuān)業(yè)人士提供寫(xiě)作、閱讀和翻譯的便利,最終實(shí)現了一部自我編輯、自我完善的公共詞典。用戶(hù)可以使用簡(jiǎn)體中文、英文、繁體中文和縮略語(yǔ)的任意組合進(jìn)行模糊查詢(xún)。目前,收錄的字數已超過(guò)120萬(wàn),并且還在不斷增加中。
分享文章:織夢(mèng)調用文章屬性的名稱(chēng)(調用自定義屬性名稱(chēng))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 79 次瀏覽 ? 2022-12-07 02:44
接下來(lái),我們將與您分享如何在織夢(mèng)文章頁(yè)面中調用相關(guān)屬性名稱(chēng):
我們可以看到,在這個(gè)標題之后就是我們需要的屬性的名稱(chēng),通過(guò)代碼分析我們可以看到調用的代碼是
{dede:field.flag function='IsCommendArchives(@me)'/}
我們可以看到這個(gè)調用需要一個(gè)函數:IsCommendArchives(@me)。
此函數是將文章中獲取的標志的內容轉換為相應的名稱(chēng)。功能內容為:
函數是表彰檔案($iscommend)
{
全球$arcatts;
$sn = '';
foreach($arcatts as $k=>$v)
{
$v = cn_substr($v, 2);
$sn .= (preg_match(“#”.$k.“ #”, $iscommend) ? ','.$v : '');
}
$sn = 修剪($sn);
if($sn=='') 返回 '';
否則返回“$sn”;
}
其中,$k是屬性名,我們可以選擇用“,”分隔,也支持HTML編寫(xiě),更靈活大家在別處調用,織夢(mèng)模板
我給你舉個(gè)例子:
織夢(mèng)QQ群二次開(kāi)發(fā)
內容分享:公眾號文章采集的兩種方案,搜狗和微信App采集
更新于 2018-06-05
許多答案沒(méi)有用或不再有效 采集 客戶(hù)編號,這是我的解決方案。
如果你只采集公眾號文章電話(huà)號碼采集軟件,要求不是很?chē)栏?,可以上搜狗。這種方案成本低,比較簡(jiǎn)單,但缺點(diǎn)也很明顯。這是一個(gè)臨時(shí)的 文章 鏈接。如果要轉為永久鏈接,還是要通過(guò)app界面。.
另一種方案是從微信APP本身采集,成本會(huì )高很多,但是可以采集的數據類(lèi)型很多,包括但不限于:歷史頁(yè)面文章 ,閱讀喜歡,評論等。
為了更直觀(guān),我做了一張圖來(lái)對比一下搜狗和微信小程序采集的兩個(gè)方案。
這兩種方案我都是自己用的,也都提供了封裝好的接口。具體需求會(huì )根據成本和場(chǎng)景選擇使用哪一種。
簡(jiǎn)單的一句話(huà)總結就是,搜狗有微信APP,搜狗沒(méi)有微信APP,但是微信方案的軟硬成本要比搜狗方案大很多。
順便說(shuō)一句,圖片提到了微信中的搜索界面。我自己已經(jīng)實(shí)現了,可以獲取搜索公眾號和文章的返回數據,作為練習,因為這個(gè)接口用處不大,所以不解壓打開(kāi),如果需要它,你可以單獨聯(lián)系我。很多人可能認為采集和搜索界面不太可能是采集客戶(hù)號,因為這個(gè)數據根本就不是http協(xié)議。但是我想說(shuō)的是,有時(shí)候采集數據不一定要在請求中攔截。解決方案很多,但是成本也會(huì )變得非常大(開(kāi)發(fā)成本和上線(xiàn)成本)。
另外,關(guān)于公眾號文章閱讀號的采集,可以看我的另一個(gè)知乎回答: 查看全部
分享文章:織夢(mèng)調用文章屬性的名稱(chēng)(調用自定義屬性名稱(chēng))
接下來(lái),我們將與您分享如何在織夢(mèng)文章頁(yè)面中調用相關(guān)屬性名稱(chēng):
我們可以看到,在這個(gè)標題之后就是我們需要的屬性的名稱(chēng),通過(guò)代碼分析我們可以看到調用的代碼是
{dede:field.flag function='IsCommendArchives(@me)'/}
我們可以看到這個(gè)調用需要一個(gè)函數:IsCommendArchives(@me)。
此函數是將文章中獲取的標志的內容轉換為相應的名稱(chēng)。功能內容為:
函數是表彰檔案($iscommend)
{

全球$arcatts;
$sn = '';
foreach($arcatts as $k=>$v)
{
$v = cn_substr($v, 2);
$sn .= (preg_match(“#”.$k.“ #”, $iscommend) ? ','.$v : '');
}
$sn = 修剪($sn);

if($sn=='') 返回 '';
否則返回“$sn”;
}
其中,$k是屬性名,我們可以選擇用“,”分隔,也支持HTML編寫(xiě),更靈活大家在別處調用,織夢(mèng)模板
我給你舉個(gè)例子:
織夢(mèng)QQ群二次開(kāi)發(fā)
內容分享:公眾號文章采集的兩種方案,搜狗和微信App采集
更新于 2018-06-05
許多答案沒(méi)有用或不再有效 采集 客戶(hù)編號,這是我的解決方案。
如果你只采集公眾號文章電話(huà)號碼采集軟件,要求不是很?chē)栏?,可以上搜狗。這種方案成本低,比較簡(jiǎn)單,但缺點(diǎn)也很明顯。這是一個(gè)臨時(shí)的 文章 鏈接。如果要轉為永久鏈接,還是要通過(guò)app界面。.

另一種方案是從微信APP本身采集,成本會(huì )高很多,但是可以采集的數據類(lèi)型很多,包括但不限于:歷史頁(yè)面文章 ,閱讀喜歡,評論等。
為了更直觀(guān),我做了一張圖來(lái)對比一下搜狗和微信小程序采集的兩個(gè)方案。
這兩種方案我都是自己用的,也都提供了封裝好的接口。具體需求會(huì )根據成本和場(chǎng)景選擇使用哪一種。

簡(jiǎn)單的一句話(huà)總結就是,搜狗有微信APP,搜狗沒(méi)有微信APP,但是微信方案的軟硬成本要比搜狗方案大很多。
順便說(shuō)一句,圖片提到了微信中的搜索界面。我自己已經(jīng)實(shí)現了,可以獲取搜索公眾號和文章的返回數據,作為練習,因為這個(gè)接口用處不大,所以不解壓打開(kāi),如果需要它,你可以單獨聯(lián)系我。很多人可能認為采集和搜索界面不太可能是采集客戶(hù)號,因為這個(gè)數據根本就不是http協(xié)議。但是我想說(shuō)的是,有時(shí)候采集數據不一定要在請求中攔截。解決方案很多,但是成本也會(huì )變得非常大(開(kāi)發(fā)成本和上線(xiàn)成本)。
另外,關(guān)于公眾號文章閱讀號的采集,可以看我的另一個(gè)知乎回答:
解決方案:Android端直播SDK實(shí)現方案
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2022-12-02 11:36
概述
直播系統的架構一般分為采集模塊、預覽模塊、處理模塊、編碼模塊、推流模塊。
將這五個(gè)模塊串聯(lián)起來(lái),就構成了整個(gè)直播系統的數據流。如下所示:
音頻采集:采集原創(chuàng )
PCM 數據。
音頻處理:對音頻進(jìn)行混音消除、降噪、自動(dòng)增益等處理。
音頻編碼:將PCM格式的數據編碼為AAC格式。
視頻捕捉:攝像頭/屏幕流的捕捉;YUV 格式或紋理格式。
視頻處理:對視頻進(jìn)行美顏/濾鏡等處理。
預覽:將處理后的視頻流渲染并顯示在屏幕上。
視頻編碼:將texture或YUV格式的原創(chuàng )
視頻流壓縮成H264格式。
推流:將AAC格式的音頻流和H264格式的視頻流打包推送為flv格式。
模塊化設計
為了充分利用CPU的多核,提高流媒體系統的效率,低延遲,模塊的設計采用了多線(xiàn)程模型。線(xiàn)程之間的交互是通過(guò)阻塞隊列實(shí)現的。由于隊列需要被多個(gè)線(xiàn)程操作,所以需要保證隊列的安全性。為了保證隊列的安全,在放入隊列之前先給隊列加鎖,然后再對隊列進(jìn)行操作。操作隊列結束后,發(fā)出信號指令,告訴block所在的線(xiàn)程繼續操作隊列。添加隊列后的模塊圖如下圖所示:
音頻捕捉
Android端音頻采集常用的方案有3種:AudioRecord、OpenSL、AAudio。
AudioRecord是Android上層的一個(gè)API,通過(guò)它可以采集PCM格式的音頻數據。
OpenSL是Native層提供的API,可以采集或播放PCM。
詳情鏈接:
AAudio是Native層提供的API,是Android O引入的新的音頻API。
詳情鏈接:
音頻采集在獨立線(xiàn)程中執行。將采集到的音頻放入pcm隊列。這里我們以AudioRecord為例介紹一下AudioRecord采集音頻的過(guò)程:
配置參數(采樣率、通道數、采樣格式)并獲取AudioRecord采集音頻緩沖區的大小
public static int SAMPLE_RATE_IN_HZ = 44100;
private final static int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_IN_MONO;
private final static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
<p>
int bufferSizeInBytes = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT)
</p>
創(chuàng )建錄音
AudioRecord audioRecord = new AudioRecord(AUDIO_SOURCE, SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT, bufferSizeInBytes);
配置AudioRecord后,需要查看AudioRecord的狀態(tài)??赡芤驗闄嘞迒?wèn)題或者其他原因導致AudioRecord創(chuàng )建失敗或者狀態(tài)不正確;
if (audioRecord == null || audioRecord.getState() != AudioRecord.STATE_INITIALIZED) {
throw new AudioConfigurationException();
}
開(kāi)始采集
AudioRecord創(chuàng )建成功后,就可以根據startRecording()接口開(kāi)始采集視頻了。
獲取音頻數據
獲取音頻數據需要一個(gè)線(xiàn)程不斷地讀出AudioRecord緩沖區中的音頻數據。
int size = audioRecord.read(audioSamplesBuffer, 0, audioSamplesBufferMaxSize);
將音頻數據放入PCM隊列
pcm隊列的設計后面會(huì )介紹
停止采集
和釋放資源
停止音頻采集線(xiàn)程,調用stop停止采集,調用release釋放AudioRecord創(chuàng )建的資源。
音頻編碼
音頻編碼格式有很多,mp3、aac、wma、ogg、pous、amr等,aac在低碼率場(chǎng)景下音質(zhì)非常好,aac編碼在移動(dòng)平臺上應用最廣泛,無(wú)論是aac單獨的音頻編碼或視頻中的音頻流部分。
音頻編解碼器:fdk_aac、MediaCodec
音頻編碼線(xiàn)程從pcm隊列中獲取數據編碼,編碼完成后將AAC數據放入AAC隊列中。
這里引入軟碼libfdk_aac,將pcm編碼成aac流。這里介紹的libfdk_aac是基于ffmpeg的。如果以后要使用其他編碼庫,可以通過(guò)ffmpeg配置。
基于ffmpeg的API編碼aac的好處是只需要寫(xiě)一段音頻編碼代碼即可。對于不同的編碼器,后面只需要調整對應的編碼器ID或者編碼器名稱(chēng),就可以對不同的格式進(jìn)行編碼。音頻文件。由于要使用第三方庫libfdk_aac對aac文件進(jìn)行編碼,所以在交叉編譯ffmpeg時(shí)必須先編譯libfdk_aac庫。音頻編碼是通過(guò)調用ffmpeg的API來(lái)實(shí)現的。
音頻編碼需要在線(xiàn)程中實(shí)現,線(xiàn)程會(huì )從pcm隊列中獲取pcm數據。當隊列為空時(shí),等待當前線(xiàn)程。當隊列中有數據時(shí),信號喚醒當前線(xiàn)程。得到pcm音頻數據后,開(kāi)始編碼。編碼完成后,將編碼后的aac數據放入aac隊列。
OpenGL上下文環(huán)境搭建后臺
OpenGL 不負責窗口管理和上下文管理。OpenGL 窗口管理和上下文管理將由各個(gè)平臺或設備完成。為了在 openGL 的輸出和設備的屏幕之間建立橋梁,需要使用 EGL。EGL是雙緩沖工作模式,即有一個(gè)Back Frame Buffer和一個(gè)Front Frame Buffer。正常繪圖操作的目標是 Back Frame Buffer。操作完成后,調用eglSwapBuffer api將繪制的Back Frame Buffer交換到Front Frame Buffer并顯示。在A(yíng)ndroid平臺上,使用了EGL的機制。EGL承擔為OpenGL提供上下文環(huán)境和窗口管理的責任。
安卓上下文
在A(yíng)ndroid平臺上使用opengl es,第一種方式是直接使用GLSurfaceView。這種方式使用OpenGL ES比較簡(jiǎn)單,因為不需要開(kāi)發(fā)者搭建OpenGL ES的上下文環(huán)境,也不需要為OpenGL ES創(chuàng )建顯示設備。但是任何事情都有兩個(gè)方面,有優(yōu)點(diǎn)也有缺點(diǎn)。使用 GLSurfaceView 不夠靈活。OpenGL ES的很多核心用法,比如共享上層上下文實(shí)現多線(xiàn)程共同操作一個(gè)紋理等,是不能用的。所以這里需要通過(guò)EGL api搭建OpenGL上下文環(huán)境,基于C++環(huán)境搭建。因為如果用Java層來(lái)構建,對于普通應用來(lái)說(shuō)可能是可行的,但是對于視頻應用來(lái)說(shuō),為了效率和性能,
任何 opengl 命令都必須在其自己的 OpenGL 上下文中運行,因此在 EGL 構建 opengl 上下文后,它可以執行 OpenGL ES。
OpenGL處理??模塊需要在線(xiàn)程中實(shí)現,線(xiàn)程函數:
EGL 環(huán)境管理 渲染窗口管理 紋理創(chuàng )建 視頻流處理 視頻捕獲和預覽
Camera的參數配置這里就不介紹了,這里只介紹Camera如何結合OpenGL實(shí)現預覽。
SurfaceView的轉換
首先UI層構造一個(gè)SurfaceView通過(guò)SurfaceView獲取Surface,然后在NDK中將Surface轉化為ANativeWindow,在EGL中通過(guò)ANativeWindow創(chuàng )建EGLSurface。
創(chuàng )建外部紋理
通過(guò) OpenGL 創(chuàng )建外部紋理
將外部紋理設置為 Camera
通過(guò)2創(chuàng )建的外部紋理ID創(chuàng )建一個(gè)SurfaceTexture,并設置一個(gè)監聽(tīng)器SurfaceTexture.setOnFrameAvailableListener(); 每次將視頻流渲染到 SurfaceTexture 時(shí)都會(huì )回調此方法。通過(guò) setPreviewTexture 接口將 SurfaceTexture 設置為 Camera。
OpenGL操作外部紋理實(shí)現預覽
Camera/Camera2采集攝像頭流并將采集到的攝像頭流渲染成外部紋理,然后通過(guò)OpenGL將外部紋理渲染到窗口,實(shí)現預覽。
視頻采集預覽流程圖如下:
視頻編碼
MediaCodec的配置和使用這里就不介紹了。這里只介紹OpenGL ES如何與MediaCodec進(jìn)行交互。
MediaCodec的輸入視頻流經(jīng)過(guò)OpenGL模塊處理,通過(guò)createInputSurface() api得到一個(gè)Surface,最后Surface創(chuàng )建一個(gè)EGL Surface。
OpenGL通過(guò)渲染外部紋理到MediaCodec inputsurface通知MediaCodec獲取編碼數據,獲取編碼數據后,通過(guò)處理進(jìn)入h264隊列。
MediaCodec與OpenGL運行圖:
推流:
推流模塊按照特定的順序從aac隊列/h264隊列中獲取數據,進(jìn)行處理,然后封裝成flv格式進(jìn)行推流。
流媒體模塊通過(guò)FFmpeg中集成的rtmp協(xié)議實(shí)現流媒體。這樣我們就可以通過(guò)ffmpeg的寫(xiě)入文件的API來(lái)實(shí)現流式傳輸了。
這樣做的好處是你只需要編寫(xiě)一個(gè)streaming模塊的代碼。當我們要在本地寫(xiě)音視頻流時(shí),streaming模塊的代碼不需要修改,只需要修改我們傳給streaming模塊的路徑即可。例如:mnt/sdcard/0/test.mp4,可以將視頻流以mp4格式保存到本地。
解決方案:WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章功能呢?
作為一個(gè)新聞門(mén)戶(hù)網(wǎng)站的站長(cháng),最難做的就是采集
更全面的內容。一般在這種情況下,人們會(huì )從較大的網(wǎng)站上采集
文章,發(fā)布在自己的網(wǎng)站上。那么使用WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章的功能呢?今天給大家分享一下RSS訂閱功能。我們可以通過(guò)RSS功能調用其他網(wǎng)站的文章自動(dòng)顯示在我們自己的網(wǎng)站上,并且可以自動(dòng)更新。
那怎么辦呢?方法很簡(jiǎn)單,只需要將下面的代碼放在你的網(wǎng)站顯示文章列表的位置即可。
</a>
注意:代碼中的網(wǎng)站需要修改為調用網(wǎng)站的URL。如果你的網(wǎng)站想放更多本站的文章,只需要復制這段代碼,修改里面的網(wǎng)址即可。
注:本文為星速云原創(chuàng )版權,禁止轉載。一經(jīng)發(fā)現,追究版權責任! 查看全部
解決方案:Android端直播SDK實(shí)現方案
概述
直播系統的架構一般分為采集模塊、預覽模塊、處理模塊、編碼模塊、推流模塊。
將這五個(gè)模塊串聯(lián)起來(lái),就構成了整個(gè)直播系統的數據流。如下所示:
音頻采集:采集原創(chuàng )
PCM 數據。
音頻處理:對音頻進(jìn)行混音消除、降噪、自動(dòng)增益等處理。
音頻編碼:將PCM格式的數據編碼為AAC格式。
視頻捕捉:攝像頭/屏幕流的捕捉;YUV 格式或紋理格式。
視頻處理:對視頻進(jìn)行美顏/濾鏡等處理。
預覽:將處理后的視頻流渲染并顯示在屏幕上。
視頻編碼:將texture或YUV格式的原創(chuàng )
視頻流壓縮成H264格式。
推流:將AAC格式的音頻流和H264格式的視頻流打包推送為flv格式。
模塊化設計
為了充分利用CPU的多核,提高流媒體系統的效率,低延遲,模塊的設計采用了多線(xiàn)程模型。線(xiàn)程之間的交互是通過(guò)阻塞隊列實(shí)現的。由于隊列需要被多個(gè)線(xiàn)程操作,所以需要保證隊列的安全性。為了保證隊列的安全,在放入隊列之前先給隊列加鎖,然后再對隊列進(jìn)行操作。操作隊列結束后,發(fā)出信號指令,告訴block所在的線(xiàn)程繼續操作隊列。添加隊列后的模塊圖如下圖所示:
音頻捕捉
Android端音頻采集常用的方案有3種:AudioRecord、OpenSL、AAudio。
AudioRecord是Android上層的一個(gè)API,通過(guò)它可以采集PCM格式的音頻數據。
OpenSL是Native層提供的API,可以采集或播放PCM。
詳情鏈接:
AAudio是Native層提供的API,是Android O引入的新的音頻API。
詳情鏈接:
音頻采集在獨立線(xiàn)程中執行。將采集到的音頻放入pcm隊列。這里我們以AudioRecord為例介紹一下AudioRecord采集音頻的過(guò)程:
配置參數(采樣率、通道數、采樣格式)并獲取AudioRecord采集音頻緩沖區的大小
public static int SAMPLE_RATE_IN_HZ = 44100;
private final static int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_IN_MONO;
private final static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
<p>

int bufferSizeInBytes = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT)
</p>
創(chuàng )建錄音
AudioRecord audioRecord = new AudioRecord(AUDIO_SOURCE, SAMPLE_RATE_IN_HZ, CHANNEL_CONFIGURATION, AUDIO_FORMAT, bufferSizeInBytes);
配置AudioRecord后,需要查看AudioRecord的狀態(tài)??赡芤驗闄嘞迒?wèn)題或者其他原因導致AudioRecord創(chuàng )建失敗或者狀態(tài)不正確;
if (audioRecord == null || audioRecord.getState() != AudioRecord.STATE_INITIALIZED) {
throw new AudioConfigurationException();
}
開(kāi)始采集
AudioRecord創(chuàng )建成功后,就可以根據startRecording()接口開(kāi)始采集視頻了。
獲取音頻數據
獲取音頻數據需要一個(gè)線(xiàn)程不斷地讀出AudioRecord緩沖區中的音頻數據。
int size = audioRecord.read(audioSamplesBuffer, 0, audioSamplesBufferMaxSize);
將音頻數據放入PCM隊列
pcm隊列的設計后面會(huì )介紹
停止采集
和釋放資源
停止音頻采集線(xiàn)程,調用stop停止采集,調用release釋放AudioRecord創(chuàng )建的資源。
音頻編碼
音頻編碼格式有很多,mp3、aac、wma、ogg、pous、amr等,aac在低碼率場(chǎng)景下音質(zhì)非常好,aac編碼在移動(dòng)平臺上應用最廣泛,無(wú)論是aac單獨的音頻編碼或視頻中的音頻流部分。
音頻編解碼器:fdk_aac、MediaCodec
音頻編碼線(xiàn)程從pcm隊列中獲取數據編碼,編碼完成后將AAC數據放入AAC隊列中。
這里引入軟碼libfdk_aac,將pcm編碼成aac流。這里介紹的libfdk_aac是基于ffmpeg的。如果以后要使用其他編碼庫,可以通過(guò)ffmpeg配置。
基于ffmpeg的API編碼aac的好處是只需要寫(xiě)一段音頻編碼代碼即可。對于不同的編碼器,后面只需要調整對應的編碼器ID或者編碼器名稱(chēng),就可以對不同的格式進(jìn)行編碼。音頻文件。由于要使用第三方庫libfdk_aac對aac文件進(jìn)行編碼,所以在交叉編譯ffmpeg時(shí)必須先編譯libfdk_aac庫。音頻編碼是通過(guò)調用ffmpeg的API來(lái)實(shí)現的。
音頻編碼需要在線(xiàn)程中實(shí)現,線(xiàn)程會(huì )從pcm隊列中獲取pcm數據。當隊列為空時(shí),等待當前線(xiàn)程。當隊列中有數據時(shí),信號喚醒當前線(xiàn)程。得到pcm音頻數據后,開(kāi)始編碼。編碼完成后,將編碼后的aac數據放入aac隊列。
OpenGL上下文環(huán)境搭建后臺

OpenGL 不負責窗口管理和上下文管理。OpenGL 窗口管理和上下文管理將由各個(gè)平臺或設備完成。為了在 openGL 的輸出和設備的屏幕之間建立橋梁,需要使用 EGL。EGL是雙緩沖工作模式,即有一個(gè)Back Frame Buffer和一個(gè)Front Frame Buffer。正常繪圖操作的目標是 Back Frame Buffer。操作完成后,調用eglSwapBuffer api將繪制的Back Frame Buffer交換到Front Frame Buffer并顯示。在A(yíng)ndroid平臺上,使用了EGL的機制。EGL承擔為OpenGL提供上下文環(huán)境和窗口管理的責任。
安卓上下文
在A(yíng)ndroid平臺上使用opengl es,第一種方式是直接使用GLSurfaceView。這種方式使用OpenGL ES比較簡(jiǎn)單,因為不需要開(kāi)發(fā)者搭建OpenGL ES的上下文環(huán)境,也不需要為OpenGL ES創(chuàng )建顯示設備。但是任何事情都有兩個(gè)方面,有優(yōu)點(diǎn)也有缺點(diǎn)。使用 GLSurfaceView 不夠靈活。OpenGL ES的很多核心用法,比如共享上層上下文實(shí)現多線(xiàn)程共同操作一個(gè)紋理等,是不能用的。所以這里需要通過(guò)EGL api搭建OpenGL上下文環(huán)境,基于C++環(huán)境搭建。因為如果用Java層來(lái)構建,對于普通應用來(lái)說(shuō)可能是可行的,但是對于視頻應用來(lái)說(shuō),為了效率和性能,
任何 opengl 命令都必須在其自己的 OpenGL 上下文中運行,因此在 EGL 構建 opengl 上下文后,它可以執行 OpenGL ES。
OpenGL處理??模塊需要在線(xiàn)程中實(shí)現,線(xiàn)程函數:
EGL 環(huán)境管理 渲染窗口管理 紋理創(chuàng )建 視頻流處理 視頻捕獲和預覽
Camera的參數配置這里就不介紹了,這里只介紹Camera如何結合OpenGL實(shí)現預覽。
SurfaceView的轉換
首先UI層構造一個(gè)SurfaceView通過(guò)SurfaceView獲取Surface,然后在NDK中將Surface轉化為ANativeWindow,在EGL中通過(guò)ANativeWindow創(chuàng )建EGLSurface。
創(chuàng )建外部紋理
通過(guò) OpenGL 創(chuàng )建外部紋理
將外部紋理設置為 Camera
通過(guò)2創(chuàng )建的外部紋理ID創(chuàng )建一個(gè)SurfaceTexture,并設置一個(gè)監聽(tīng)器SurfaceTexture.setOnFrameAvailableListener(); 每次將視頻流渲染到 SurfaceTexture 時(shí)都會(huì )回調此方法。通過(guò) setPreviewTexture 接口將 SurfaceTexture 設置為 Camera。
OpenGL操作外部紋理實(shí)現預覽
Camera/Camera2采集攝像頭流并將采集到的攝像頭流渲染成外部紋理,然后通過(guò)OpenGL將外部紋理渲染到窗口,實(shí)現預覽。
視頻采集預覽流程圖如下:
視頻編碼
MediaCodec的配置和使用這里就不介紹了。這里只介紹OpenGL ES如何與MediaCodec進(jìn)行交互。
MediaCodec的輸入視頻流經(jīng)過(guò)OpenGL模塊處理,通過(guò)createInputSurface() api得到一個(gè)Surface,最后Surface創(chuàng )建一個(gè)EGL Surface。
OpenGL通過(guò)渲染外部紋理到MediaCodec inputsurface通知MediaCodec獲取編碼數據,獲取編碼數據后,通過(guò)處理進(jìn)入h264隊列。
MediaCodec與OpenGL運行圖:
推流:
推流模塊按照特定的順序從aac隊列/h264隊列中獲取數據,進(jìn)行處理,然后封裝成flv格式進(jìn)行推流。
流媒體模塊通過(guò)FFmpeg中集成的rtmp協(xié)議實(shí)現流媒體。這樣我們就可以通過(guò)ffmpeg的寫(xiě)入文件的API來(lái)實(shí)現流式傳輸了。
這樣做的好處是你只需要編寫(xiě)一個(gè)streaming模塊的代碼。當我們要在本地寫(xiě)音視頻流時(shí),streaming模塊的代碼不需要修改,只需要修改我們傳給streaming模塊的路徑即可。例如:mnt/sdcard/0/test.mp4,可以將視頻流以mp4格式保存到本地。
解決方案:WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章功能呢?
作為一個(gè)新聞門(mén)戶(hù)網(wǎng)站的站長(cháng),最難做的就是采集
更全面的內容。一般在這種情況下,人們會(huì )從較大的網(wǎng)站上采集
文章,發(fā)布在自己的網(wǎng)站上。那么使用WordPress程序搭建的網(wǎng)站如何實(shí)現調用其他網(wǎng)站文章的功能呢?今天給大家分享一下RSS訂閱功能。我們可以通過(guò)RSS功能調用其他網(wǎng)站的文章自動(dòng)顯示在我們自己的網(wǎng)站上,并且可以自動(dòng)更新。

那怎么辦呢?方法很簡(jiǎn)單,只需要將下面的代碼放在你的網(wǎng)站顯示文章列表的位置即可。
</a>

注意:代碼中的網(wǎng)站需要修改為調用網(wǎng)站的URL。如果你的網(wǎng)站想放更多本站的文章,只需要復制這段代碼,修改里面的網(wǎng)址即可。
注:本文為星速云原創(chuàng )版權,禁止轉載。一經(jīng)發(fā)現,追究版權責任!
解決方案:C#調用大華相機SDK獲取圖片,轉換成VisionPro的Icogimage格式
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 418 次瀏覽 ? 2022-12-01 08:30
文中講了C#如何調用大華相機SDK,通過(guò)回調事件獲取圖片并轉換成visionpro的icogimage格式,文末會(huì )分享例程。調用SDK前需要在C盤(pán)安裝大華的攝像頭軟件。如果不安裝到C盤(pán),會(huì )顯示缺少依賴(lài),無(wú)法運行dll。如果有其他方法可以加群交流。
01
—
大華SDK幫助類(lèi)介紹,這里是一個(gè)dll幫助類(lèi),里面寫(xiě)了相機的基本功能:枚舉-實(shí)例化-相機連接-回調圖像采集-觸發(fā)設置-曝光調試等-關(guān)閉相機;剩下的可以自己添加
首先枚舉攝像頭,獲取攝像頭序列號。在構造函數中,有一個(gè)實(shí)參需要作為key輸入,也就是key。目的是區分多個(gè)攝像頭,比如四個(gè)攝像頭。先枚舉四個(gè)序號并實(shí)例化四個(gè)AhuaCamera對象分別輸入對應的序號來(lái)實(shí)例化對應的攝像頭,比較方便。
icogimage格式是visionpro中常用的圖片格式。這個(gè)轉換函數用在回調事件中?;卣{將返回單幀數據包。轉換函數根據數據包的參數生成,如:黑白顏色、長(cháng)寬、數據量等。icogimage圖片
02
—
一般通話(huà)-單攝像頭
通用調用順序——枚舉攝像頭列表,實(shí)例化攝像頭對象,連接攝像頭后訂閱圖片傳輸事件
常規鏈接:阿里云:
.
技術(shù)群:加小編微信,評論進(jìn)群
解決方案:說(shuō)說(shuō)2015的SEO新趨勢:內容與用戶(hù)體驗為王
站長(cháng)之家()1月21日編譯:對于SEO從業(yè)者來(lái)說(shuō),年初的預測和年末的總結絕對是有意義的,缺一不可的。想要做好SEO,預測和總結自然少不了。近日,國外知名SEO專(zhuān)家Sujan Patel為我們帶來(lái)了他對2015年SEO行業(yè)的看法。在這個(gè)SEO日新月異的時(shí)代,預測并不絕對,但總能給我們一些啟發(fā)。
以下是 2015 年您需要了解的有關(guān) SEO 的一些事項:
關(guān)注內容的質(zhì)量,而不是速度和數量
2015年的SEO依然秉承“內容為王”的原則,其中內容策劃尤為重要。由于搜索引擎非常重視網(wǎng)站內容的長(cháng)度和搜索熱度,因此需要更加關(guān)注個(gè)性化需求,是否值得閱讀,以及給用戶(hù)帶來(lái)的價(jià)值等等。
Content Curation:也可稱(chēng)為內容造卷,旨在幫助用戶(hù)從海量網(wǎng)絡(luò )信息中“篩選”出最符合用戶(hù)個(gè)性化需求、對用戶(hù)最有價(jià)值、最值得閱讀的內容.
近年來(lái),谷歌開(kāi)始在搜索結果頁(yè)面顯示“深度報道”。所謂“深度報道”,是指篇幅在1500字以上的文章。這也是SEO和內容營(yíng)銷(xiāo)領(lǐng)域從“快速生產(chǎn)”信息碎片到內容量的轉變。
在SEO行業(yè)發(fā)展的初期,站長(cháng)們幾乎都是在自己的網(wǎng)站上發(fā)表文章進(jìn)行優(yōu)化和推廣,或者在訪(fǎng)客博客(Guest Blogging)上發(fā)表文章,做外鏈。用戶(hù)不值錢(qián),也能在搜索引擎中獲得好的排名。
不過(guò)隨著(zhù)谷歌算法的不斷完善,這種做法已經(jīng)被淘汰,谷歌甚至開(kāi)始大規模打擊Guest blogging。
關(guān)注用戶(hù)體驗,而非個(gè)人喜好
在這個(gè)內容信息泛濫的時(shí)代,只有好的內容才能脫穎而出,實(shí)屬不易。除了好的內容,還要知道用戶(hù)想要什么,如何讓用戶(hù)盡快找到對自己最有利的優(yōu)質(zhì)內容。這就是用戶(hù)體驗。
SEO剛出現時(shí),很多站長(cháng)善于利用搜索引擎的“漏洞”,通過(guò)鏈接欺詐、關(guān)鍵詞堆砌、彈窗廣告等各種黑帽手段達到優(yōu)化目的。當然,如果現在還用這些方法,那就只能是“坐以待斃”了。
因此,在2015年的SEO工作中,除了網(wǎng)站內容,網(wǎng)站的整體策劃也是不可忽視的工作。必須從網(wǎng)站設計、網(wǎng)站結構、網(wǎng)站性能等各個(gè)方面給用戶(hù)帶來(lái)更好的體驗。
事實(shí)上,用戶(hù)和搜索引擎爬蟲(chóng)之間存在一定的相似性。一般來(lái)說(shuō),網(wǎng)站設計越方便用戶(hù)使用,越有利于搜索引擎爬蟲(chóng)快速有效地抓取和抓取頁(yè)面。
再者,在這個(gè)移動(dòng)互聯(lián)網(wǎng)盛行、多屏共存的時(shí)代,你的網(wǎng)站必須兼容各種平臺和設備,這也是響應式設計如此流行的原因。而且采用響應式設計的網(wǎng)站只需要一個(gè)URL就可以滿(mǎn)足所有設備的需求,跳出率也優(yōu)于其他類(lèi)型的網(wǎng)站。
讓用戶(hù)參與
2015年網(wǎng)站的用戶(hù)體驗不應僅僅停留在網(wǎng)站設計層面。很多時(shí)候,用戶(hù)所追求的,才是SEOer們以后真正應該關(guān)注的。
例如,如果有一小部分Facebook或Twitter用戶(hù)抱怨某個(gè)網(wǎng)站的服務(wù)頁(yè)面內容不完整,那么SEOers就應該開(kāi)始完善頁(yè)面信息了。你不妨多關(guān)注一下用戶(hù)在社交媒體、博客留言、用戶(hù)反饋中給你的建議。他們會(huì )用最通俗易懂的語(yǔ)言告訴你“你的網(wǎng)站哪些功能是多余的,哪些地方不夠用”。
此外,用戶(hù)分析還可以用來(lái)了解網(wǎng)站的流量來(lái)源、優(yōu)勢和劣勢。
讓用戶(hù)參與其中,不僅可以從用戶(hù)的角度提升自己網(wǎng)站的體驗,還可以讓用戶(hù)因為參與感而更加忠誠。
還有一件事...
除了以上幾項之外,還應該定期對網(wǎng)站的入口頁(yè)和跳出頁(yè)進(jìn)行分析,然后根據需要進(jìn)行優(yōu)化;使用谷歌管理員工具檢查404頁(yè)面,定期清理死鏈接等。
總結
隨著(zhù)用戶(hù)體驗越來(lái)越重要,2015年對用戶(hù)瀏覽行為的跟蹤和分析將成為SEO的必做之事。至于網(wǎng)站的內容,我就不多說(shuō)了。記得做好內容質(zhì)量、內容價(jià)值、內容相關(guān)性和內容個(gè)性化。如果你能做到這些,相信你的排名也不會(huì )太差。 查看全部
解決方案:C#調用大華相機SDK獲取圖片,轉換成VisionPro的Icogimage格式
文中講了C#如何調用大華相機SDK,通過(guò)回調事件獲取圖片并轉換成visionpro的icogimage格式,文末會(huì )分享例程。調用SDK前需要在C盤(pán)安裝大華的攝像頭軟件。如果不安裝到C盤(pán),會(huì )顯示缺少依賴(lài),無(wú)法運行dll。如果有其他方法可以加群交流。
01
—
大華SDK幫助類(lèi)介紹,這里是一個(gè)dll幫助類(lèi),里面寫(xiě)了相機的基本功能:枚舉-實(shí)例化-相機連接-回調圖像采集-觸發(fā)設置-曝光調試等-關(guān)閉相機;剩下的可以自己添加

首先枚舉攝像頭,獲取攝像頭序列號。在構造函數中,有一個(gè)實(shí)參需要作為key輸入,也就是key。目的是區分多個(gè)攝像頭,比如四個(gè)攝像頭。先枚舉四個(gè)序號并實(shí)例化四個(gè)AhuaCamera對象分別輸入對應的序號來(lái)實(shí)例化對應的攝像頭,比較方便。
icogimage格式是visionpro中常用的圖片格式。這個(gè)轉換函數用在回調事件中?;卣{將返回單幀數據包。轉換函數根據數據包的參數生成,如:黑白顏色、長(cháng)寬、數據量等。icogimage圖片
02

—
一般通話(huà)-單攝像頭
通用調用順序——枚舉攝像頭列表,實(shí)例化攝像頭對象,連接攝像頭后訂閱圖片傳輸事件
常規鏈接:阿里云:
.
技術(shù)群:加小編微信,評論進(jìn)群
解決方案:說(shuō)說(shuō)2015的SEO新趨勢:內容與用戶(hù)體驗為王
站長(cháng)之家()1月21日編譯:對于SEO從業(yè)者來(lái)說(shuō),年初的預測和年末的總結絕對是有意義的,缺一不可的。想要做好SEO,預測和總結自然少不了。近日,國外知名SEO專(zhuān)家Sujan Patel為我們帶來(lái)了他對2015年SEO行業(yè)的看法。在這個(gè)SEO日新月異的時(shí)代,預測并不絕對,但總能給我們一些啟發(fā)。
以下是 2015 年您需要了解的有關(guān) SEO 的一些事項:
關(guān)注內容的質(zhì)量,而不是速度和數量
2015年的SEO依然秉承“內容為王”的原則,其中內容策劃尤為重要。由于搜索引擎非常重視網(wǎng)站內容的長(cháng)度和搜索熱度,因此需要更加關(guān)注個(gè)性化需求,是否值得閱讀,以及給用戶(hù)帶來(lái)的價(jià)值等等。
Content Curation:也可稱(chēng)為內容造卷,旨在幫助用戶(hù)從海量網(wǎng)絡(luò )信息中“篩選”出最符合用戶(hù)個(gè)性化需求、對用戶(hù)最有價(jià)值、最值得閱讀的內容.
近年來(lái),谷歌開(kāi)始在搜索結果頁(yè)面顯示“深度報道”。所謂“深度報道”,是指篇幅在1500字以上的文章。這也是SEO和內容營(yíng)銷(xiāo)領(lǐng)域從“快速生產(chǎn)”信息碎片到內容量的轉變。
在SEO行業(yè)發(fā)展的初期,站長(cháng)們幾乎都是在自己的網(wǎng)站上發(fā)表文章進(jìn)行優(yōu)化和推廣,或者在訪(fǎng)客博客(Guest Blogging)上發(fā)表文章,做外鏈。用戶(hù)不值錢(qián),也能在搜索引擎中獲得好的排名。

不過(guò)隨著(zhù)谷歌算法的不斷完善,這種做法已經(jīng)被淘汰,谷歌甚至開(kāi)始大規模打擊Guest blogging。
關(guān)注用戶(hù)體驗,而非個(gè)人喜好
在這個(gè)內容信息泛濫的時(shí)代,只有好的內容才能脫穎而出,實(shí)屬不易。除了好的內容,還要知道用戶(hù)想要什么,如何讓用戶(hù)盡快找到對自己最有利的優(yōu)質(zhì)內容。這就是用戶(hù)體驗。
SEO剛出現時(shí),很多站長(cháng)善于利用搜索引擎的“漏洞”,通過(guò)鏈接欺詐、關(guān)鍵詞堆砌、彈窗廣告等各種黑帽手段達到優(yōu)化目的。當然,如果現在還用這些方法,那就只能是“坐以待斃”了。
因此,在2015年的SEO工作中,除了網(wǎng)站內容,網(wǎng)站的整體策劃也是不可忽視的工作。必須從網(wǎng)站設計、網(wǎng)站結構、網(wǎng)站性能等各個(gè)方面給用戶(hù)帶來(lái)更好的體驗。
事實(shí)上,用戶(hù)和搜索引擎爬蟲(chóng)之間存在一定的相似性。一般來(lái)說(shuō),網(wǎng)站設計越方便用戶(hù)使用,越有利于搜索引擎爬蟲(chóng)快速有效地抓取和抓取頁(yè)面。
再者,在這個(gè)移動(dòng)互聯(lián)網(wǎng)盛行、多屏共存的時(shí)代,你的網(wǎng)站必須兼容各種平臺和設備,這也是響應式設計如此流行的原因。而且采用響應式設計的網(wǎng)站只需要一個(gè)URL就可以滿(mǎn)足所有設備的需求,跳出率也優(yōu)于其他類(lèi)型的網(wǎng)站。
讓用戶(hù)參與

2015年網(wǎng)站的用戶(hù)體驗不應僅僅停留在網(wǎng)站設計層面。很多時(shí)候,用戶(hù)所追求的,才是SEOer們以后真正應該關(guān)注的。
例如,如果有一小部分Facebook或Twitter用戶(hù)抱怨某個(gè)網(wǎng)站的服務(wù)頁(yè)面內容不完整,那么SEOers就應該開(kāi)始完善頁(yè)面信息了。你不妨多關(guān)注一下用戶(hù)在社交媒體、博客留言、用戶(hù)反饋中給你的建議。他們會(huì )用最通俗易懂的語(yǔ)言告訴你“你的網(wǎng)站哪些功能是多余的,哪些地方不夠用”。
此外,用戶(hù)分析還可以用來(lái)了解網(wǎng)站的流量來(lái)源、優(yōu)勢和劣勢。
讓用戶(hù)參與其中,不僅可以從用戶(hù)的角度提升自己網(wǎng)站的體驗,還可以讓用戶(hù)因為參與感而更加忠誠。
還有一件事...
除了以上幾項之外,還應該定期對網(wǎng)站的入口頁(yè)和跳出頁(yè)進(jìn)行分析,然后根據需要進(jìn)行優(yōu)化;使用谷歌管理員工具檢查404頁(yè)面,定期清理死鏈接等。
總結
隨著(zhù)用戶(hù)體驗越來(lái)越重要,2015年對用戶(hù)瀏覽行為的跟蹤和分析將成為SEO的必做之事。至于網(wǎng)站的內容,我就不多說(shuō)了。記得做好內容質(zhì)量、內容價(jià)值、內容相關(guān)性和內容個(gè)性化。如果你能做到這些,相信你的排名也不會(huì )太差。
解決方案:禾盟科技麥家接口商城有免費的接口可以用商城
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 97 次瀏覽 ? 2022-11-30 17:28
文章采集調用麥家api接口,發(fā)給麥家寫(xiě)作助手,
很簡(jiǎn)單:你下載麥家app,注冊登錄后,就會(huì )出現麥家寫(xiě)作助手,就可以發(fā)布文章了,其實(shí)所有的軟件都是通過(guò)麥家接口進(jìn)行寫(xiě)作。
有用麥家api接口的,我接了一個(gè),可以寫(xiě)文章、發(fā)表到其他公眾號和頭條、微博等。
可以找禾盟科技麥家接口商城有免費的接口可以用商城有很多種文章發(fā)布模式,
有啊,用前景網(wǎng)網(wǎng)址接口直接開(kāi)發(fā),
現在有專(zhuān)門(mén)的平臺:有贊微商城-專(zhuān)業(yè)的微商開(kāi)發(fā)平臺里面的所有業(yè)務(wù)也包括發(fā)文章。
有啊,接觸過(guò)麥家接口,感覺(jué)還是不錯的,用網(wǎng)址接口可以實(shí)現。麥家寫(xiě)作助手是禾盟科技的接口,他們家發(fā)文章就類(lèi)似于在有贊微商城的時(shí)候開(kāi)通收藏,
有啊,我接了麥家api接口,有了它軟件就不愁發(fā)不了文章了。麥家api接口——麥家官方api定制平臺(v:2902160155)是麥家官方api定制平臺,由禾盟科技研發(fā)。禾盟科技多年的寫(xiě)作服務(wù)經(jīng)驗,我們接口不僅可以通過(guò)麥家官方接口發(fā)表微信公眾號文章、平臺文章,同時(shí)對qq群,貼吧以及其他網(wǎng)站發(fā)布內容還是非常有用的,可以通過(guò)麥家接口發(fā)表到微信、頭條、百家以及其他網(wǎng)站上面,可以更好的進(jìn)行文章分發(fā)。 查看全部
解決方案:禾盟科技麥家接口商城有免費的接口可以用商城
文章采集調用麥家api接口,發(fā)給麥家寫(xiě)作助手,
很簡(jiǎn)單:你下載麥家app,注冊登錄后,就會(huì )出現麥家寫(xiě)作助手,就可以發(fā)布文章了,其實(shí)所有的軟件都是通過(guò)麥家接口進(jìn)行寫(xiě)作。

有用麥家api接口的,我接了一個(gè),可以寫(xiě)文章、發(fā)表到其他公眾號和頭條、微博等。
可以找禾盟科技麥家接口商城有免費的接口可以用商城有很多種文章發(fā)布模式,
有啊,用前景網(wǎng)網(wǎng)址接口直接開(kāi)發(fā),

現在有專(zhuān)門(mén)的平臺:有贊微商城-專(zhuān)業(yè)的微商開(kāi)發(fā)平臺里面的所有業(yè)務(wù)也包括發(fā)文章。
有啊,接觸過(guò)麥家接口,感覺(jué)還是不錯的,用網(wǎng)址接口可以實(shí)現。麥家寫(xiě)作助手是禾盟科技的接口,他們家發(fā)文章就類(lèi)似于在有贊微商城的時(shí)候開(kāi)通收藏,
有啊,我接了麥家api接口,有了它軟件就不愁發(fā)不了文章了。麥家api接口——麥家官方api定制平臺(v:2902160155)是麥家官方api定制平臺,由禾盟科技研發(fā)。禾盟科技多年的寫(xiě)作服務(wù)經(jīng)驗,我們接口不僅可以通過(guò)麥家官方接口發(fā)表微信公眾號文章、平臺文章,同時(shí)對qq群,貼吧以及其他網(wǎng)站發(fā)布內容還是非常有用的,可以通過(guò)麥家接口發(fā)表到微信、頭條、百家以及其他網(wǎng)站上面,可以更好的進(jìn)行文章分發(fā)。
解決方案:webrtc的音視頻同步處理一
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2022-11-30 11:55
WebRTC的音視頻同步處理之一
WebRTC如何處理內部音頻和視頻同步?
幾個(gè)主要詞:捕獲時(shí)間、
渲染時(shí)間、RTP 的時(shí)間戳、SR、計算 NTP
讓我們從視頻捕獲過(guò)程開(kāi)始
1. 調用堆棧
2. 采集
The VideoCaptureImpl::IncomingFrame
調用 set_timestamp_ms() 設置時(shí)間
rtc::TimeMillis() 此時(shí)間是獲取的
CLOCK_MONOTONIC:計時(shí)從系統啟動(dòng)的那一刻開(kāi)始,不受用戶(hù)更改的系統時(shí)間的影響
此值分配給timestamp_us_
3. 繼續執行并進(jìn)入
4. 您可以看到此處設置了 NTP
incoming_frame.set_ntp_time_ms(capture_ntp_time_ms);
未來(lái)有三個(gè)分支計算capture_ntp_time_ms
斷點(diǎn)調試排在第二位,為什么?
因為 video_frame.render_time_ms() 獲取timestamp_us_,所以之前設置的時(shí)間是從引導時(shí)間計算的
但delta_ntp_internal_ms_補充一下,這個(gè)價(jià)值是怎么來(lái)的?
5. 接下來(lái),在 RTP 中生成時(shí)間戳,該時(shí)間戳仍在
設置ntp,生成時(shí)間戳,下一步就是放入編碼隊列和編碼線(xiàn)程進(jìn)行編碼
6.總結一下:
delta_ntp_internal_ms_ = 絕對時(shí)間 - 自啟動(dòng)打開(kāi)以來(lái)的時(shí)間
timestamp_us_ = render_time_ms() =
set_timestamp_ms() = 自啟動(dòng)以來(lái)的時(shí)間
ntp_time_ms_ = 絕對時(shí)間 = timestamp_us_ + delta_ntp_internal_ms_
時(shí)間戳 = 90*ntp_time_ms_
7. 編碼后的調用堆棧
8.函數 RtpVideoSender::OnEncodedImage().
您可以看到rtp_timestamp有一個(gè)偏移值 rtp_rtcp->StartTimestamp()。事實(shí)證明,這是一個(gè)隨機值,為安全而加密。
9. 此代碼是重頭戲,設置 RTCP 時(shí)間戳和 NTP 之間的對應關(guān)系以生成 SR
這個(gè)capture_time_ms中間繞了好幾圈,還是打開(kāi)到現在的時(shí)間。
10. 發(fā)送的每一幀數據都會(huì )刷新與 RTCP 時(shí)間點(diǎn)擊對應的 NTP
11. 接下來(lái),讓我們看看 sr 是如何打包的
rtp_timestamp = 初始偏移量 + 發(fā)送幀的 tm
+ 上次發(fā)送到當前經(jīng)過(guò)的幀的 tm
NTP 是當前時(shí)間,但需要轉換
report->SetNtp(TimeMicrosToNtp(ctx.now_us_));
sr 中的 NTP 分為兩部分:
秒是正常符號
幾秒鐘后,它被分成 2 的 32 次方
12. 總結一下:
總體而言,該過(guò)程還隱藏了一些鏈接:
NTP 計算生成時(shí)間戳
收錄
時(shí)間戳和 ntp 之間的對應關(guān)系。
請注意,SR 中 NTP 的表示分為 2 的 32 次方,而不是毫秒
分享技術(shù):外貿整合營(yíng)銷(xiāo)谷歌SEO簡(jiǎn)介
升騰科技外貿整合營(yíng)銷(xiāo)基于8年外貿推廣經(jīng)驗研發(fā),以SEO為核心的智能網(wǎng)絡(luò )營(yíng)銷(xiāo)系統平臺,集多語(yǔ)言建站(Web)、搜索引擎優(yōu)化(SEO)、社交媒體大數據于一體營(yíng)銷(xiāo)(SNS)、搜索引擎營(yíng)銷(xiāo)(SEM)、視頻營(yíng)銷(xiāo)(Video)、交易員數據(DMS)、B2B平臺推廣(B2B)營(yíng)銷(xiāo)模式,幫助外貿企業(yè)通過(guò)多語(yǔ)言、多關(guān)鍵詞 、多搜索引擎、多渠道推廣的模式整合,實(shí)現低成本獲取優(yōu)質(zhì)客戶(hù)。
你有沒(méi)有擔心遇到這樣的問(wèn)題?
● 沒(méi)有流量,網(wǎng)站就不能跨入網(wǎng)絡(luò )營(yíng)銷(xiāo)的門(mén)檻?
● 網(wǎng)站關(guān)鍵詞沒(méi)有排名,前五的搜索引擎流量很少?
● SEO優(yōu)化時(shí)間成本高,能否滿(mǎn)足公司的銷(xiāo)售目標,又沒(méi)有24小時(shí)的品牌展示?
● SEO優(yōu)化,關(guān)鍵詞排名能否穩定?沒(méi)有豐富的網(wǎng)站內容,是否被搜索引擎收錄?
● 潛在精準客戶(hù)很難通過(guò)搜索引擎找到您的網(wǎng)站,網(wǎng)站價(jià)值無(wú)法體現?
● 組建自己的SEO團隊,但成本太高,沒(méi)有達到預期目標?
1.提高網(wǎng)站加載速度
除了少數幾次,谷歌很少公開(kāi)其算法中的排名因素。因此,他們公布的每一個(gè)排名因素對于SEO來(lái)說(shuō)都是一種非常有價(jià)值的信息,值得所有做英文SEO優(yōu)化的人去關(guān)注。
網(wǎng)站速度是谷歌公布的排名因素之一,尤其是移動(dòng)搜索排名。
首先,您必須了解您網(wǎng)站的當前速度。推薦使用谷歌的PageSpeed Insights工具,輸入你的網(wǎng)頁(yè)網(wǎng)址,就可以得到谷歌對其速度的詳細評價(jià)。
PageSpeed Insights 是對頁(yè)面速度性能的測試,不包括實(shí)際速度測試。要了解網(wǎng)站的實(shí)際加載速度,我們可以使用免費工具網(wǎng)頁(yè)測試。
測試時(shí),您可以自由選擇測試區域。如果是外貿網(wǎng)站,一般可以選擇美國地區進(jìn)行測試,這也是默認選項。如果是國內的網(wǎng)站,那自然是選擇中國比較好。也就是選擇測試區域作為你的目標用戶(hù)所在的區域,畢竟網(wǎng)站是供他們訪(fǎng)問(wèn)的。
這個(gè)工具不僅可以查看實(shí)際的加載速度,還有對應的檢測報告,更詳細的資源加載耗時(shí):
站點(diǎn)速度對于排名很重要,但不應過(guò)分關(guān)注。從對超過(guò)1000萬(wàn)條排名數據的研究中,我們發(fā)現網(wǎng)站速度對排名沒(méi)有明顯的促進(jìn)作用。也就是說(shuō),您的網(wǎng)站快或慢并不重要;但是,如果網(wǎng)站打開(kāi)速度太慢,則必須進(jìn)行整改。一般建議網(wǎng)站能秒打開(kāi),最好不要慢于3秒。
一般來(lái)說(shuō),網(wǎng)站的速度取決于所使用的主機和頁(yè)面的大小。因此,選擇一臺質(zhì)量好的主機非常重要。對于外貿網(wǎng)站,我們推薦使用Siteground主機。盡量不要在網(wǎng)頁(yè)上使用尺寸過(guò)大的圖片,也不要加載過(guò)多的媒體資源,以免拖慢訪(fǎng)問(wèn)速度。
根據一項研究,在谷歌首頁(yè)排名第一的英文網(wǎng)站通常比排名在首頁(yè)底部的網(wǎng)站加載速度更快。
因此,如果你想做好英文SEO,你需要讓你的網(wǎng)站加載速度更快。
2、爭取谷歌Featured Snippets專(zhuān)項展示
如果我們對Featured Snippets做一個(gè)定位,我們可以稱(chēng)它為排名0的位置,也就是說(shuō)它比排名第一的位置要好。
作為第54個(gè)技巧,我們在Google SEO詞條優(yōu)化技巧中也討論過(guò)這一點(diǎn),下面會(huì )做一些補充,具體是如何操作才能拿下這個(gè)展示位置。
首先,您必須找到一個(gè) 關(guān)鍵詞 和您已經(jīng)獲得良好排名的相應頁(yè)面。這個(gè)排名在第一頁(yè)是最好的,因為根據 Ahrefs 的統計,99.58% 的 Featured Snippets 都是從第一頁(yè)結果中挑選出來(lái)的。
所以,想要爭奪這個(gè)特殊的展示空間,首先得跨過(guò)首頁(yè)這道門(mén)檻。
接下來(lái),你需要有一個(gè)明確的內容定位來(lái)滿(mǎn)足Featured Snippets的要求。一般來(lái)說(shuō),特殊展示空間的內容有以下幾種:
定義類(lèi)、名詞解釋?zhuān)ɡ纾菏裁词荢EO)
推薦類(lèi)別,1、2、3...排名(例如:Top 10 SEO 工具)
表類(lèi),如價(jià)格、型號等(例如:SEO Prices)
根據首頁(yè)排名,您的內容需要定位在以上類(lèi)型中,才有機會(huì )被特選展示槽選中。被選中的好處不言而喻,是獲得這個(gè)關(guān)鍵詞流量的最佳位置。
3.提高用戶(hù)的停留時(shí)間
在我看來(lái),用戶(hù)在網(wǎng)站上的停留時(shí)間或者說(shuō)持續訪(fǎng)問(wèn)的時(shí)間可以看作是一個(gè)重要的英文SEO排名因素。試想一下,如果一個(gè)用戶(hù)進(jìn)入你的網(wǎng)站,然后迅速離開(kāi),這意味著(zhù)什么?說(shuō)明你的網(wǎng)站不是用戶(hù)需要的,或者不能提供用戶(hù)需要的信息。
谷歌會(huì )跟蹤和統計用戶(hù)行為,然后對網(wǎng)站排名做出調整。谷歌搜索的本質(zhì)是讓用戶(hù)更容易找到他們需要的東西。因此,用戶(hù)喜歡的英文網(wǎng)站排名會(huì )提高;用戶(hù)討厭的英文網(wǎng)站排名自然只會(huì )下降。
用戶(hù)的停留時(shí)間可以直接反映用戶(hù)對一個(gè)網(wǎng)站的喜好程度。
所以盡可能的降低用戶(hù)的跳出率,對于英文SEO是非常有幫助的。怎么做?下面分享幾個(gè)方法:
提高內容質(zhì)量,頁(yè)面內容不能只有幾張圖、幾句話(huà),要圍繞主題,盡可能擴展用戶(hù)會(huì )感興趣的知識點(diǎn)。推薦你閱讀這篇文章:外貿網(wǎng)站建設內容如何發(fā)布方便優(yōu)化
除了文字和圖片,可以考慮在內容中插入相應的視頻。實(shí)驗證明,這種方法也能起到很好的降低跳出率的作用。
4.附加鏈接
附加鏈接是出現在 Google 搜索結果中的網(wǎng)站鏈接。例如,您可以去谷歌搜索我們客戶(hù)的品牌:finemim,您可以看到這個(gè)網(wǎng)站的Sitelinks。
獲得Sitelinks表明谷歌已經(jīng)認可了本網(wǎng)站的品牌,并給予了本網(wǎng)站較高的信任度。相對的,谷歌會(huì )給這個(gè)網(wǎng)站更多的權重加成。
如何獲得附加鏈接?
首先,你的網(wǎng)站要有足夠多的優(yōu)質(zhì)內容;其次,你的網(wǎng)站結構要清晰,主題要明確。最后,保持網(wǎng)站活躍,定期更新優(yōu)質(zhì)內容。慢慢的,你的網(wǎng)站就能獲得Sitelinks了。
5. 吃
很久以前,英文網(wǎng)站或域名增加權重的方式就是單純依靠外鏈。
今天,谷歌會(huì )根據專(zhuān)業(yè)性、權威性和可信度三個(gè)方面來(lái)評估你網(wǎng)站的權重。這三個(gè)方面統稱(chēng)為EAT。
去年的Google Quality Score Guidelines明確指出了EAT的內容。
事實(shí)上,谷歌最近并沒(méi)有開(kāi)始關(guān)注EAT。EAT 的概念已經(jīng)存在好幾年了。只是谷歌現在更加重視EAT作為網(wǎng)站價(jià)值的衡量標準。
例如,最新版本的 Google 搜索工作原理報告指出,他們的目標是對可信賴(lài)的來(lái)源進(jìn)行良好排名。
甚至,他們提到 EAT 作為核心排名因素。
英文SEO的重點(diǎn)來(lái)了,如何提高自己網(wǎng)站的EAT?建議從以下幾點(diǎn)入手。
1.獲取專(zhuān)業(yè)人士撰寫(xiě)的內容
網(wǎng)站內容越專(zhuān)業(yè)越好,最好由業(yè)內知名人士或機構撰寫(xiě)。在普通人寫(xiě)的內容和行業(yè)專(zhuān)家寫(xiě)的內容之間,谷歌肯定更喜歡后者。
特別是醫學(xué)和醫學(xué)指導內容必須由具有相關(guān)資格的專(zhuān)家、學(xué)者或機構撰寫(xiě)。
這里的內容主要是指文章類(lèi)型的內容。文章有出版商,可以署名。
2. 公開(kāi)透明
谷歌建議大多數網(wǎng)站可以公開(kāi)一些信息,比如網(wǎng)站的負責人是誰(shuí),是個(gè)人、公司還是其他團體組織,以及詳細的聯(lián)系方式。
因此,最好在您的英文網(wǎng)站中收錄
以下信息:
關(guān)于我們
聯(lián)系我們
相關(guān)資源的引用鏈接
隱私政策和服務(wù)條款
作者簽名
3. 被其他權威網(wǎng)站提及
你說(shuō)你是權威、專(zhuān)家也沒(méi)用。只有很多人認可你的專(zhuān)業(yè),你才是真正的專(zhuān)業(yè)。如果你說(shuō)你是專(zhuān)業(yè)的,別人不承認,那么谷歌就會(huì )相信后者,這是大多數人的意見(jiàn)。
因此,獲得其他網(wǎng)站的認可非常重要。簡(jiǎn)而言之,這意味著(zhù)擁有來(lái)自其他高質(zhì)量網(wǎng)站的反向鏈接,并且這些鏈接來(lái)自正面內容,而不是負面新聞。
6.搜索意圖
搜索意圖在過(guò)去兩年一直是谷歌搜索引擎優(yōu)化的熱點(diǎn)。說(shuō)白了,如果網(wǎng)站內容不符合搜索意圖,那么網(wǎng)站就得不到任何排名。因為,谷歌正在不斷改進(jìn)其算法,以便為用戶(hù)提供最符合他們需求的結果。因此,要想做好英文SEO,就必須了解搜索意圖。
用戶(hù)每次使用 關(guān)鍵詞 搜索都是有目的的,沒(méi)有多少人會(huì )什么都不搜索。換句話(huà)說(shuō),關(guān)鍵詞背后是用戶(hù)的特定需求。
它可能是用戶(hù)尋找某物、購買(mǎi)、比較等的意圖。同樣的 關(guān)鍵詞 背后可能有不止一個(gè)用戶(hù)需求。
因此,只有搞清楚你要排名的關(guān)鍵詞中收錄
的用戶(hù)需求,然后讓網(wǎng)站內容滿(mǎn)足這些需求,才能獲得更好的排名。
有的時(shí)候,關(guān)鍵詞就是需求,明確表達用戶(hù)的需求,比如買(mǎi)東西;很明顯,使用這個(gè)關(guān)鍵詞的用戶(hù),基本上都有購買(mǎi)商品的需求。
Google 還將提供有關(guān)可供購買(mǎi)的產(chǎn)品的反饋。
但是,有時(shí)關(guān)鍵詞收錄
的用戶(hù)需求并不明顯,存在多種可能性。例如,當用戶(hù)在谷歌搜索“英文SEO”這個(gè)詞時(shí),有的用戶(hù)是在尋找相關(guān)信息,有的是為了學(xué)習,還有的是在尋找這樣的服務(wù)等等。
這時(shí)候你應該去搜索這個(gè)詞,看看哪些類(lèi)型的頁(yè)面在谷歌首頁(yè)上排名靠前。如果做SEO的公司占據更多首頁(yè),說(shuō)明谷歌更傾向于提供服務(wù)商信息;如果是文章類(lèi)型的頁(yè)面More,說(shuō)明Google更傾向于為這個(gè)關(guān)鍵詞提供文章信息。
假設首頁(yè)只有文章類(lèi)型的頁(yè)面,說(shuō)明Google對這個(gè)關(guān)鍵詞的意圖是文章素材的內容。嗯,如果你想這樣做 關(guān)鍵詞,你的網(wǎng)站上也必須有相應的文章頁(yè)面。
7.提高點(diǎn)擊率(CTR)
點(diǎn)擊率(CTR)也是谷歌衡量一個(gè)網(wǎng)站能否滿(mǎn)足用戶(hù)需求的指標。這就好比,一個(gè)公司考核員工的績(jì)效,我把你放在一個(gè)職位上,你能不能勝任這個(gè)職位,如果能,你就留下來(lái),以后還有機會(huì )升職;如果你不能,那就退位。
例如,Google 將您的英文網(wǎng)站排在首頁(yè)的第三位。結果,搜索 關(guān)鍵詞 的 100 名用戶(hù)中只有 10 名點(diǎn)擊了您的網(wǎng)站,而 20、30 甚至更多的用戶(hù)點(diǎn)擊了排名在您之后的網(wǎng)站。這給了谷歌一個(gè)明確的信號,表明用戶(hù)對你的網(wǎng)站不感興趣。如果這種情況長(cháng)期存在,你的網(wǎng)站排名肯定會(huì )下降。
早些時(shí)候,我們談到了用戶(hù)停留時(shí)間對網(wǎng)站排名的影響。用戶(hù)點(diǎn)擊進(jìn)入網(wǎng)站是第一步,接下來(lái)就是停留多久。如果沒(méi)有點(diǎn)擊,就沒(méi)有后續。
因此,有必要盡可能地提高您網(wǎng)站的點(diǎn)擊率。這就要求你的網(wǎng)站在谷歌上的搜索內容能夠吸引用戶(hù)并產(chǎn)生點(diǎn)擊欲望。為此,我們有以下建議。
URL 收錄
目標 關(guān)鍵詞
Google的搜索結果中收錄
網(wǎng)頁(yè)的Url信息,用戶(hù)可以直觀(guān)的看到網(wǎng)頁(yè)的Url。如果Url中收錄
用戶(hù)搜索的關(guān)鍵詞,會(huì )增加用戶(hù)對這個(gè)頁(yè)面的期待值。
據統計,收錄
用戶(hù)搜索詞的 Url 頁(yè)面比不收錄
它們的頁(yè)面獲得的點(diǎn)擊次數多 45%。
在標題中使用情感詞
標題中使用情感詞相當于每個(gè)人都穿著(zhù)西裝,但你穿著(zhù)運動(dòng)服,顯得與眾不同。歸根結底,這完全是一個(gè)取巧的方法,并不容易掌握。因為很多非正式網(wǎng)站都會(huì )使用這種標題方式。一些用戶(hù)對具有此類(lèi)標題的網(wǎng)頁(yè)缺乏信任。
因此,使用此方法可能會(huì )增加您的點(diǎn)擊率;但是,它也可能導致負面影響。
這只是為了擴展知識,一般情況下不建議使用。
重要頁(yè)面配有原創(chuàng )
描述
在谷歌搜索結果中,除了頁(yè)面標題和Url,大部分區域顯示頁(yè)面的描述。因此,頁(yè)面描述非常重要。需要參加排名賽的重要英文頁(yè)面需要設置合理的描述內容。
如果您沒(méi)有設置該內容,但您的頁(yè)面有富文本描述,則無(wú)需設置,Google會(huì )智能識別、抓取和優(yōu)化。如果不設置描述內容,頁(yè)面上沒(méi)有實(shí)質(zhì)性的文字描述,對點(diǎn)擊率會(huì )比較不利。
據統計,有描述的頁(yè)面比沒(méi)有描述的頁(yè)面點(diǎn)擊率高6%。
8.建立高質(zhì)量的英文外鏈
自從有了搜索引擎,就有了外鏈的概念。最初的谷歌是根據外部鏈接的因素來(lái)確定搜索排名的。這導致了刷外鏈等作弊手段的泛濫,使得很多真正優(yōu)質(zhì)的網(wǎng)站被埋沒(méi),也使得網(wǎng)絡(luò )上充斥著(zhù)各種專(zhuān)門(mén)提供垃圾外鏈的垃圾網(wǎng)站。
隨著(zhù)谷歌算法的改進(jìn),外鏈的作用一直在下降,垃圾外鏈的作用幾乎為零,甚至可能給網(wǎng)站帶來(lái)不利的處罰。盡管外部鏈接不再是排名的唯一因素,但它們仍然是當今谷歌排名的關(guān)鍵因素;這里的外部鏈接是指高質(zhì)量的外部鏈接,不是垃圾鏈接。
關(guān)于外部鏈接的作用,谷歌最近公開(kāi)承認它是排名的關(guān)鍵參考。
目前外鏈對谷歌排名的影響還是很大的。SEMrush 發(fā)表的一項研究表明,反向鏈接與高排名之間仍然存在很強的相關(guān)性。
關(guān)于外鏈的搭建方法,我們在另一篇文章:Google SEO英文外鏈搭建中有詳細的介紹,這里不再贅述。
還有一點(diǎn),建議多發(fā)表一些高質(zhì)量的知識文章和解答,有利于別人主動(dòng)鏈接到你的頁(yè)面。例如,為什么 xxx,什么 xxx
總之,要想自己的英文網(wǎng)站有好的排名,甚至是首頁(yè)排名,高質(zhì)量的反向鏈接是必不可少的。而且,最好有英文的外部鏈接。
9. 用戶(hù)評論
很多人可能不知道,真實(shí)的用戶(hù)評論對英文SEO排名非常有利。最常見(jiàn)的是博客文章底部的評論功能?;ヂ?lián)網(wǎng)的本質(zhì)是信息的傳遞和交互。用戶(hù)對內容的評論是互動(dòng)的明顯信號,谷歌更喜歡這種互動(dòng)內容。
注意,這里所說(shuō)的互動(dòng)是真實(shí)用戶(hù)產(chǎn)生的,不是你自己在自己的文章下做假評論。這很容易識別。谷歌可以抓取評論者使用的設備、來(lái)源、IP等信息。因此,自我故意的評論是無(wú)效的。
10.刪除無(wú)用頁(yè)面
一個(gè)英文網(wǎng)站或多或少都會(huì )有一些沒(méi)有價(jià)值的頁(yè)面,比如:內容重復的頁(yè)面,沒(méi)有內容的頁(yè)面,信息過(guò)時(shí)的頁(yè)面等等。如果一個(gè)網(wǎng)站中這樣的頁(yè)面不多,基本上不會(huì )有什么不良影響對網(wǎng)站排名的影響。但是,如果有很多這樣的頁(yè)面,那就不好了。
我找了一個(gè)例子,一個(gè)國外的旅游公司網(wǎng)站。運營(yíng)商注意到他們的網(wǎng)站上大約有 50 個(gè)頁(yè)面具有相同的內容。然后,他們做了一件事,就是把這50頁(yè)的內容,整合成內容差異較大的4頁(yè)。
一段時(shí)間后,他們發(fā)現網(wǎng)站的搜索流量增加了 36.9%:
因此,每個(gè)頁(yè)面的內容應盡量避免雷同。如果網(wǎng)站中有很多無(wú)意義的頁(yè)面,最好整合或直接刪除。
11.在頁(yè)面內容中盡早出現關(guān)鍵詞
您的目標 關(guān)鍵詞 需要出現在頁(yè)面的內容中。這是很多人都知道的Google SEO常識,因為只有你的內容收錄
關(guān)鍵詞,這個(gè)頁(yè)面才會(huì )生成與關(guān)鍵詞關(guān)聯(lián)。
但是,您可能不知道 關(guān)鍵詞 出現在不同的位置,這可能會(huì )影響您網(wǎng)頁(yè)的排名能力。
至于關(guān)鍵詞何時(shí)出現在頁(yè)面上,我們的建議是在前幾句中至少收錄
一個(gè)關(guān)鍵詞。為什么?因為,谷歌更關(guān)注出現在頁(yè)面開(kāi)頭的內容。在其思維邏輯中,頁(yè)面的主題或焦點(diǎn)不能也不應該出現得太晚。
比如我們網(wǎng)站上一篇關(guān)于谷歌排名查詢(xún)的文章,文章的重點(diǎn)自然是“谷歌排名查詢(xún)”,我們在文章開(kāi)頭使用了關(guān)鍵詞。
12.創(chuàng )建獨特的頁(yè)面內容
我們一直向客戶(hù)強調:要在谷歌排名優(yōu)化中取得好的效果,網(wǎng)站內容必須是原創(chuàng )的,不能有重復和抄襲。關(guān)于這一點(diǎn),谷歌在其部分文件中也有明確說(shuō)明。谷歌建議所有網(wǎng)站不要復制網(wǎng)上已有的內容。
所以,在做英文SEO的時(shí)候,一定要注意網(wǎng)站的內容。如果我們發(fā)現有很多重復或相似的內容,我們會(huì )告訴客戶(hù)需要整改。除了網(wǎng)頁(yè)上的內容,頁(yè)面的標題也需要獨一無(wú)二。確保站點(diǎn)上沒(méi)有任何頁(yè)面使用相同的標題,并且盡量不要使用與其他站點(diǎn)完全相同的標題。
如果遇到無(wú)法避免的內部重復問(wèn)題,可以使用Canonical標簽來(lái)指明這些相同頁(yè)面中哪些是主版本,從而避免內部權重分散。
大型電商網(wǎng)站一般是這類(lèi)問(wèn)題的高發(fā)區,因為上面有很多類(lèi)似的商品,很難一一打造出獨一無(wú)二的內容。不過(guò),不管怎么說(shuō),有本事的話(huà),還是多派點(diǎn)人手,為每個(gè)頁(yè)面做獨立的內容吧,至少不能太雷同。如果不行,就用上面的標簽進(jìn)行處理。
十三、優(yōu)化頁(yè)面標題
頁(yè)面標題是站內優(yōu)化的重點(diǎn)之一。Google 表示:為您的網(wǎng)頁(yè)使用高質(zhì)量的標題很重要。
那么,優(yōu)化頁(yè)面標題應該注意哪些方面呢?
首先,盡量在標題中盡早放置 關(guān)鍵詞。就像我上面剛剛引用的谷歌排名查詢(xún)的例子,你可以發(fā)現我把 關(guān)鍵詞 直接放在了標題的頂部。你為什么這么做?
與頁(yè)面內容類(lèi)似,當谷歌查看頁(yè)面標題時(shí),它也會(huì )關(guān)注最前面的內容。那么,此頁(yè)面的目標 關(guān)鍵詞 是什么?建議將其放置在盡可能高的位置,以便 Google 可以識別頁(yè)面的關(guān)鍵點(diǎn)。
所以不要把你能想到的每一個(gè) 關(guān)鍵詞 都堆放在頁(yè)面標題中,這是沒(méi)有意義的。后面出現的關(guān)鍵詞基本會(huì )被Google忽略,過(guò)多的關(guān)鍵詞會(huì )影響Google對頁(yè)面重心的識別。什么都想要,到頭來(lái)往往一事無(wú)成。
我們的建議是一個(gè)頁(yè)面不要有多個(gè)重心,主要目標應該在一個(gè)關(guān)鍵詞上。對此,谷歌也明確表示。
在優(yōu)化標題時(shí),不僅要關(guān)注Google喜歡什么樣的標題,還要站在用戶(hù)的角度來(lái)擬定標題。因為,用戶(hù)喜歡的,谷歌一定喜歡;而且,谷歌喜歡的東西,用戶(hù)不一定喜歡。
看了上面的內容,遇到設置標題的時(shí)候不要把關(guān)鍵詞放在最前面。您還需要結合用戶(hù)的閱讀體驗,使標題易于閱讀和吸引人。為此,把關(guān)鍵詞往后放一點(diǎn)也沒(méi)關(guān)系。
比如我們的一篇文章針對“尚未收錄”的問(wèn)題,但是結合用戶(hù)的閱讀情況和遇到問(wèn)題的地方,我們將整個(gè)標題設置如下:
頁(yè)面的標題最好是能吸引用戶(hù)的一句話(huà)。只有這樣,用戶(hù)在搜索引擎結果中找到你的頁(yè)面時(shí),才會(huì )更愿意點(diǎn)擊。這對排名非常重要。如果你的頁(yè)面只排在第三位,很多用戶(hù)在搜索對應的關(guān)鍵詞時(shí),大部分會(huì )選擇你的頁(yè)面點(diǎn)擊查看;很長(cháng)一段時(shí)間后,谷歌會(huì )認為您的此頁(yè)面更相關(guān),并且會(huì )提升您的排名。
因此,在優(yōu)化英文網(wǎng)站時(shí),一定要記住,你不是在為谷歌優(yōu)化,而是在為用戶(hù)優(yōu)化。
14. 使用谷歌站長(cháng)工具監控網(wǎng)站性能
可以說(shuō),做谷歌排名優(yōu)化離不開(kāi)谷歌站長(cháng)工具的使用,這個(gè)工具可以讓你清楚地知道你的網(wǎng)站在谷歌搜索中的表現如何。
這個(gè)工具有很多功能,包括前面提到的PageSpeed Insights,這里介紹幾個(gè)主要的功能:
績(jì)效報告
在谷歌站長(cháng)工具的性能報告中,您可以看到您的網(wǎng)站在谷歌搜索中被顯示了多少次,有多少人點(diǎn)擊了,以及平均點(diǎn)擊率和排名。
再往下,您可以看到準確的 關(guān)鍵詞 排名、展示次數和點(diǎn)擊次數。還可以查看不同網(wǎng)頁(yè)的表現,不同國家和地區的搜索表現等。
從長(cháng)遠來(lái)看,如果您的網(wǎng)站性能的展示次數和點(diǎn)擊次數呈上升趨勢,則說(shuō)明您的優(yōu)化策略是正確的。
覆蓋率報告
檢查您的網(wǎng)站覆蓋率。它會(huì )清楚地顯示您的網(wǎng)站中有多少頁(yè)面被谷歌收錄和顯示,即有效頁(yè)面數。同時(shí),它也會(huì )顯示錯誤的頁(yè)面。如果發(fā)現錯誤,請嘗試盡快更正它們。
常見(jiàn)錯誤及解決方法可參考:谷歌站長(cháng)工具提示“尚未收錄”收錄不理想怎么辦
移動(dòng)可用性報告
自從谷歌推出其移動(dòng)優(yōu)先索引規則以來(lái),移動(dòng)適應性已成為一個(gè)非常重要的排名因素。在此報告中,您可以查看網(wǎng)站上有多少頁(yè)面適合移動(dòng)設備。
在實(shí)際使用過(guò)程中,我們發(fā)現該報告顯示的頁(yè)數會(huì )比實(shí)際情況少很多。所以,如果你有很多索引頁(yè)面,但這里只顯示了一小部分,不要擔心,只要沒(méi)有錯誤信息即可。
15.圖片優(yōu)化
上面我們已經(jīng)提到了一些關(guān)于圖片的注意事項,比如不要使用太大的圖片和壓縮圖片的大小。下面我們繼續深入探討圖片優(yōu)化的要點(diǎn)。
根據谷歌的報告:圖片的 Alt 屬性可以幫助網(wǎng)頁(yè)在搜索排名中表現更好
因此,如果您在頁(yè)面上使用圖像,則需要確保它們經(jīng)過(guò)適當優(yōu)化。圖片優(yōu)化,除了使用大小合適的圖片外,只需要把握兩個(gè)關(guān)鍵點(diǎn)。
給圖片合理命名:雖然現在谷歌已經(jīng)具備了一定的識別圖片內容的能力,但是這種識別還是很粗糙的。它無(wú)法像真人一樣理解圖片的含義。圖片的名稱(chēng)可以幫助谷歌更好地了解圖片的內容。
比如你的網(wǎng)頁(yè)上有一張煎餅的圖片,不要隨意命名,比如image123.jpg或者image123.png,而是根據圖片的描述性語(yǔ)句來(lái)命名,比如Say: A stack of pancakes on桌子
Alt屬性必須填寫(xiě):谷歌已經(jīng)聲明他們會(huì )通過(guò)圖片的Alt屬性來(lái)了解圖片的內容。
對于您網(wǎng)站上使用的每張圖片,您必須填寫(xiě)適當的 Alt 屬性。就像起名一樣,不要亂,看圖寫(xiě)圖所表達的內容。
16、合理使用內部鏈接
內部鏈接是您網(wǎng)站的一個(gè)頁(yè)面上指向網(wǎng)站上另一個(gè)頁(yè)面的鏈接,通常出現在頁(yè)面的正文中。
使用內部鏈接時(shí),這里有一些提示可以幫助您更好地使用它。
使用錨文本鏈接:錨文本鏈接傳遞權重的效率遠高于URL鏈接。錨文本鏈接的錨文本內容盡量收錄
目標頁(yè)面的關(guān)鍵詞,或者直接使用目標頁(yè)面的標題。
不要濫用內鏈:內鏈可以起到傳遞權重的作用,但是不要刻意利用內鏈來(lái)推動(dòng)某個(gè)頁(yè)面的排名,Google可以識別出不合理的權重傳遞。
例如,一些客戶(hù)喜歡在產(chǎn)品頁(yè)面中插入大量指向其他產(chǎn)品的鏈接。這是明顯的故意插入鏈接的行為,會(huì )損害頁(yè)面的健康和內容的自然度。
之前我們做過(guò)一個(gè)實(shí)驗,使用大量的內鏈來(lái)提升一個(gè)頁(yè)面的排名,結果確實(shí)有效,那個(gè)頁(yè)面的排名從第6頁(yè)排到了第3頁(yè),但是只維持了更少的排名比一周之內,該頁(yè)面被谷歌懲罰并下降到第 9 頁(yè)。
你可以從用戶(hù)的角度考慮是否需要使用內部鏈接。比如一篇文章提到了另一篇文章的重點(diǎn);然后,可以使用內部鏈接將此關(guān)鍵點(diǎn)鏈接到相應的頁(yè)面。因為這個(gè)鏈接可以幫助用戶(hù)了解更多相關(guān)信息,對用戶(hù)來(lái)說(shuō)是有價(jià)值的。
17.發(fā)布優(yōu)質(zhì)內容
在任何專(zhuān)業(yè)的 Google SEO 研究網(wǎng)站上,您都可以找到強調內容重要性的文章。
發(fā)布原創(chuàng )有價(jià)值的內容,對于英文SEO優(yōu)化具有重要意義。因為,內容是所有SEO的基礎。
高質(zhì)量的內容是谷歌一直提倡的,而且這個(gè)標準也在不斷提高。如果你仔細觀(guān)察,你會(huì )發(fā)現,在過(guò)去的網(wǎng)站上,一篇1000字左右的文章比較少,但現在卻普遍可見(jiàn)。平均而言,創(chuàng )作者在每篇文章上花費的時(shí)間都在逐年增加:
因此,網(wǎng)站的內容是每個(gè)網(wǎng)站運營(yíng)者都必須多加注意的。持續輸出優(yōu)質(zhì)內容是獲得谷歌青睞的重中之重。
18.改善網(wǎng)站的用戶(hù)體驗
用戶(hù)體驗這個(gè)因素可以說(shuō)直接關(guān)系到谷歌排名。谷歌可以通過(guò)用戶(hù)的訪(fǎng)問(wèn)行為感知本網(wǎng)站對用戶(hù)的價(jià)值。如果用戶(hù)在搜索結果中點(diǎn)擊進(jìn)入您的頁(yè)面,很快跳出,然后點(diǎn)擊進(jìn)入另一個(gè)結果,這就告訴谷歌您的頁(yè)面不符合他們的需求。結果是,隨著(zhù)時(shí)間的推移,Google 會(huì )降低您的網(wǎng)頁(yè)排名。
您可以使用 Google Analytics 來(lái)衡量您的網(wǎng)站跳出率。如果你發(fā)現你的網(wǎng)站跳出率很高,說(shuō)明你的頁(yè)面不能滿(mǎn)足大部分用戶(hù)的需求,頁(yè)面內容質(zhì)量有待提高。
如果你的英文網(wǎng)站不好用,有很多彈窗廣告、死鏈接等,這些對用戶(hù)體驗都是很不好的。
外貿SEO功能
搜索引擎優(yōu)化(Search Engine Optimization,簡(jiǎn)稱(chēng)SEO)是一種利用搜索引擎搜索規則來(lái)提高目標網(wǎng)站在相關(guān)搜索引擎中排名的方法。由于許多研究發(fā)現搜索引擎用戶(hù)往往只關(guān)注搜索結果中的前幾項,因此許多網(wǎng)站希望通過(guò)各種形式影響搜索引擎的排名。SEO(搜索引擎優(yōu)化)是一種有效、持久且經(jīng)濟的搜索引擎營(yíng)銷(xiāo)方式,其主要特點(diǎn)有:
1.覆蓋面廣:被選中的關(guān)鍵詞出現在谷歌中英文搜索結果首頁(yè)之外,也出現在全球網(wǎng)站的自然排名中:Aol、Netscape、CompuServe、Ask、Yahoo、Hotbot、Earthlink、Infoseek 、Sympatico等將大幅增加;
2、無(wú)需擔心惡意點(diǎn)擊:與關(guān)鍵詞合作,采用包年形式,可完全避免惡意點(diǎn)擊;
3、長(cháng)期效果:搜索引擎優(yōu)化從本質(zhì)上提高了網(wǎng)站的綜合性能,提高了網(wǎng)絡(luò )的整體覆蓋率,從而贏(yíng)得了潛在客戶(hù)。
我們的優(yōu)勢
1、豐富的英文SEO實(shí)戰經(jīng)驗我們長(cháng)期從事搜索引擎排名規律的研究,經(jīng)常與國內外SEO(搜索引擎優(yōu)化)專(zhuān)家交流。因此,我們的技術(shù)團隊非常熟悉各大搜索引擎的排名規則;
2、豐富的網(wǎng)絡(luò )資源:對于搜索引擎排名,尤其是谷歌排名,網(wǎng)絡(luò )資源必不可少。只有擁有豐富的網(wǎng)絡(luò )資源,才能在短時(shí)間內達到客戶(hù)網(wǎng)站的排名效果;
3、系統化服務(wù):我們擁有專(zhuān)業(yè)的SEO團隊,為客戶(hù)提供系統化的服務(wù),值得您信賴(lài);
4、良好的服務(wù)口碑:眾多案例說(shuō)明一切,按效果說(shuō)話(huà),無(wú)效押金退還;
5、專(zhuān)業(yè)的訪(fǎng)問(wèn)統計系統:能夠反映網(wǎng)站每天的訪(fǎng)問(wèn)情況,來(lái)源方式等都可以分析清楚。返回搜狐查看更多
編輯: 查看全部
解決方案:webrtc的音視頻同步處理一
WebRTC的音視頻同步處理之一
WebRTC如何處理內部音頻和視頻同步?
幾個(gè)主要詞:捕獲時(shí)間、
渲染時(shí)間、RTP 的時(shí)間戳、SR、計算 NTP
讓我們從視頻捕獲過(guò)程開(kāi)始
1. 調用堆棧
2. 采集
The VideoCaptureImpl::IncomingFrame
調用 set_timestamp_ms() 設置時(shí)間
rtc::TimeMillis() 此時(shí)間是獲取的
CLOCK_MONOTONIC:計時(shí)從系統啟動(dòng)的那一刻開(kāi)始,不受用戶(hù)更改的系統時(shí)間的影響
此值分配給timestamp_us_
3. 繼續執行并進(jìn)入
4. 您可以看到此處設置了 NTP
incoming_frame.set_ntp_time_ms(capture_ntp_time_ms);
未來(lái)有三個(gè)分支計算capture_ntp_time_ms

斷點(diǎn)調試排在第二位,為什么?
因為 video_frame.render_time_ms() 獲取timestamp_us_,所以之前設置的時(shí)間是從引導時(shí)間計算的
但delta_ntp_internal_ms_補充一下,這個(gè)價(jià)值是怎么來(lái)的?
5. 接下來(lái),在 RTP 中生成時(shí)間戳,該時(shí)間戳仍在
設置ntp,生成時(shí)間戳,下一步就是放入編碼隊列和編碼線(xiàn)程進(jìn)行編碼
6.總結一下:
delta_ntp_internal_ms_ = 絕對時(shí)間 - 自啟動(dòng)打開(kāi)以來(lái)的時(shí)間
timestamp_us_ = render_time_ms() =
set_timestamp_ms() = 自啟動(dòng)以來(lái)的時(shí)間
ntp_time_ms_ = 絕對時(shí)間 = timestamp_us_ + delta_ntp_internal_ms_
時(shí)間戳 = 90*ntp_time_ms_
7. 編碼后的調用堆棧
8.函數 RtpVideoSender::OnEncodedImage().
您可以看到rtp_timestamp有一個(gè)偏移值 rtp_rtcp->StartTimestamp()。事實(shí)證明,這是一個(gè)隨機值,為安全而加密。

9. 此代碼是重頭戲,設置 RTCP 時(shí)間戳和 NTP 之間的對應關(guān)系以生成 SR
這個(gè)capture_time_ms中間繞了好幾圈,還是打開(kāi)到現在的時(shí)間。
10. 發(fā)送的每一幀數據都會(huì )刷新與 RTCP 時(shí)間點(diǎn)擊對應的 NTP
11. 接下來(lái),讓我們看看 sr 是如何打包的
rtp_timestamp = 初始偏移量 + 發(fā)送幀的 tm
+ 上次發(fā)送到當前經(jīng)過(guò)的幀的 tm
NTP 是當前時(shí)間,但需要轉換
report->SetNtp(TimeMicrosToNtp(ctx.now_us_));
sr 中的 NTP 分為兩部分:
秒是正常符號
幾秒鐘后,它被分成 2 的 32 次方
12. 總結一下:
總體而言,該過(guò)程還隱藏了一些鏈接:
NTP 計算生成時(shí)間戳
收錄
時(shí)間戳和 ntp 之間的對應關(guān)系。
請注意,SR 中 NTP 的表示分為 2 的 32 次方,而不是毫秒
分享技術(shù):外貿整合營(yíng)銷(xiāo)谷歌SEO簡(jiǎn)介
升騰科技外貿整合營(yíng)銷(xiāo)基于8年外貿推廣經(jīng)驗研發(fā),以SEO為核心的智能網(wǎng)絡(luò )營(yíng)銷(xiāo)系統平臺,集多語(yǔ)言建站(Web)、搜索引擎優(yōu)化(SEO)、社交媒體大數據于一體營(yíng)銷(xiāo)(SNS)、搜索引擎營(yíng)銷(xiāo)(SEM)、視頻營(yíng)銷(xiāo)(Video)、交易員數據(DMS)、B2B平臺推廣(B2B)營(yíng)銷(xiāo)模式,幫助外貿企業(yè)通過(guò)多語(yǔ)言、多關(guān)鍵詞 、多搜索引擎、多渠道推廣的模式整合,實(shí)現低成本獲取優(yōu)質(zhì)客戶(hù)。
你有沒(méi)有擔心遇到這樣的問(wèn)題?
● 沒(méi)有流量,網(wǎng)站就不能跨入網(wǎng)絡(luò )營(yíng)銷(xiāo)的門(mén)檻?
● 網(wǎng)站關(guān)鍵詞沒(méi)有排名,前五的搜索引擎流量很少?
● SEO優(yōu)化時(shí)間成本高,能否滿(mǎn)足公司的銷(xiāo)售目標,又沒(méi)有24小時(shí)的品牌展示?
● SEO優(yōu)化,關(guān)鍵詞排名能否穩定?沒(méi)有豐富的網(wǎng)站內容,是否被搜索引擎收錄?
● 潛在精準客戶(hù)很難通過(guò)搜索引擎找到您的網(wǎng)站,網(wǎng)站價(jià)值無(wú)法體現?
● 組建自己的SEO團隊,但成本太高,沒(méi)有達到預期目標?
1.提高網(wǎng)站加載速度
除了少數幾次,谷歌很少公開(kāi)其算法中的排名因素。因此,他們公布的每一個(gè)排名因素對于SEO來(lái)說(shuō)都是一種非常有價(jià)值的信息,值得所有做英文SEO優(yōu)化的人去關(guān)注。
網(wǎng)站速度是谷歌公布的排名因素之一,尤其是移動(dòng)搜索排名。
首先,您必須了解您網(wǎng)站的當前速度。推薦使用谷歌的PageSpeed Insights工具,輸入你的網(wǎng)頁(yè)網(wǎng)址,就可以得到谷歌對其速度的詳細評價(jià)。
PageSpeed Insights 是對頁(yè)面速度性能的測試,不包括實(shí)際速度測試。要了解網(wǎng)站的實(shí)際加載速度,我們可以使用免費工具網(wǎng)頁(yè)測試。
測試時(shí),您可以自由選擇測試區域。如果是外貿網(wǎng)站,一般可以選擇美國地區進(jìn)行測試,這也是默認選項。如果是國內的網(wǎng)站,那自然是選擇中國比較好。也就是選擇測試區域作為你的目標用戶(hù)所在的區域,畢竟網(wǎng)站是供他們訪(fǎng)問(wèn)的。
這個(gè)工具不僅可以查看實(shí)際的加載速度,還有對應的檢測報告,更詳細的資源加載耗時(shí):
站點(diǎn)速度對于排名很重要,但不應過(guò)分關(guān)注。從對超過(guò)1000萬(wàn)條排名數據的研究中,我們發(fā)現網(wǎng)站速度對排名沒(méi)有明顯的促進(jìn)作用。也就是說(shuō),您的網(wǎng)站快或慢并不重要;但是,如果網(wǎng)站打開(kāi)速度太慢,則必須進(jìn)行整改。一般建議網(wǎng)站能秒打開(kāi),最好不要慢于3秒。
一般來(lái)說(shuō),網(wǎng)站的速度取決于所使用的主機和頁(yè)面的大小。因此,選擇一臺質(zhì)量好的主機非常重要。對于外貿網(wǎng)站,我們推薦使用Siteground主機。盡量不要在網(wǎng)頁(yè)上使用尺寸過(guò)大的圖片,也不要加載過(guò)多的媒體資源,以免拖慢訪(fǎng)問(wèn)速度。
根據一項研究,在谷歌首頁(yè)排名第一的英文網(wǎng)站通常比排名在首頁(yè)底部的網(wǎng)站加載速度更快。
因此,如果你想做好英文SEO,你需要讓你的網(wǎng)站加載速度更快。
2、爭取谷歌Featured Snippets專(zhuān)項展示
如果我們對Featured Snippets做一個(gè)定位,我們可以稱(chēng)它為排名0的位置,也就是說(shuō)它比排名第一的位置要好。
作為第54個(gè)技巧,我們在Google SEO詞條優(yōu)化技巧中也討論過(guò)這一點(diǎn),下面會(huì )做一些補充,具體是如何操作才能拿下這個(gè)展示位置。
首先,您必須找到一個(gè) 關(guān)鍵詞 和您已經(jīng)獲得良好排名的相應頁(yè)面。這個(gè)排名在第一頁(yè)是最好的,因為根據 Ahrefs 的統計,99.58% 的 Featured Snippets 都是從第一頁(yè)結果中挑選出來(lái)的。
所以,想要爭奪這個(gè)特殊的展示空間,首先得跨過(guò)首頁(yè)這道門(mén)檻。
接下來(lái),你需要有一個(gè)明確的內容定位來(lái)滿(mǎn)足Featured Snippets的要求。一般來(lái)說(shuō),特殊展示空間的內容有以下幾種:
定義類(lèi)、名詞解釋?zhuān)ɡ纾菏裁词荢EO)
推薦類(lèi)別,1、2、3...排名(例如:Top 10 SEO 工具)
表類(lèi),如價(jià)格、型號等(例如:SEO Prices)
根據首頁(yè)排名,您的內容需要定位在以上類(lèi)型中,才有機會(huì )被特選展示槽選中。被選中的好處不言而喻,是獲得這個(gè)關(guān)鍵詞流量的最佳位置。
3.提高用戶(hù)的停留時(shí)間
在我看來(lái),用戶(hù)在網(wǎng)站上的停留時(shí)間或者說(shuō)持續訪(fǎng)問(wèn)的時(shí)間可以看作是一個(gè)重要的英文SEO排名因素。試想一下,如果一個(gè)用戶(hù)進(jìn)入你的網(wǎng)站,然后迅速離開(kāi),這意味著(zhù)什么?說(shuō)明你的網(wǎng)站不是用戶(hù)需要的,或者不能提供用戶(hù)需要的信息。
谷歌會(huì )跟蹤和統計用戶(hù)行為,然后對網(wǎng)站排名做出調整。谷歌搜索的本質(zhì)是讓用戶(hù)更容易找到他們需要的東西。因此,用戶(hù)喜歡的英文網(wǎng)站排名會(huì )提高;用戶(hù)討厭的英文網(wǎng)站排名自然只會(huì )下降。
用戶(hù)的停留時(shí)間可以直接反映用戶(hù)對一個(gè)網(wǎng)站的喜好程度。
所以盡可能的降低用戶(hù)的跳出率,對于英文SEO是非常有幫助的。怎么做?下面分享幾個(gè)方法:
提高內容質(zhì)量,頁(yè)面內容不能只有幾張圖、幾句話(huà),要圍繞主題,盡可能擴展用戶(hù)會(huì )感興趣的知識點(diǎn)。推薦你閱讀這篇文章:外貿網(wǎng)站建設內容如何發(fā)布方便優(yōu)化
除了文字和圖片,可以考慮在內容中插入相應的視頻。實(shí)驗證明,這種方法也能起到很好的降低跳出率的作用。
4.附加鏈接
附加鏈接是出現在 Google 搜索結果中的網(wǎng)站鏈接。例如,您可以去谷歌搜索我們客戶(hù)的品牌:finemim,您可以看到這個(gè)網(wǎng)站的Sitelinks。
獲得Sitelinks表明谷歌已經(jīng)認可了本網(wǎng)站的品牌,并給予了本網(wǎng)站較高的信任度。相對的,谷歌會(huì )給這個(gè)網(wǎng)站更多的權重加成。
如何獲得附加鏈接?
首先,你的網(wǎng)站要有足夠多的優(yōu)質(zhì)內容;其次,你的網(wǎng)站結構要清晰,主題要明確。最后,保持網(wǎng)站活躍,定期更新優(yōu)質(zhì)內容。慢慢的,你的網(wǎng)站就能獲得Sitelinks了。
5. 吃
很久以前,英文網(wǎng)站或域名增加權重的方式就是單純依靠外鏈。
今天,谷歌會(huì )根據專(zhuān)業(yè)性、權威性和可信度三個(gè)方面來(lái)評估你網(wǎng)站的權重。這三個(gè)方面統稱(chēng)為EAT。
去年的Google Quality Score Guidelines明確指出了EAT的內容。
事實(shí)上,谷歌最近并沒(méi)有開(kāi)始關(guān)注EAT。EAT 的概念已經(jīng)存在好幾年了。只是谷歌現在更加重視EAT作為網(wǎng)站價(jià)值的衡量標準。
例如,最新版本的 Google 搜索工作原理報告指出,他們的目標是對可信賴(lài)的來(lái)源進(jìn)行良好排名。
甚至,他們提到 EAT 作為核心排名因素。
英文SEO的重點(diǎn)來(lái)了,如何提高自己網(wǎng)站的EAT?建議從以下幾點(diǎn)入手。
1.獲取專(zhuān)業(yè)人士撰寫(xiě)的內容
網(wǎng)站內容越專(zhuān)業(yè)越好,最好由業(yè)內知名人士或機構撰寫(xiě)。在普通人寫(xiě)的內容和行業(yè)專(zhuān)家寫(xiě)的內容之間,谷歌肯定更喜歡后者。
特別是醫學(xué)和醫學(xué)指導內容必須由具有相關(guān)資格的專(zhuān)家、學(xué)者或機構撰寫(xiě)。
這里的內容主要是指文章類(lèi)型的內容。文章有出版商,可以署名。
2. 公開(kāi)透明
谷歌建議大多數網(wǎng)站可以公開(kāi)一些信息,比如網(wǎng)站的負責人是誰(shuí),是個(gè)人、公司還是其他團體組織,以及詳細的聯(lián)系方式。
因此,最好在您的英文網(wǎng)站中收錄
以下信息:
關(guān)于我們
聯(lián)系我們

相關(guān)資源的引用鏈接
隱私政策和服務(wù)條款
作者簽名
3. 被其他權威網(wǎng)站提及
你說(shuō)你是權威、專(zhuān)家也沒(méi)用。只有很多人認可你的專(zhuān)業(yè),你才是真正的專(zhuān)業(yè)。如果你說(shuō)你是專(zhuān)業(yè)的,別人不承認,那么谷歌就會(huì )相信后者,這是大多數人的意見(jiàn)。
因此,獲得其他網(wǎng)站的認可非常重要。簡(jiǎn)而言之,這意味著(zhù)擁有來(lái)自其他高質(zhì)量網(wǎng)站的反向鏈接,并且這些鏈接來(lái)自正面內容,而不是負面新聞。
6.搜索意圖
搜索意圖在過(guò)去兩年一直是谷歌搜索引擎優(yōu)化的熱點(diǎn)。說(shuō)白了,如果網(wǎng)站內容不符合搜索意圖,那么網(wǎng)站就得不到任何排名。因為,谷歌正在不斷改進(jìn)其算法,以便為用戶(hù)提供最符合他們需求的結果。因此,要想做好英文SEO,就必須了解搜索意圖。
用戶(hù)每次使用 關(guān)鍵詞 搜索都是有目的的,沒(méi)有多少人會(huì )什么都不搜索。換句話(huà)說(shuō),關(guān)鍵詞背后是用戶(hù)的特定需求。
它可能是用戶(hù)尋找某物、購買(mǎi)、比較等的意圖。同樣的 關(guān)鍵詞 背后可能有不止一個(gè)用戶(hù)需求。
因此,只有搞清楚你要排名的關(guān)鍵詞中收錄
的用戶(hù)需求,然后讓網(wǎng)站內容滿(mǎn)足這些需求,才能獲得更好的排名。
有的時(shí)候,關(guān)鍵詞就是需求,明確表達用戶(hù)的需求,比如買(mǎi)東西;很明顯,使用這個(gè)關(guān)鍵詞的用戶(hù),基本上都有購買(mǎi)商品的需求。
Google 還將提供有關(guān)可供購買(mǎi)的產(chǎn)品的反饋。
但是,有時(shí)關(guān)鍵詞收錄
的用戶(hù)需求并不明顯,存在多種可能性。例如,當用戶(hù)在谷歌搜索“英文SEO”這個(gè)詞時(shí),有的用戶(hù)是在尋找相關(guān)信息,有的是為了學(xué)習,還有的是在尋找這樣的服務(wù)等等。
這時(shí)候你應該去搜索這個(gè)詞,看看哪些類(lèi)型的頁(yè)面在谷歌首頁(yè)上排名靠前。如果做SEO的公司占據更多首頁(yè),說(shuō)明谷歌更傾向于提供服務(wù)商信息;如果是文章類(lèi)型的頁(yè)面More,說(shuō)明Google更傾向于為這個(gè)關(guān)鍵詞提供文章信息。
假設首頁(yè)只有文章類(lèi)型的頁(yè)面,說(shuō)明Google對這個(gè)關(guān)鍵詞的意圖是文章素材的內容。嗯,如果你想這樣做 關(guān)鍵詞,你的網(wǎng)站上也必須有相應的文章頁(yè)面。
7.提高點(diǎn)擊率(CTR)
點(diǎn)擊率(CTR)也是谷歌衡量一個(gè)網(wǎng)站能否滿(mǎn)足用戶(hù)需求的指標。這就好比,一個(gè)公司考核員工的績(jì)效,我把你放在一個(gè)職位上,你能不能勝任這個(gè)職位,如果能,你就留下來(lái),以后還有機會(huì )升職;如果你不能,那就退位。
例如,Google 將您的英文網(wǎng)站排在首頁(yè)的第三位。結果,搜索 關(guān)鍵詞 的 100 名用戶(hù)中只有 10 名點(diǎn)擊了您的網(wǎng)站,而 20、30 甚至更多的用戶(hù)點(diǎn)擊了排名在您之后的網(wǎng)站。這給了谷歌一個(gè)明確的信號,表明用戶(hù)對你的網(wǎng)站不感興趣。如果這種情況長(cháng)期存在,你的網(wǎng)站排名肯定會(huì )下降。
早些時(shí)候,我們談到了用戶(hù)停留時(shí)間對網(wǎng)站排名的影響。用戶(hù)點(diǎn)擊進(jìn)入網(wǎng)站是第一步,接下來(lái)就是停留多久。如果沒(méi)有點(diǎn)擊,就沒(méi)有后續。
因此,有必要盡可能地提高您網(wǎng)站的點(diǎn)擊率。這就要求你的網(wǎng)站在谷歌上的搜索內容能夠吸引用戶(hù)并產(chǎn)生點(diǎn)擊欲望。為此,我們有以下建議。
URL 收錄
目標 關(guān)鍵詞
Google的搜索結果中收錄
網(wǎng)頁(yè)的Url信息,用戶(hù)可以直觀(guān)的看到網(wǎng)頁(yè)的Url。如果Url中收錄
用戶(hù)搜索的關(guān)鍵詞,會(huì )增加用戶(hù)對這個(gè)頁(yè)面的期待值。
據統計,收錄
用戶(hù)搜索詞的 Url 頁(yè)面比不收錄
它們的頁(yè)面獲得的點(diǎn)擊次數多 45%。
在標題中使用情感詞
標題中使用情感詞相當于每個(gè)人都穿著(zhù)西裝,但你穿著(zhù)運動(dòng)服,顯得與眾不同。歸根結底,這完全是一個(gè)取巧的方法,并不容易掌握。因為很多非正式網(wǎng)站都會(huì )使用這種標題方式。一些用戶(hù)對具有此類(lèi)標題的網(wǎng)頁(yè)缺乏信任。
因此,使用此方法可能會(huì )增加您的點(diǎn)擊率;但是,它也可能導致負面影響。
這只是為了擴展知識,一般情況下不建議使用。
重要頁(yè)面配有原創(chuàng )
描述
在谷歌搜索結果中,除了頁(yè)面標題和Url,大部分區域顯示頁(yè)面的描述。因此,頁(yè)面描述非常重要。需要參加排名賽的重要英文頁(yè)面需要設置合理的描述內容。
如果您沒(méi)有設置該內容,但您的頁(yè)面有富文本描述,則無(wú)需設置,Google會(huì )智能識別、抓取和優(yōu)化。如果不設置描述內容,頁(yè)面上沒(méi)有實(shí)質(zhì)性的文字描述,對點(diǎn)擊率會(huì )比較不利。
據統計,有描述的頁(yè)面比沒(méi)有描述的頁(yè)面點(diǎn)擊率高6%。
8.建立高質(zhì)量的英文外鏈
自從有了搜索引擎,就有了外鏈的概念。最初的谷歌是根據外部鏈接的因素來(lái)確定搜索排名的。這導致了刷外鏈等作弊手段的泛濫,使得很多真正優(yōu)質(zhì)的網(wǎng)站被埋沒(méi),也使得網(wǎng)絡(luò )上充斥著(zhù)各種專(zhuān)門(mén)提供垃圾外鏈的垃圾網(wǎng)站。
隨著(zhù)谷歌算法的改進(jìn),外鏈的作用一直在下降,垃圾外鏈的作用幾乎為零,甚至可能給網(wǎng)站帶來(lái)不利的處罰。盡管外部鏈接不再是排名的唯一因素,但它們仍然是當今谷歌排名的關(guān)鍵因素;這里的外部鏈接是指高質(zhì)量的外部鏈接,不是垃圾鏈接。
關(guān)于外部鏈接的作用,谷歌最近公開(kāi)承認它是排名的關(guān)鍵參考。
目前外鏈對谷歌排名的影響還是很大的。SEMrush 發(fā)表的一項研究表明,反向鏈接與高排名之間仍然存在很強的相關(guān)性。
關(guān)于外鏈的搭建方法,我們在另一篇文章:Google SEO英文外鏈搭建中有詳細的介紹,這里不再贅述。
還有一點(diǎn),建議多發(fā)表一些高質(zhì)量的知識文章和解答,有利于別人主動(dòng)鏈接到你的頁(yè)面。例如,為什么 xxx,什么 xxx
總之,要想自己的英文網(wǎng)站有好的排名,甚至是首頁(yè)排名,高質(zhì)量的反向鏈接是必不可少的。而且,最好有英文的外部鏈接。
9. 用戶(hù)評論
很多人可能不知道,真實(shí)的用戶(hù)評論對英文SEO排名非常有利。最常見(jiàn)的是博客文章底部的評論功能?;ヂ?lián)網(wǎng)的本質(zhì)是信息的傳遞和交互。用戶(hù)對內容的評論是互動(dòng)的明顯信號,谷歌更喜歡這種互動(dòng)內容。
注意,這里所說(shuō)的互動(dòng)是真實(shí)用戶(hù)產(chǎn)生的,不是你自己在自己的文章下做假評論。這很容易識別。谷歌可以抓取評論者使用的設備、來(lái)源、IP等信息。因此,自我故意的評論是無(wú)效的。
10.刪除無(wú)用頁(yè)面
一個(gè)英文網(wǎng)站或多或少都會(huì )有一些沒(méi)有價(jià)值的頁(yè)面,比如:內容重復的頁(yè)面,沒(méi)有內容的頁(yè)面,信息過(guò)時(shí)的頁(yè)面等等。如果一個(gè)網(wǎng)站中這樣的頁(yè)面不多,基本上不會(huì )有什么不良影響對網(wǎng)站排名的影響。但是,如果有很多這樣的頁(yè)面,那就不好了。
我找了一個(gè)例子,一個(gè)國外的旅游公司網(wǎng)站。運營(yíng)商注意到他們的網(wǎng)站上大約有 50 個(gè)頁(yè)面具有相同的內容。然后,他們做了一件事,就是把這50頁(yè)的內容,整合成內容差異較大的4頁(yè)。
一段時(shí)間后,他們發(fā)現網(wǎng)站的搜索流量增加了 36.9%:
因此,每個(gè)頁(yè)面的內容應盡量避免雷同。如果網(wǎng)站中有很多無(wú)意義的頁(yè)面,最好整合或直接刪除。
11.在頁(yè)面內容中盡早出現關(guān)鍵詞
您的目標 關(guān)鍵詞 需要出現在頁(yè)面的內容中。這是很多人都知道的Google SEO常識,因為只有你的內容收錄
關(guān)鍵詞,這個(gè)頁(yè)面才會(huì )生成與關(guān)鍵詞關(guān)聯(lián)。
但是,您可能不知道 關(guān)鍵詞 出現在不同的位置,這可能會(huì )影響您網(wǎng)頁(yè)的排名能力。
至于關(guān)鍵詞何時(shí)出現在頁(yè)面上,我們的建議是在前幾句中至少收錄
一個(gè)關(guān)鍵詞。為什么?因為,谷歌更關(guān)注出現在頁(yè)面開(kāi)頭的內容。在其思維邏輯中,頁(yè)面的主題或焦點(diǎn)不能也不應該出現得太晚。
比如我們網(wǎng)站上一篇關(guān)于谷歌排名查詢(xún)的文章,文章的重點(diǎn)自然是“谷歌排名查詢(xún)”,我們在文章開(kāi)頭使用了關(guān)鍵詞。
12.創(chuàng )建獨特的頁(yè)面內容
我們一直向客戶(hù)強調:要在谷歌排名優(yōu)化中取得好的效果,網(wǎng)站內容必須是原創(chuàng )的,不能有重復和抄襲。關(guān)于這一點(diǎn),谷歌在其部分文件中也有明確說(shuō)明。谷歌建議所有網(wǎng)站不要復制網(wǎng)上已有的內容。
所以,在做英文SEO的時(shí)候,一定要注意網(wǎng)站的內容。如果我們發(fā)現有很多重復或相似的內容,我們會(huì )告訴客戶(hù)需要整改。除了網(wǎng)頁(yè)上的內容,頁(yè)面的標題也需要獨一無(wú)二。確保站點(diǎn)上沒(méi)有任何頁(yè)面使用相同的標題,并且盡量不要使用與其他站點(diǎn)完全相同的標題。
如果遇到無(wú)法避免的內部重復問(wèn)題,可以使用Canonical標簽來(lái)指明這些相同頁(yè)面中哪些是主版本,從而避免內部權重分散。
大型電商網(wǎng)站一般是這類(lèi)問(wèn)題的高發(fā)區,因為上面有很多類(lèi)似的商品,很難一一打造出獨一無(wú)二的內容。不過(guò),不管怎么說(shuō),有本事的話(huà),還是多派點(diǎn)人手,為每個(gè)頁(yè)面做獨立的內容吧,至少不能太雷同。如果不行,就用上面的標簽進(jìn)行處理。
十三、優(yōu)化頁(yè)面標題
頁(yè)面標題是站內優(yōu)化的重點(diǎn)之一。Google 表示:為您的網(wǎng)頁(yè)使用高質(zhì)量的標題很重要。
那么,優(yōu)化頁(yè)面標題應該注意哪些方面呢?

首先,盡量在標題中盡早放置 關(guān)鍵詞。就像我上面剛剛引用的谷歌排名查詢(xún)的例子,你可以發(fā)現我把 關(guān)鍵詞 直接放在了標題的頂部。你為什么這么做?
與頁(yè)面內容類(lèi)似,當谷歌查看頁(yè)面標題時(shí),它也會(huì )關(guān)注最前面的內容。那么,此頁(yè)面的目標 關(guān)鍵詞 是什么?建議將其放置在盡可能高的位置,以便 Google 可以識別頁(yè)面的關(guān)鍵點(diǎn)。
所以不要把你能想到的每一個(gè) 關(guān)鍵詞 都堆放在頁(yè)面標題中,這是沒(méi)有意義的。后面出現的關(guān)鍵詞基本會(huì )被Google忽略,過(guò)多的關(guān)鍵詞會(huì )影響Google對頁(yè)面重心的識別。什么都想要,到頭來(lái)往往一事無(wú)成。
我們的建議是一個(gè)頁(yè)面不要有多個(gè)重心,主要目標應該在一個(gè)關(guān)鍵詞上。對此,谷歌也明確表示。
在優(yōu)化標題時(shí),不僅要關(guān)注Google喜歡什么樣的標題,還要站在用戶(hù)的角度來(lái)擬定標題。因為,用戶(hù)喜歡的,谷歌一定喜歡;而且,谷歌喜歡的東西,用戶(hù)不一定喜歡。
看了上面的內容,遇到設置標題的時(shí)候不要把關(guān)鍵詞放在最前面。您還需要結合用戶(hù)的閱讀體驗,使標題易于閱讀和吸引人。為此,把關(guān)鍵詞往后放一點(diǎn)也沒(méi)關(guān)系。
比如我們的一篇文章針對“尚未收錄”的問(wèn)題,但是結合用戶(hù)的閱讀情況和遇到問(wèn)題的地方,我們將整個(gè)標題設置如下:
頁(yè)面的標題最好是能吸引用戶(hù)的一句話(huà)。只有這樣,用戶(hù)在搜索引擎結果中找到你的頁(yè)面時(shí),才會(huì )更愿意點(diǎn)擊。這對排名非常重要。如果你的頁(yè)面只排在第三位,很多用戶(hù)在搜索對應的關(guān)鍵詞時(shí),大部分會(huì )選擇你的頁(yè)面點(diǎn)擊查看;很長(cháng)一段時(shí)間后,谷歌會(huì )認為您的此頁(yè)面更相關(guān),并且會(huì )提升您的排名。
因此,在優(yōu)化英文網(wǎng)站時(shí),一定要記住,你不是在為谷歌優(yōu)化,而是在為用戶(hù)優(yōu)化。
14. 使用谷歌站長(cháng)工具監控網(wǎng)站性能
可以說(shuō),做谷歌排名優(yōu)化離不開(kāi)谷歌站長(cháng)工具的使用,這個(gè)工具可以讓你清楚地知道你的網(wǎng)站在谷歌搜索中的表現如何。
這個(gè)工具有很多功能,包括前面提到的PageSpeed Insights,這里介紹幾個(gè)主要的功能:
績(jì)效報告
在谷歌站長(cháng)工具的性能報告中,您可以看到您的網(wǎng)站在谷歌搜索中被顯示了多少次,有多少人點(diǎn)擊了,以及平均點(diǎn)擊率和排名。
再往下,您可以看到準確的 關(guān)鍵詞 排名、展示次數和點(diǎn)擊次數。還可以查看不同網(wǎng)頁(yè)的表現,不同國家和地區的搜索表現等。
從長(cháng)遠來(lái)看,如果您的網(wǎng)站性能的展示次數和點(diǎn)擊次數呈上升趨勢,則說(shuō)明您的優(yōu)化策略是正確的。
覆蓋率報告
檢查您的網(wǎng)站覆蓋率。它會(huì )清楚地顯示您的網(wǎng)站中有多少頁(yè)面被谷歌收錄和顯示,即有效頁(yè)面數。同時(shí),它也會(huì )顯示錯誤的頁(yè)面。如果發(fā)現錯誤,請嘗試盡快更正它們。
常見(jiàn)錯誤及解決方法可參考:谷歌站長(cháng)工具提示“尚未收錄”收錄不理想怎么辦
移動(dòng)可用性報告
自從谷歌推出其移動(dòng)優(yōu)先索引規則以來(lái),移動(dòng)適應性已成為一個(gè)非常重要的排名因素。在此報告中,您可以查看網(wǎng)站上有多少頁(yè)面適合移動(dòng)設備。
在實(shí)際使用過(guò)程中,我們發(fā)現該報告顯示的頁(yè)數會(huì )比實(shí)際情況少很多。所以,如果你有很多索引頁(yè)面,但這里只顯示了一小部分,不要擔心,只要沒(méi)有錯誤信息即可。
15.圖片優(yōu)化
上面我們已經(jīng)提到了一些關(guān)于圖片的注意事項,比如不要使用太大的圖片和壓縮圖片的大小。下面我們繼續深入探討圖片優(yōu)化的要點(diǎn)。
根據谷歌的報告:圖片的 Alt 屬性可以幫助網(wǎng)頁(yè)在搜索排名中表現更好
因此,如果您在頁(yè)面上使用圖像,則需要確保它們經(jīng)過(guò)適當優(yōu)化。圖片優(yōu)化,除了使用大小合適的圖片外,只需要把握兩個(gè)關(guān)鍵點(diǎn)。
給圖片合理命名:雖然現在谷歌已經(jīng)具備了一定的識別圖片內容的能力,但是這種識別還是很粗糙的。它無(wú)法像真人一樣理解圖片的含義。圖片的名稱(chēng)可以幫助谷歌更好地了解圖片的內容。
比如你的網(wǎng)頁(yè)上有一張煎餅的圖片,不要隨意命名,比如image123.jpg或者image123.png,而是根據圖片的描述性語(yǔ)句來(lái)命名,比如Say: A stack of pancakes on桌子
Alt屬性必須填寫(xiě):谷歌已經(jīng)聲明他們會(huì )通過(guò)圖片的Alt屬性來(lái)了解圖片的內容。
對于您網(wǎng)站上使用的每張圖片,您必須填寫(xiě)適當的 Alt 屬性。就像起名一樣,不要亂,看圖寫(xiě)圖所表達的內容。
16、合理使用內部鏈接
內部鏈接是您網(wǎng)站的一個(gè)頁(yè)面上指向網(wǎng)站上另一個(gè)頁(yè)面的鏈接,通常出現在頁(yè)面的正文中。
使用內部鏈接時(shí),這里有一些提示可以幫助您更好地使用它。
使用錨文本鏈接:錨文本鏈接傳遞權重的效率遠高于URL鏈接。錨文本鏈接的錨文本內容盡量收錄
目標頁(yè)面的關(guān)鍵詞,或者直接使用目標頁(yè)面的標題。
不要濫用內鏈:內鏈可以起到傳遞權重的作用,但是不要刻意利用內鏈來(lái)推動(dòng)某個(gè)頁(yè)面的排名,Google可以識別出不合理的權重傳遞。
例如,一些客戶(hù)喜歡在產(chǎn)品頁(yè)面中插入大量指向其他產(chǎn)品的鏈接。這是明顯的故意插入鏈接的行為,會(huì )損害頁(yè)面的健康和內容的自然度。
之前我們做過(guò)一個(gè)實(shí)驗,使用大量的內鏈來(lái)提升一個(gè)頁(yè)面的排名,結果確實(shí)有效,那個(gè)頁(yè)面的排名從第6頁(yè)排到了第3頁(yè),但是只維持了更少的排名比一周之內,該頁(yè)面被谷歌懲罰并下降到第 9 頁(yè)。
你可以從用戶(hù)的角度考慮是否需要使用內部鏈接。比如一篇文章提到了另一篇文章的重點(diǎn);然后,可以使用內部鏈接將此關(guān)鍵點(diǎn)鏈接到相應的頁(yè)面。因為這個(gè)鏈接可以幫助用戶(hù)了解更多相關(guān)信息,對用戶(hù)來(lái)說(shuō)是有價(jià)值的。
17.發(fā)布優(yōu)質(zhì)內容
在任何專(zhuān)業(yè)的 Google SEO 研究網(wǎng)站上,您都可以找到強調內容重要性的文章。
發(fā)布原創(chuàng )有價(jià)值的內容,對于英文SEO優(yōu)化具有重要意義。因為,內容是所有SEO的基礎。
高質(zhì)量的內容是谷歌一直提倡的,而且這個(gè)標準也在不斷提高。如果你仔細觀(guān)察,你會(huì )發(fā)現,在過(guò)去的網(wǎng)站上,一篇1000字左右的文章比較少,但現在卻普遍可見(jiàn)。平均而言,創(chuàng )作者在每篇文章上花費的時(shí)間都在逐年增加:
因此,網(wǎng)站的內容是每個(gè)網(wǎng)站運營(yíng)者都必須多加注意的。持續輸出優(yōu)質(zhì)內容是獲得谷歌青睞的重中之重。
18.改善網(wǎng)站的用戶(hù)體驗
用戶(hù)體驗這個(gè)因素可以說(shuō)直接關(guān)系到谷歌排名。谷歌可以通過(guò)用戶(hù)的訪(fǎng)問(wèn)行為感知本網(wǎng)站對用戶(hù)的價(jià)值。如果用戶(hù)在搜索結果中點(diǎn)擊進(jìn)入您的頁(yè)面,很快跳出,然后點(diǎn)擊進(jìn)入另一個(gè)結果,這就告訴谷歌您的頁(yè)面不符合他們的需求。結果是,隨著(zhù)時(shí)間的推移,Google 會(huì )降低您的網(wǎng)頁(yè)排名。
您可以使用 Google Analytics 來(lái)衡量您的網(wǎng)站跳出率。如果你發(fā)現你的網(wǎng)站跳出率很高,說(shuō)明你的頁(yè)面不能滿(mǎn)足大部分用戶(hù)的需求,頁(yè)面內容質(zhì)量有待提高。
如果你的英文網(wǎng)站不好用,有很多彈窗廣告、死鏈接等,這些對用戶(hù)體驗都是很不好的。
外貿SEO功能
搜索引擎優(yōu)化(Search Engine Optimization,簡(jiǎn)稱(chēng)SEO)是一種利用搜索引擎搜索規則來(lái)提高目標網(wǎng)站在相關(guān)搜索引擎中排名的方法。由于許多研究發(fā)現搜索引擎用戶(hù)往往只關(guān)注搜索結果中的前幾項,因此許多網(wǎng)站希望通過(guò)各種形式影響搜索引擎的排名。SEO(搜索引擎優(yōu)化)是一種有效、持久且經(jīng)濟的搜索引擎營(yíng)銷(xiāo)方式,其主要特點(diǎn)有:
1.覆蓋面廣:被選中的關(guān)鍵詞出現在谷歌中英文搜索結果首頁(yè)之外,也出現在全球網(wǎng)站的自然排名中:Aol、Netscape、CompuServe、Ask、Yahoo、Hotbot、Earthlink、Infoseek 、Sympatico等將大幅增加;
2、無(wú)需擔心惡意點(diǎn)擊:與關(guān)鍵詞合作,采用包年形式,可完全避免惡意點(diǎn)擊;
3、長(cháng)期效果:搜索引擎優(yōu)化從本質(zhì)上提高了網(wǎng)站的綜合性能,提高了網(wǎng)絡(luò )的整體覆蓋率,從而贏(yíng)得了潛在客戶(hù)。
我們的優(yōu)勢
1、豐富的英文SEO實(shí)戰經(jīng)驗我們長(cháng)期從事搜索引擎排名規律的研究,經(jīng)常與國內外SEO(搜索引擎優(yōu)化)專(zhuān)家交流。因此,我們的技術(shù)團隊非常熟悉各大搜索引擎的排名規則;
2、豐富的網(wǎng)絡(luò )資源:對于搜索引擎排名,尤其是谷歌排名,網(wǎng)絡(luò )資源必不可少。只有擁有豐富的網(wǎng)絡(luò )資源,才能在短時(shí)間內達到客戶(hù)網(wǎng)站的排名效果;
3、系統化服務(wù):我們擁有專(zhuān)業(yè)的SEO團隊,為客戶(hù)提供系統化的服務(wù),值得您信賴(lài);
4、良好的服務(wù)口碑:眾多案例說(shuō)明一切,按效果說(shuō)話(huà),無(wú)效押金退還;
5、專(zhuān)業(yè)的訪(fǎng)問(wèn)統計系統:能夠反映網(wǎng)站每天的訪(fǎng)問(wèn)情況,來(lái)源方式等都可以分析清楚。返回搜狐查看更多
編輯:
最新版本:iOS下WebRTC如何采集視頻
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 189 次瀏覽 ? 2022-11-30 05:44
前言
前兩天介紹了iOS下如何采集音頻,今天介紹iOS下的視頻采集。要了解iOS是如何采集視頻的,首先我們需要了解AVCaptureSession、AVCaptureDevice的基本概念以及iOS上視頻采集的工作原理。
基本概念
iPhone包括攝像頭、麥克風(fēng)等設備,我們用AVCaptureDevice來(lái)表示。同時(shí)攝像頭是一個(gè)輸入設備,我們也可以用AVCaptureDeviceInput來(lái)表示;同樣,麥克風(fēng)是另一個(gè)輸入設備(AVCaptureDeviceInput)。
為了方便起見(jiàn),iOS 定義了 AVCaptureSession 類(lèi)來(lái)管理這些輸入設備。您可以通過(guò) AVCaptureSession 打開(kāi)一個(gè)輸入設備進(jìn)行數據采集,也可以關(guān)閉一個(gè)輸入設備。
采集
到數據后,需要保存和處理,所以iOS定義了AVCatpureOutput來(lái)做這件事。
下面我們分別介紹各個(gè)類(lèi)。
AVCaptureSession
AVCaptureSession 對象用于管理捕獲活動(dòng)并協(xié)調數據的流入和流出。
AVCaptureSession 對象的 startRunning() 方法是一個(gè)阻塞調用,可能需要一些時(shí)間,所以你應該在串行隊列上執行會(huì )話(huà)設置,這樣主隊列就不會(huì )被阻塞(這將保持 UI 響應)
AVCapture設備
AVCaptureDevice 對象表示物理設備及其屬性。您可以使用它來(lái)設置底層硬件的屬性。捕獲設備還可以為 AVCaptureSession 對象提供數據。
可以使用帶有 AVCaptureDevice 的類(lèi)方法來(lái)枚舉所有可用設備并查詢(xún)它們的功能。AVCaptureDevice 在設備有效或無(wú)效時(shí)由系統通知。
設置設備屬性時(shí),必須先使用 lockForConfiguration() 方法鎖定設備。為設備設置屬性后,需要檢查是否設置成功,設置完成后調用unlockForConfiguration()釋放鎖。
大多數屬性配置都可以通過(guò) AVCaptureSession 對象進(jìn)行設置,但一些特殊選項如高幀率需要直接在 AVCaptureDevice 上進(jìn)行設置。
AVCaptureDeviceInput
AVCaptureDeviceInput是捕獲設備中的輸入端,它繼承自AVCaptureInput,AVCaptureInput是一個(gè)抽象類(lèi)。
AVCaptureConnection
AVCaptureConnection 表示 AVCaptureSession 中 AVCaptureInput 和 AVCaptureOutput 對象之間建立的連接。
AVCapture輸出
AVCaptureOutput是一個(gè)抽象類(lèi),里面有很多具體的實(shí)現類(lèi),比如AVCaptureVideoDataOutput、AVCaptureMovieFileOutput等。如下圖。但是今天我們主要介紹AVCaptureVideoDataOutput。
AVCaptureVideoDataOutput
AVCaptureVideoDataOutput 是用于錄制視頻和訪(fǎng)問(wèn)視頻幀的輸出。它繼承自 AVCaptureOutput。
下圖是AVCaptureDeviceInput、AVCaptureConnection和AVCaptureOutput的關(guān)系圖:
捕獲視頻的步驟
創(chuàng )建并初始化一個(gè) AVCaptureSession。
創(chuàng )建并初始化 AVCaptureVideoDataOutput。
設置AVCaptureVideoDataOutput的videoSettings,videoSettings中的Key和value收錄
輸出圖片和視頻格式定義。
調用AVCaptureVideoDataOutput對象的setSampleBufferDelegate方法設置采樣數據緩沖區的代理。這樣當從輸入設備采集數據時(shí),系統會(huì )自動(dòng)調用AVCaptureVideoDataOutputSampleBufferDelegate協(xié)議中的captureOutput方法獲取視頻數據。
將 AVCaptureVideoDataOutput 對象添加到 AVCaptureSession 對象。
根據視頻類(lèi)型AVMediaTypeVideo,創(chuàng )建一個(gè)AVCaptureDevice對象。(您可以創(chuàng )建視頻設備和音頻設備)。
使用 AVCaptureDevice 作為參數創(chuàng )建一個(gè) AVCaptureDeviceInput 對象。
將 AVCaptureDeviceInput 對象添加到 AVCaptureSession 對象。
調用 AVCaptureSession 對象的 setSessionPreset 方法設置屬性。例如設置質(zhì)量級別、比特率或其他輸出設置。
調用Output對象的connectionWithMediaType方法建立Input和Output之間的連接。
調用 AVCaptureSession 對象的 startRunning() 方法開(kāi)始視頻采集。
調用 AVCaptureSession 對象的 stopRunning() 方法停止視頻采集。
看看 WebRTC 是怎么做的
iOS視頻采集相關(guān)的工作在WebRTC的modules/video_capture/objc/rtc_video_capture_objc.mm文件中實(shí)現:
概括
我們首先介紹了iOS上視頻采集的一些基本概念,然后通過(guò)分析WebRTC代碼學(xué)習了視頻采集的基本步驟(共12步)。
在下一篇文章中,我將向大家介紹如何對采集到的視頻數據進(jìn)行編解碼。
希望大家多多關(guān)注,謝謝!
教程:愛(ài)站工具包 破解版
love station toolkit vip破解版是一款為用戶(hù)打造的seo love station toolkit破解版,完美支持IIS、Apache、Nginx,批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛爬取頁(yè)面/目錄,超強秒殺其他日志該工具具有免費的SEO查詢(xún)功能,包括批量搜索收錄、批量搜索長(cháng)尾關(guān)鍵詞等。
更新日志
1.修復競價(jià)詞挖掘空數據問(wèn)題,優(yōu)化百度推廣號登錄
2.修復工具包重復打開(kāi)問(wèn)題
3. 修復關(guān)鍵詞 url與排名結果不匹配的問(wèn)題
4.優(yōu)化日志分析
5.開(kāi)啟關(guān)鍵詞挖礦手機轉碼(站群測試版)
6.增加VIP域名支持
7.修改工具包函數順序
8.模擬爬取頁(yè)面順序爬取
9、百度主動(dòng)推送百度接口問(wèn)題,臨時(shí)取消當天的額度查詢(xún)
10.修復部分用戶(hù)反映的問(wèn)題并優(yōu)化功能
特征
百度外鏈助手:愛(ài)站seo工具包電腦版批量獲取站點(diǎn)外鏈并進(jìn)行垃圾外鏈檢測和狀態(tài)碼查詢(xún),批量篩選/過(guò)濾,輕松獲取需要拒絕的垃圾外鏈。
關(guān)鍵詞監控:實(shí)時(shí)監控全站關(guān)鍵詞排名,覆蓋百度/搜狗/360等國內主流搜索引擎,記錄指定關(guān)鍵詞的歷史排名數據>,支持自定義添加、相關(guān)推薦、關(guān)鍵詞挖掘和競價(jià)搜索關(guān)鍵詞引用等添加方式,排名一目了然!
收錄率/斷鏈檢測:收錄
查詢(xún)整站頁(yè)面并計算網(wǎng)站頁(yè)面收錄率,批量查詢(xún)整站頁(yè)面狀態(tài)碼檢測死鏈接,提供死鏈接入口頁(yè)面,支持nofollow過(guò)濾、指定目錄頁(yè)面查詢(xún),具有很強的可擴展性。一鍵獲取數據!
站外排名:支持查看關(guān)鍵詞站外排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
關(guān)鍵詞挖掘:支持百度索引批量查詢(xún)和關(guān)鍵詞挖掘功能,可以快速批量查詢(xún)導出指定級別的關(guān)鍵詞索引。關(guān)鍵詞挖礦可以挖出愛(ài)站,打開(kāi)站后的所有數據,支持關(guān)聯(lián)/過(guò)濾/篩選/導出等功能
站群查詢(xún):批量查詢(xún)權重/反向鏈/pr/采集
/記錄信息等海量站點(diǎn)數據,支持內頁(yè)查詢(xún),支持數據批量篩選導出。
日志分析:支持所有格式的日志,覆蓋所有搜索引擎蜘蛛。批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛抓取頁(yè)面/目錄/ip排名,同時(shí)提供生動(dòng)的圖標,讓蜘蛛和用戶(hù)行為一目了然!
工具箱:支持查看關(guān)鍵詞遠程排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
常問(wèn)問(wèn)題
安裝包下載后打不開(kāi)怎么辦?(如何打開(kāi).rar文件)
最近收到一小部分新手用戶(hù)反饋下載安裝包后無(wú)法打開(kāi)文件,文件沒(méi)有圖標顯示。由于愛(ài)站seo工具安裝包是壓縮軟件壓縮打包的,格式為rar,所以如果需要打開(kāi)該文件,必須使用解壓軟件解壓后才能使用。常見(jiàn)的解壓軟件是Winrar,下面就給大家詳細介紹一下winrar是如何安裝的。
首先下載winrar:
安裝好WinRAR后,就可以解壓愛(ài)站seo工具rar安裝包了。
愛(ài)站SEO Toolkit如何解綁電腦?
Aizhan SEO Toolkit自誕生以來(lái),一直走的是免費軟件和付費VIP的路線(xiàn)。為保障廣大VIP用戶(hù)和站群用戶(hù)的權益,VIP和站群用戶(hù)的電腦綁定數量分別限制為3臺。,每個(gè)VIP賬號或站群賬號都有一次免費修改綁定電腦的機會(huì )。如需再次修改綁定,需收取相應的解綁費用。因此,VIP用戶(hù)和站群用戶(hù)在使用愛(ài)站SEO工具包時(shí)要注意工具資源的規劃和利用,合理指定綁定的電腦。
愛(ài)站SEO工具包解綁教程如圖:
1 點(diǎn)擊網(wǎng)站右上角工具包解綁
2 只支持VIP和站群用戶(hù)解綁
3 按照提示解綁。一次免費解綁機會(huì )用完后,如需解綁,需額外支付費用
“如果3套滿(mǎn)了需要換,就需要解綁,第一次解綁是免費的,相當于6次免費綁定的機會(huì )?!?br /> 安裝步驟
1、從本站下載最新版愛(ài)站SEO Toolkit安裝包,雙擊運行。
2、選擇接受條款后,可以點(diǎn)擊【瀏覽】選擇軟件的安裝路徑;或直接點(diǎn)擊【下一步】,軟件將安裝到默認位置。
3、耐心等待軟件安裝完成,然后點(diǎn)擊【完成】。
技巧
愛(ài)站SEO Toolkit網(wǎng)站監控工具功能強大,可以批量添加50個(gè)域名。是一款可以幫助用戶(hù)實(shí)時(shí)監控網(wǎng)站,實(shí)現實(shí)時(shí)提醒的強大工具。使用方法也很簡(jiǎn)單,下面我就來(lái)介紹一下這個(gè)工具的使用方法。
1. 點(diǎn)擊網(wǎng)站監控,輸入需要監控的域名。
2. 網(wǎng)站監控設置:可以設置監控頻率的時(shí)間段,當出現問(wèn)題時(shí),會(huì )發(fā)送報警到手機號或郵箱;告警方式(從故障發(fā)生到恢復正常發(fā)送一次告警信息,或繼續告警直至恢復正常) 設置完成后選擇保存,即可實(shí)現網(wǎng)站監控。 查看全部
最新版本:iOS下WebRTC如何采集視頻
前言
前兩天介紹了iOS下如何采集音頻,今天介紹iOS下的視頻采集。要了解iOS是如何采集視頻的,首先我們需要了解AVCaptureSession、AVCaptureDevice的基本概念以及iOS上視頻采集的工作原理。
基本概念
iPhone包括攝像頭、麥克風(fēng)等設備,我們用AVCaptureDevice來(lái)表示。同時(shí)攝像頭是一個(gè)輸入設備,我們也可以用AVCaptureDeviceInput來(lái)表示;同樣,麥克風(fēng)是另一個(gè)輸入設備(AVCaptureDeviceInput)。
為了方便起見(jiàn),iOS 定義了 AVCaptureSession 類(lèi)來(lái)管理這些輸入設備。您可以通過(guò) AVCaptureSession 打開(kāi)一個(gè)輸入設備進(jìn)行數據采集,也可以關(guān)閉一個(gè)輸入設備。
采集
到數據后,需要保存和處理,所以iOS定義了AVCatpureOutput來(lái)做這件事。
下面我們分別介紹各個(gè)類(lèi)。
AVCaptureSession
AVCaptureSession 對象用于管理捕獲活動(dòng)并協(xié)調數據的流入和流出。
AVCaptureSession 對象的 startRunning() 方法是一個(gè)阻塞調用,可能需要一些時(shí)間,所以你應該在串行隊列上執行會(huì )話(huà)設置,這樣主隊列就不會(huì )被阻塞(這將保持 UI 響應)
AVCapture設備
AVCaptureDevice 對象表示物理設備及其屬性。您可以使用它來(lái)設置底層硬件的屬性。捕獲設備還可以為 AVCaptureSession 對象提供數據。
可以使用帶有 AVCaptureDevice 的類(lèi)方法來(lái)枚舉所有可用設備并查詢(xún)它們的功能。AVCaptureDevice 在設備有效或無(wú)效時(shí)由系統通知。
設置設備屬性時(shí),必須先使用 lockForConfiguration() 方法鎖定設備。為設備設置屬性后,需要檢查是否設置成功,設置完成后調用unlockForConfiguration()釋放鎖。

大多數屬性配置都可以通過(guò) AVCaptureSession 對象進(jìn)行設置,但一些特殊選項如高幀率需要直接在 AVCaptureDevice 上進(jìn)行設置。
AVCaptureDeviceInput
AVCaptureDeviceInput是捕獲設備中的輸入端,它繼承自AVCaptureInput,AVCaptureInput是一個(gè)抽象類(lèi)。
AVCaptureConnection
AVCaptureConnection 表示 AVCaptureSession 中 AVCaptureInput 和 AVCaptureOutput 對象之間建立的連接。
AVCapture輸出
AVCaptureOutput是一個(gè)抽象類(lèi),里面有很多具體的實(shí)現類(lèi),比如AVCaptureVideoDataOutput、AVCaptureMovieFileOutput等。如下圖。但是今天我們主要介紹AVCaptureVideoDataOutput。
AVCaptureVideoDataOutput
AVCaptureVideoDataOutput 是用于錄制視頻和訪(fǎng)問(wèn)視頻幀的輸出。它繼承自 AVCaptureOutput。
下圖是AVCaptureDeviceInput、AVCaptureConnection和AVCaptureOutput的關(guān)系圖:
捕獲視頻的步驟
創(chuàng )建并初始化一個(gè) AVCaptureSession。
創(chuàng )建并初始化 AVCaptureVideoDataOutput。
設置AVCaptureVideoDataOutput的videoSettings,videoSettings中的Key和value收錄
輸出圖片和視頻格式定義。
調用AVCaptureVideoDataOutput對象的setSampleBufferDelegate方法設置采樣數據緩沖區的代理。這樣當從輸入設備采集數據時(shí),系統會(huì )自動(dòng)調用AVCaptureVideoDataOutputSampleBufferDelegate協(xié)議中的captureOutput方法獲取視頻數據。

將 AVCaptureVideoDataOutput 對象添加到 AVCaptureSession 對象。
根據視頻類(lèi)型AVMediaTypeVideo,創(chuàng )建一個(gè)AVCaptureDevice對象。(您可以創(chuàng )建視頻設備和音頻設備)。
使用 AVCaptureDevice 作為參數創(chuàng )建一個(gè) AVCaptureDeviceInput 對象。
將 AVCaptureDeviceInput 對象添加到 AVCaptureSession 對象。
調用 AVCaptureSession 對象的 setSessionPreset 方法設置屬性。例如設置質(zhì)量級別、比特率或其他輸出設置。
調用Output對象的connectionWithMediaType方法建立Input和Output之間的連接。
調用 AVCaptureSession 對象的 startRunning() 方法開(kāi)始視頻采集。
調用 AVCaptureSession 對象的 stopRunning() 方法停止視頻采集。
看看 WebRTC 是怎么做的
iOS視頻采集相關(guān)的工作在WebRTC的modules/video_capture/objc/rtc_video_capture_objc.mm文件中實(shí)現:
概括
我們首先介紹了iOS上視頻采集的一些基本概念,然后通過(guò)分析WebRTC代碼學(xué)習了視頻采集的基本步驟(共12步)。
在下一篇文章中,我將向大家介紹如何對采集到的視頻數據進(jìn)行編解碼。
希望大家多多關(guān)注,謝謝!
教程:愛(ài)站工具包 破解版
love station toolkit vip破解版是一款為用戶(hù)打造的seo love station toolkit破解版,完美支持IIS、Apache、Nginx,批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛爬取頁(yè)面/目錄,超強秒殺其他日志該工具具有免費的SEO查詢(xún)功能,包括批量搜索收錄、批量搜索長(cháng)尾關(guān)鍵詞等。
更新日志
1.修復競價(jià)詞挖掘空數據問(wèn)題,優(yōu)化百度推廣號登錄
2.修復工具包重復打開(kāi)問(wèn)題
3. 修復關(guān)鍵詞 url與排名結果不匹配的問(wèn)題
4.優(yōu)化日志分析
5.開(kāi)啟關(guān)鍵詞挖礦手機轉碼(站群測試版)
6.增加VIP域名支持
7.修改工具包函數順序
8.模擬爬取頁(yè)面順序爬取
9、百度主動(dòng)推送百度接口問(wèn)題,臨時(shí)取消當天的額度查詢(xún)
10.修復部分用戶(hù)反映的問(wèn)題并優(yōu)化功能
特征
百度外鏈助手:愛(ài)站seo工具包電腦版批量獲取站點(diǎn)外鏈并進(jìn)行垃圾外鏈檢測和狀態(tài)碼查詢(xún),批量篩選/過(guò)濾,輕松獲取需要拒絕的垃圾外鏈。
關(guān)鍵詞監控:實(shí)時(shí)監控全站關(guān)鍵詞排名,覆蓋百度/搜狗/360等國內主流搜索引擎,記錄指定關(guān)鍵詞的歷史排名數據>,支持自定義添加、相關(guān)推薦、關(guān)鍵詞挖掘和競價(jià)搜索關(guān)鍵詞引用等添加方式,排名一目了然!
收錄率/斷鏈檢測:收錄
查詢(xún)整站頁(yè)面并計算網(wǎng)站頁(yè)面收錄率,批量查詢(xún)整站頁(yè)面狀態(tài)碼檢測死鏈接,提供死鏈接入口頁(yè)面,支持nofollow過(guò)濾、指定目錄頁(yè)面查詢(xún),具有很強的可擴展性。一鍵獲取數據!

站外排名:支持查看關(guān)鍵詞站外排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
關(guān)鍵詞挖掘:支持百度索引批量查詢(xún)和關(guān)鍵詞挖掘功能,可以快速批量查詢(xún)導出指定級別的關(guān)鍵詞索引。關(guān)鍵詞挖礦可以挖出愛(ài)站,打開(kāi)站后的所有數據,支持關(guān)聯(lián)/過(guò)濾/篩選/導出等功能
站群查詢(xún):批量查詢(xún)權重/反向鏈/pr/采集
/記錄信息等海量站點(diǎn)數據,支持內頁(yè)查詢(xún),支持數據批量篩選導出。
日志分析:支持所有格式的日志,覆蓋所有搜索引擎蜘蛛。批量分析用戶(hù)和蜘蛛狀態(tài)碼,蜘蛛抓取頁(yè)面/目錄/ip排名,同時(shí)提供生動(dòng)的圖標,讓蜘蛛和用戶(hù)行為一目了然!
工具箱:支持查看關(guān)鍵詞遠程排名信息。支持百度/搜狗/360等主流搜索引擎,無(wú)需驗證碼,想查就查!
常問(wèn)問(wèn)題
安裝包下載后打不開(kāi)怎么辦?(如何打開(kāi).rar文件)
最近收到一小部分新手用戶(hù)反饋下載安裝包后無(wú)法打開(kāi)文件,文件沒(méi)有圖標顯示。由于愛(ài)站seo工具安裝包是壓縮軟件壓縮打包的,格式為rar,所以如果需要打開(kāi)該文件,必須使用解壓軟件解壓后才能使用。常見(jiàn)的解壓軟件是Winrar,下面就給大家詳細介紹一下winrar是如何安裝的。
首先下載winrar:
安裝好WinRAR后,就可以解壓愛(ài)站seo工具rar安裝包了。
愛(ài)站SEO Toolkit如何解綁電腦?
Aizhan SEO Toolkit自誕生以來(lái),一直走的是免費軟件和付費VIP的路線(xiàn)。為保障廣大VIP用戶(hù)和站群用戶(hù)的權益,VIP和站群用戶(hù)的電腦綁定數量分別限制為3臺。,每個(gè)VIP賬號或站群賬號都有一次免費修改綁定電腦的機會(huì )。如需再次修改綁定,需收取相應的解綁費用。因此,VIP用戶(hù)和站群用戶(hù)在使用愛(ài)站SEO工具包時(shí)要注意工具資源的規劃和利用,合理指定綁定的電腦。
愛(ài)站SEO工具包解綁教程如圖:
1 點(diǎn)擊網(wǎng)站右上角工具包解綁
2 只支持VIP和站群用戶(hù)解綁
3 按照提示解綁。一次免費解綁機會(huì )用完后,如需解綁,需額外支付費用

“如果3套滿(mǎn)了需要換,就需要解綁,第一次解綁是免費的,相當于6次免費綁定的機會(huì )?!?br /> 安裝步驟
1、從本站下載最新版愛(ài)站SEO Toolkit安裝包,雙擊運行。
2、選擇接受條款后,可以點(diǎn)擊【瀏覽】選擇軟件的安裝路徑;或直接點(diǎn)擊【下一步】,軟件將安裝到默認位置。
3、耐心等待軟件安裝完成,然后點(diǎn)擊【完成】。
技巧
愛(ài)站SEO Toolkit網(wǎng)站監控工具功能強大,可以批量添加50個(gè)域名。是一款可以幫助用戶(hù)實(shí)時(shí)監控網(wǎng)站,實(shí)現實(shí)時(shí)提醒的強大工具。使用方法也很簡(jiǎn)單,下面我就來(lái)介紹一下這個(gè)工具的使用方法。
1. 點(diǎn)擊網(wǎng)站監控,輸入需要監控的域名。
2. 網(wǎng)站監控設置:可以設置監控頻率的時(shí)間段,當出現問(wèn)題時(shí),會(huì )發(fā)送報警到手機號或郵箱;告警方式(從故障發(fā)生到恢復正常發(fā)送一次告警信息,或繼續告警直至恢復正常) 設置完成后選擇保存,即可實(shí)現網(wǎng)站監控。
解決方案:MFC+Modbus-Tcp協(xié)議實(shí)現溫濕度傳感器采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-11-29 19:22
本文簡(jiǎn)單介紹MFC使用Modbus-Tcp通訊實(shí)現RS-WS-ETH-6系列MODBUSTCP溫濕度傳感器的數據采集。
1.了解ModbusTCP協(xié)議
一文看懂Modbus協(xié)議:一文看懂Modbus協(xié)議
2.libmodbus驅動(dòng)庫
libmodbus驅動(dòng)庫的使用:Modbus驅動(dòng)庫-libmodbus驅動(dòng)庫的使用_whik1194的博客-CSDN博客_libmodbus
Modbus中文手冊:libmodbus官方手冊中文翻譯
3、溫濕度傳感器配置
1. 參考設備使用說(shuō)明書(shū)(從設備官網(wǎng)下載),使用配置軟件搜索連接的設備,設置設備的本地參數、網(wǎng)絡(luò )參數、設備參數。
2. 確定溫濕度數據的寄存器地址。
4.使用MFC編寫(xiě)上位機軟件
1.新建MFC應用程序ModbusTcpTest
2.為項目添加參考資源
引用外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目:外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目_同酷做的博客-CSDN博客_mfc導入dll
3.建立連接
//創(chuàng )建modbus對象
modbus_t *modbus;
//建立tcp連接
modbus = modbus_new_tcp(ip地址,端口號);
//設置奴隸
int ret = modbus_set_slave(modbus,slave number);//錯誤返回-1,正確返回0;
// 連接
ret = modbus_connect(modbus);//錯誤返回-1,正確返回0;
//設置響應延遲,第三個(gè)參數是最近的時(shí)間,1000是1ms而不是1s;
ret = modbus_response_timeout(modbus,0,900000);
4.讀取數據
ret = modbus_read_registers(modbus, starting address, number of data, storage container);//讀取的數據存入容器,錯誤返回-1,正確返回0
5.程序界面
6.開(kāi)啟線(xiàn)程刷新數據
參考:【轉】MFC子線(xiàn)程中更新控件內容的兩種方式_zhigang_zhao的博客-CSDN博客
7.源碼下載
解決方案:優(yōu)采云
采集器安裝環(huán)境要求
優(yōu)采云
Collector是一款免費的數據采集發(fā)布軟件,可以部署在云服務(wù)器上??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),與各種CMS建站程序無(wú)縫對接,無(wú)需登錄即可實(shí)時(shí)發(fā)布數據。軟件實(shí)現定時(shí)量化自動(dòng)采集發(fā)布,無(wú)需人工干預!最好的云爬蟲(chóng)軟件優(yōu)采云
采集器功能天財機(優(yōu)采云
數據采集發(fā)布系統)大數據和云時(shí)代網(wǎng)站數據自動(dòng)采集發(fā)布,致力于網(wǎng)站數據自動(dòng)采集發(fā)布,制作數據采集??便捷 智能化、智能化、云端化。系統可部署在云服務(wù)器上,實(shí)現移動(dòng)辦公數據采集。自定義采集規則(regular, XPATH, JSON, 等)可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼
查看全部
解決方案:MFC+Modbus-Tcp協(xié)議實(shí)現溫濕度傳感器采集
本文簡(jiǎn)單介紹MFC使用Modbus-Tcp通訊實(shí)現RS-WS-ETH-6系列MODBUSTCP溫濕度傳感器的數據采集。
1.了解ModbusTCP協(xié)議
一文看懂Modbus協(xié)議:一文看懂Modbus協(xié)議
2.libmodbus驅動(dòng)庫
libmodbus驅動(dòng)庫的使用:Modbus驅動(dòng)庫-libmodbus驅動(dòng)庫的使用_whik1194的博客-CSDN博客_libmodbus
Modbus中文手冊:libmodbus官方手冊中文翻譯
3、溫濕度傳感器配置
1. 參考設備使用說(shuō)明書(shū)(從設備官網(wǎng)下載),使用配置軟件搜索連接的設備,設置設備的本地參數、網(wǎng)絡(luò )參數、設備參數。
2. 確定溫濕度數據的寄存器地址。
4.使用MFC編寫(xiě)上位機軟件

1.新建MFC應用程序ModbusTcpTest
2.為項目添加參考資源
引用外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目:外部動(dòng)態(tài)鏈接庫dll文件導入mfc項目_同酷做的博客-CSDN博客_mfc導入dll
3.建立連接
//創(chuàng )建modbus對象
modbus_t *modbus;
//建立tcp連接
modbus = modbus_new_tcp(ip地址,端口號);
//設置奴隸
int ret = modbus_set_slave(modbus,slave number);//錯誤返回-1,正確返回0;

// 連接
ret = modbus_connect(modbus);//錯誤返回-1,正確返回0;
//設置響應延遲,第三個(gè)參數是最近的時(shí)間,1000是1ms而不是1s;
ret = modbus_response_timeout(modbus,0,900000);
4.讀取數據
ret = modbus_read_registers(modbus, starting address, number of data, storage container);//讀取的數據存入容器,錯誤返回-1,正確返回0
5.程序界面
6.開(kāi)啟線(xiàn)程刷新數據
參考:【轉】MFC子線(xiàn)程中更新控件內容的兩種方式_zhigang_zhao的博客-CSDN博客
7.源碼下載
解決方案:優(yōu)采云
采集器安裝環(huán)境要求

優(yōu)采云
Collector是一款免費的數據采集發(fā)布軟件,可以部署在云服務(wù)器上??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),與各種CMS建站程序無(wú)縫對接,無(wú)需登錄即可實(shí)時(shí)發(fā)布數據。軟件實(shí)現定時(shí)量化自動(dòng)采集發(fā)布,無(wú)需人工干預!最好的云爬蟲(chóng)軟件優(yōu)采云
采集器功能天財機(優(yōu)采云
數據采集發(fā)布系統)大數據和云時(shí)代網(wǎng)站數據自動(dòng)采集發(fā)布,致力于網(wǎng)站數據自動(dòng)采集發(fā)布,制作數據采集??便捷 智能化、智能化、云端化。系統可部署在云服務(wù)器上,實(shí)現移動(dòng)辦公數據采集。自定義采集規則(regular, XPATH, JSON, 等)可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼 ) 可以準確匹配任何信息流??梢圆杉瘞缀跛蓄?lèi)型的網(wǎng)頁(yè),絕大部分文章類(lèi)頁(yè)面的內容都可以實(shí)現智能化。識別內容發(fā)布與各種CMS建站程序無(wú)縫耦合,實(shí)現無(wú)需登錄即可導入數據,支持自定義數據發(fā)布插件,也可直接導入數據庫,存儲為Excel文件,生成API接口等自動(dòng)化及云平臺軟件實(shí)現定時(shí)定量自動(dòng)收放,無(wú)需人工干預!內置云平臺,用戶(hù)可以分享下載采集規則,發(fā)布供求信息,以及社區幫助、交流等。優(yōu)采云
采集器截圖相關(guān)閱讀同類(lèi)推薦:站長(cháng)常用源碼

解決方案:文章采集調用的是七牛數據平臺,需要導入七牛。
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 202 次瀏覽 ? 2022-11-29 19:17
文章采集調用的是七牛數據平臺,需要導入七牛。在七牛中分別有接收搜索和導入數據兩個(gè)操作。其中,引入數據可以看做是商品分類(lèi)。導入數據則是按一類(lèi)存放,存入某數據庫中。數據采集之后,可以拆分分析計算。
這個(gè)應該是你需要找的答案,不過(guò)問(wèn)的人不知道是否找到。
最簡(jiǎn)單直接的方法:下載一個(gè)apiserver,用它解析reactnative,
在android上也不一定要分別去訪(fǎng)問(wèn)七牛和淘寶,下載一個(gè)android網(wǎng)絡(luò )api就可以。具體怎么寫(xiě)都一樣。
不要下七牛,應該找一個(gè)有接口的開(kāi)發(fā)平臺,
簡(jiǎn)單來(lái)說(shuō),就是獲取你認為重要的數據,然后進(jìn)行數據分析,數據拆分分析用好數據這個(gè)我是通過(guò)七牛云上的api接口來(lái)完成的。
如果是導入數據,那需要導入他的sdk,而導入的時(shí)候會(huì )對你的應用做相應的配置,七牛也提供配置接口,所以你可以導入應用。如果你只是想調用七牛的api,那估計就是采集七牛的分析接口了。
七牛數據平臺上有公開(kāi)的api,也可以跟七牛直接連接,接入其它api不過(guò)我知道,你這個(gè)需求,app端的會(huì )比較好做,如果是web端,可能前端同學(xué)做分析比較好。
如果你app采集的是前端的數據, 查看全部
解決方案:文章采集調用的是七牛數據平臺,需要導入七牛。
文章采集調用的是七牛數據平臺,需要導入七牛。在七牛中分別有接收搜索和導入數據兩個(gè)操作。其中,引入數據可以看做是商品分類(lèi)。導入數據則是按一類(lèi)存放,存入某數據庫中。數據采集之后,可以拆分分析計算。
這個(gè)應該是你需要找的答案,不過(guò)問(wèn)的人不知道是否找到。

最簡(jiǎn)單直接的方法:下載一個(gè)apiserver,用它解析reactnative,
在android上也不一定要分別去訪(fǎng)問(wèn)七牛和淘寶,下載一個(gè)android網(wǎng)絡(luò )api就可以。具體怎么寫(xiě)都一樣。
不要下七牛,應該找一個(gè)有接口的開(kāi)發(fā)平臺,

簡(jiǎn)單來(lái)說(shuō),就是獲取你認為重要的數據,然后進(jìn)行數據分析,數據拆分分析用好數據這個(gè)我是通過(guò)七牛云上的api接口來(lái)完成的。
如果是導入數據,那需要導入他的sdk,而導入的時(shí)候會(huì )對你的應用做相應的配置,七牛也提供配置接口,所以你可以導入應用。如果你只是想調用七牛的api,那估計就是采集七牛的分析接口了。
七牛數據平臺上有公開(kāi)的api,也可以跟七牛直接連接,接入其它api不過(guò)我知道,你這個(gè)需求,app端的會(huì )比較好做,如果是web端,可能前端同學(xué)做分析比較好。
如果你app采集的是前端的數據,
解決方案:開(kāi)源一款監控數據采集器,啥都能監控
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 382 次瀏覽 ? 2022-11-29 12:40
介紹
Categraf 是一個(gè)監控和采集
代理,類(lèi)似于 Telegraf、Grafana-Agent 和 Datadog-Agent。它希望為所有常見(jiàn)的監控對象提供監控數據采集能力。它采用一體化設計。不僅支持指標采集,還希望支持日志和調用鏈路數據采集??熵埖难邪l(fā)團隊與Open-Falcon和Nightingale的研發(fā)團隊相同。
categraf 的代碼托管在兩個(gè)地方:
比較的
categraf和telegraf、exporters、grafana-agent、datadog-agent等有什么關(guān)系?
Telegraf 是 influxdb 生態(tài)系統的產(chǎn)物。因為influxdb支持字符串數據,所以telegraf采集的很多字段都是字符串類(lèi)型。另外,influxdb的設計允許標簽是不穩定的結構,比如result_code標簽。有時(shí)它的值為0,有時(shí)它的值為1,這在influxdb中是可以接受的。但是以上兩點(diǎn)在prometheus這樣的時(shí)序庫中處理起來(lái)非常麻煩。
prometheus 生態(tài)系統中有各種導出器,但設計邏輯是每個(gè)監控類(lèi)型一個(gè)導出器,甚至每個(gè)實(shí)例一個(gè)導出器。生產(chǎn)環(huán)境可能會(huì )部署大量的exporter,管理起來(lái)有點(diǎn)麻煩。
grafana-agent導入大量出口商的代碼,沒(méi)有剪裁,沒(méi)有優(yōu)化,沒(méi)有在產(chǎn)品中實(shí)現最佳實(shí)踐。有些中間件還是grafana-agent的一個(gè)目標實(shí)例,管理起來(lái)很不方便。
datadog-agent確實(shí)是高手,但是很多代碼都是python的,而且整個(gè)release包比較大,歷史包袱比較多,而且生態(tài)上自成一派,相對脫離社區。
categraf確實(shí)是另一個(gè)輪子,categraf希望:
安裝
您可以直接轉到 categraf 發(fā)布頁(yè)面,下載已編譯的二進(jìn)制文件,或自行編譯。編譯只需要一個(gè)命令:go build 當然,前提是機器上有Go環(huán)境。
如果您是從舊版本升級,還建議您查看 categraf 發(fā)布頁(yè)面。每個(gè)版本有什么變化,升級的時(shí)候要注意什么,這里都會(huì )寫(xiě)的很清楚。
部署在目標機器上,只需要categraf二進(jìn)制文件和conf目錄。conf下有一個(gè)主配置文件:config.toml,定義了機器名、全局采集頻率、全局附加標簽、遠程寫(xiě)后端地址等;另外,各種采集插件的配置目錄都是以input開(kāi)頭的。如果不想啟用某個(gè)采集
器xx,把input.xx改成其他前綴,比如bak.input.xx,categraf會(huì )忽略這個(gè)采集
器。
conf 目錄中還提供了示例 categraf.service 文件,以便您可以使用 systemd 來(lái)托管 categraf。如果你對systemd不熟悉,推薦學(xué)習一門(mén)課程:Linux進(jìn)階知識
測試
我們經(jīng)常需要測試某個(gè)采集器的行為,臨時(shí)看看采集器輸出了哪些監控指標,比如配置conf/input.mysql/mysql.toml后,查看采集了哪些mysql指標,可以執行命令: 。 /categraf --test --inputs mysql
這個(gè)命令會(huì )連接到你配置的mysql實(shí)例,執行SQL采集
輸出,轉換輸出內容,最后打印到stdout。如果我們在stdout中看到mysql相關(guān)的監控指標正常,說(shuō)明一切正常,否則就是where。如果有問(wèn)題,很大概率是conf/input.mysql/mysql.toml的配置有問(wèn)題。
如果修改了某個(gè)采集器的配置,需要重啟categraf或者向categraf進(jìn)程發(fā)送HUP信號,發(fā)送HUP信號的命令,例如:
kill?-HUP?`pidof?categraf`<br />
另外categraf支持哪些命令行參數可以通過(guò)./categraf --help查看
插件說(shuō)明
采集插件的代碼,在代碼的inputs目錄下,每個(gè)插件都有一個(gè)獨立的目錄,目錄下是采集代碼,以及相關(guān)的監控大盤(pán)JSON(如果有)和告警規則JSON(如果有) ), Linux相關(guān)的dashboards和alarms規則并沒(méi)有分散在cpu、mem、disk等采集器目錄中,而是一起放在了system目錄下,方便使用。
插件的配置文件放在conf目錄下,以input開(kāi)頭。每個(gè)配置文件都有詳細的注釋。不懂的直接去inputs目錄下對應采集器的代碼即可。Go代碼非常易讀,比如不知道某個(gè)配置是干什么的,去采集器代碼中搜索相關(guān)配置項,很容易找到答案。
配置說(shuō)明
下面是對config.toml中各個(gè)配置的解釋?zhuān)?br /> [global]
# 啟動(dòng)的時(shí)候是否在stdout中打印配置內容
print_configs = false
# 機器名,作為本機的唯一標識,會(huì )為時(shí)序數據自動(dòng)附加一個(gè) agent_hostname=$hostname 的標簽
# hostname 配置如果為空,自動(dòng)取本機的機器名
# hostname 配置如果不為空,就使用用戶(hù)配置的內容作為hostname
# 用戶(hù)配置的hostname字符串中,可以包含變量,目前支持兩個(gè)變量,
# $hostname 和 $ip,如果字符串中出現這兩個(gè)變量,就會(huì )自動(dòng)替換
# $hostname 自動(dòng)替換為本機機器名,$ip 自動(dòng)替換為本機IP
# 建議大家使用 --test 做一下測試,看看輸出的內容是否符合預期
hostname = ""
# 是否忽略主機名的標簽,如果設置為true,時(shí)序數據中就不會(huì )自動(dòng)附加agent_hostname=$hostname 的標簽
<p>
omit_hostname = false
# 時(shí)序數據的時(shí)間戳使用ms還是s,默認是ms,是因為remote write協(xié)議使用ms作為時(shí)間戳的單位
precision = "ms"
# 全局采集頻率,15秒采集一次
interval = 15
# 全局附加標簽,一行一個(gè),這些寫(xiě)的標簽會(huì )自動(dòng)附到時(shí)序數據上
# [global.labels]
# region = "shanghai"
# env = "localhost"
# 發(fā)給后端的時(shí)序數據,會(huì )先被扔到 categraf 內存隊列里,每個(gè)采集插件一個(gè)隊列
# chan_size 定義了隊列最大長(cháng)度
# batch 是每次從隊列中取多少條,發(fā)送給后端backend
[writer_opt]
# default: 2000
batch = 2000
# channel(as queue) size
chan_size = 10000
# 后端backend配置,在toml中 [[]] 表示數組,所以可以配置多個(gè)writer
# 每個(gè)writer可以有不同的url,不同的basic auth信息
[[writers]]
url = "http://127.0.0.1:19000/prometheus/v1/write"
# Basic auth username
basic_auth_user = ""
# Basic auth password
basic_auth_pass = ""
# timeout settings, unit: ms
timeout = 5000
dial_timeout = 2500
max_idle_conns_per_host = 100
</p>
對于各個(gè)采集器的配置,這里不做贅述,只說(shuō)一些比較常用的配置項。
間隔
在每個(gè)插件的配置中,開(kāi)頭通常會(huì )有一個(gè)interval配置,表示采集頻率。如果注釋掉該配置,將復用config.toml中的采集頻率。如果此配置配置為數字,則單位為秒。如果配置為字符串時(shí),必須給出單位,例如:
interval = 60
interval = "60s"
interval = "1m"
以上三種寫(xiě)法均表示采集頻率為1分鐘。如果使用字符串,可以使用的單位是:
實(shí)例
在很多采集插件的配置中,有一個(gè)instances配置段,用[[]]包裹起來(lái),表示是一個(gè)數組,即可以出現多個(gè)[[instances]]配置段,比如ping監控采集插件。PING檢測的IP可以配置如下:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1",
"10.4.5.6",
"10.4.5.7"
]
也可以這樣配置:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1"
]
[[instances]]
targets = [
"10.4.5.6",
"10.4.5.7"
]
間隔時(shí)間
如果instances下有interval_times配置,表示interval的倍數,比如ping監控,有的地址是15秒的頻率采集,有的可能不想采集太頻繁,比如30秒,那么你可以配置interval為15,不需要頻繁那些采集到的instance的interval_times配置為2
或者:配置interval為5,將那些需要15秒采集一次的實(shí)例的interval_times配置為3,將那些需要30秒采集一次的實(shí)例的interval_times配置為6
標簽
instances下的標簽和config.toml中的global.labels類(lèi)似,只是作用范圍不同。它們都是時(shí)間序列數據。instances下的labels附在對應的instance上,global.labels附在所有時(shí)序數據上
工作計劃
categraf已經(jīng)完成了一些常用的采集插件,還有很多有待開(kāi)發(fā)。歡迎搭建和補充。完成的采集插件包括:
有些采集器不僅提供采集能力,還提供監控配置和告警規則配置。您可以將 JSON 導入 Nightingale 并使用它。至于哪些插件提供了JSON配置,可以通過(guò)以下方式找到:
[root@master01?categraf]#?find?inputs?-name?"*.json"<br />inputs/redis/alerts.json<br />inputs/redis/dashboard.json<br />inputs/system/dashboard.json<br />inputs/system/alerts-linux.json<br />inputs/oracle/dashboard.json<br />inputs/ping/alerts.json<br />inputs/ping/dashboard.json<br />inputs/ntp/alerts.json<br />inputs/procstat/alerts.json<br />inputs/mysql/alerts.json<br />inputs/mysql/dashboard.json<br />inputs/tomcat/dashboard.json<br />inputs/rabbitmq/dashboard.json<br />inputs/http_response/alerts.json<br />inputs/http_response/dashboard.json<br />inputs/net_response/alerts.json<br />inputs/net_response/dashboard.json<br />
還需要繼續開(kāi)發(fā)的包括:
更多信息
解決方案:基于 PTS 壓測輕松玩轉問(wèn)題診斷
為什么要定位壓力測試的問(wèn)題?
性能測試PTS(Performance Testing Service)是一個(gè)SaaS壓測平臺,具有強大的分布式壓測能力,可以模擬海量用戶(hù)的真實(shí)業(yè)務(wù)場(chǎng)景,全面驗證業(yè)務(wù)站點(diǎn)的性能、容量和穩定性。
在持續測壓服務(wù)器水位的過(guò)程中,我們可以從壓測視圖或者壓測報告中看到更全面的壓測指標,比如QPS、RT、TPS等,但僅僅從這些指標來(lái)看,它無(wú)法快速定位到服務(wù)器的具體問(wèn)題。比如我們可以從整個(gè)場(chǎng)景的錯誤信息中心看到錯誤碼對應的接口的響應體,但是下游是哪個(gè)環(huán)節錯了,錯誤的棧是什么,你是看不到的這里簡(jiǎn)單的從report上看,但是接口下游有什么問(wèn)題,error stack是什么,正是用戶(hù)關(guān)心的問(wèn)題。
借助問(wèn)題診斷,我們可以理清被壓接口的上下游調用。同時(shí)從鏈路視圖中我們可以看到整個(gè)鏈路經(jīng)過(guò)的消息組件(Kafka、RocketMQ等)、緩存(Redis、MongoDB等)。等),數據庫(MySQL,Oracle等),RPC調用(Feign,Dubbo,HttpClient等),比如某個(gè)接口狀態(tài)碼異?;蛘咂渌e誤,那么我們可以從調用鏈上看那就是rpc調用有問(wèn)題,就是數據庫讀寫(xiě)有問(wèn)題,從調用鏈可以看到對應的錯誤棧。根據這些信息,應該比較清楚問(wèn)題出在哪里。
問(wèn)題診斷基本介紹及核心優(yōu)勢
在進(jìn)行問(wèn)題診斷時(shí),用戶(hù)主要關(guān)心接入問(wèn)題診斷是否需要對應用端代碼進(jìn)行一系列修改,是否需要復雜的配置等等。PTS提供的問(wèn)題診斷基于JavaAgent,用戶(hù)端無(wú)需修改業(yè)務(wù)代碼。對于基于Tomcat的部署方式,用戶(hù)只需在啟動(dòng)腳本中添加一些必要的參數即可接入問(wèn)題診斷;對于 Kubernetes 用戶(hù),用戶(hù)只需要在 Yaml 配置文件中添加一些必要的注解即可訪(fǎng)問(wèn)問(wèn)題診斷。對于鏈接采集
規則,PTS會(huì )提供默認配置,用戶(hù)也可以根據自己的需要進(jìn)行更改。
PTS集成問(wèn)題診斷在壓測??過(guò)程中,對于每一個(gè)請求,在壓力引擎側都會(huì )生成一個(gè)TraceId,通過(guò)TraceId關(guān)聯(lián)請求中涉及的上下游環(huán)節,用戶(hù)可以看到作為入口到本次請求結束所涉及的完整調用鏈,同時(shí)問(wèn)題診斷會(huì )為調用鏈生成對應的應用拓撲視圖,讓用戶(hù)清晰的看到應用之間的調用關(guān)系。
對于異常的接口,我們可以在調用鏈中看到相應的錯誤原因。同時(shí),用戶(hù)可以根據具體的錯誤堆棧對服務(wù)端問(wèn)題進(jìn)行排查和優(yōu)化。壓測過(guò)程中,用戶(hù)可以實(shí)時(shí)查看指定請求的調用鏈。同時(shí),壓測結束后,還可以從壓測報告中追溯問(wèn)題。
核心優(yōu)勢
1. 零代碼入侵:對于Java類(lèi)業(yè)務(wù),用戶(hù)側無(wú)需修改業(yè)務(wù)側代碼即可完成問(wèn)題診斷的探針接入。
2、集成度高:壓測、監控、問(wèn)題診斷集成在同一個(gè)控制臺,用戶(hù)理解和操作成本較低。
3、監控指標全面:壓測過(guò)程中,除了比較基礎的監控指標外,還針對各個(gè)服務(wù)提供了接口、機器、應用層面的監控。
4、門(mén)檻低:只需要簡(jiǎn)單的配置參數即可完成問(wèn)題診斷探針的接入。同時(shí),探針還具備多協(xié)議mock、全鏈路壓力測試等功能。
快速玩轉問(wèn)題診斷
接入問(wèn)題診斷的基本流程如下:
訪(fǎng)問(wèn)探針,查看是否訪(fǎng)問(wèn)成功
首先,我們對壓力場(chǎng)景涉及的應用進(jìn)行梳理,將所有涉及的應用按照【問(wèn)題診斷】->【探針接入[1]]文檔中的步驟接入問(wèn)題診斷探針。我們可以在PTS控制臺中選擇應用配置或應用監控、接口監控、機器監控中的一項來(lái)查看應用探針是否連接成功。我們這次演示的壓測場(chǎng)景涉及五個(gè)應用,分別是petstore-web、petstore-user、petstore-order、petstore-catalog、petstore-cart。這里以應用監控為例,檢查應用是否連接成功。點(diǎn)擊【問(wèn)題診斷】->【應用監控[2]]->依次選擇我們在PTS控制臺配置的Region和Namespace。
壓測場(chǎng)景開(kāi)啟問(wèn)題診斷開(kāi)關(guān)
然后,我們在PTS控制臺的【壓測中心】->【創(chuàng )建場(chǎng)景【3】】創(chuàng )建一個(gè)壓測場(chǎng)景。這里可以選擇PTS場(chǎng)景或者JMeter場(chǎng)景。這里我們以PTS場(chǎng)景為例,因為本次演示主要是驗證問(wèn)題診斷的能力,所以需要在場(chǎng)景配置中的【高級設置】中打開(kāi)問(wèn)題診斷開(kāi)關(guān)。對于具體的監控采集規則,PTS會(huì )將默認采集開(kāi)關(guān)的配置推送給用戶(hù)。同時(shí)采樣率設置為1/1000,用戶(hù)也可以根據自己的需要進(jìn)行自定義。
開(kāi)始壓測,查看應用監控
完成以上步驟后,我們的壓測場(chǎng)景就具備了診斷問(wèn)題的能力。我們點(diǎn)擊開(kāi)始壓測后,可以在應用監控、接口監控、機器監控中選擇我們關(guān)心的服務(wù),查看相應的監控情況。這里我們以應用監控[2]為例。其他類(lèi)型監控的操作步驟類(lèi)似。我們選擇 petstore-user 這個(gè)服務(wù)來(lái)查看應用監控,如下圖:
壓測結束后,查看整個(gè)場(chǎng)景的錯誤信息
壓測結束后,我們需要從壓測報告中排查受壓服務(wù)器的問(wèn)題,打開(kāi)對應場(chǎng)景的壓測報告。具體步驟為:PTS控制臺->【壓測中心】->【報告列表[4]】,選擇對應的壓測報告,在概覽頁(yè)面可以看到整個(gè)場(chǎng)景的信息,如圖下圖:
選擇探針采樣查看具體的調用鏈
點(diǎn)擊【查看采樣日志】,采樣類(lèi)型選擇“探針采樣”,過(guò)濾出問(wèn)題診斷探針采集到的調用鏈,如下圖:
查看調用鏈的具體錯誤堆棧信息定位服務(wù)端問(wèn)題
過(guò)濾掉探針端采集
到的調用鏈后,就可以分析出問(wèn)題接口的調用鏈了。例如商品列表接口返回的狀態(tài)碼為500,點(diǎn)擊查看詳情可以查看具體原因,如下圖:
從調用??梢钥闯鼍唧w的錯誤原因,從而優(yōu)化和修復服務(wù)端代碼。同時(shí),您可以通過(guò)應用拓撲視圖和數據庫視圖查看服務(wù)之間的調用和數據庫使用情況。這里以應用拓撲視圖為例,如下圖所示:
壓測報告常見(jiàn)錯誤碼匯總 問(wèn)題診斷錯誤碼匯總
問(wèn)題診斷調用環(huán)節中常見(jiàn)的錯誤碼總結如下:
壓測報告錯誤碼匯總
以下是壓力測試報告中的常見(jiàn)錯誤列表。我們可以從整個(gè)場(chǎng)景的錯誤信息中看到相關(guān)的錯誤信息,如下:
相關(guān)鏈接
[1] 探測訪(fǎng)問(wèn)
[2] 應用監控
[3] 創(chuàng )建場(chǎng)景
[4] 報告清單
???? 查看全部
解決方案:開(kāi)源一款監控數據采集器,啥都能監控
介紹
Categraf 是一個(gè)監控和采集
代理,類(lèi)似于 Telegraf、Grafana-Agent 和 Datadog-Agent。它希望為所有常見(jiàn)的監控對象提供監控數據采集能力。它采用一體化設計。不僅支持指標采集,還希望支持日志和調用鏈路數據采集??熵埖难邪l(fā)團隊與Open-Falcon和Nightingale的研發(fā)團隊相同。
categraf 的代碼托管在兩個(gè)地方:
比較的
categraf和telegraf、exporters、grafana-agent、datadog-agent等有什么關(guān)系?
Telegraf 是 influxdb 生態(tài)系統的產(chǎn)物。因為influxdb支持字符串數據,所以telegraf采集的很多字段都是字符串類(lèi)型。另外,influxdb的設計允許標簽是不穩定的結構,比如result_code標簽。有時(shí)它的值為0,有時(shí)它的值為1,這在influxdb中是可以接受的。但是以上兩點(diǎn)在prometheus這樣的時(shí)序庫中處理起來(lái)非常麻煩。
prometheus 生態(tài)系統中有各種導出器,但設計邏輯是每個(gè)監控類(lèi)型一個(gè)導出器,甚至每個(gè)實(shí)例一個(gè)導出器。生產(chǎn)環(huán)境可能會(huì )部署大量的exporter,管理起來(lái)有點(diǎn)麻煩。
grafana-agent導入大量出口商的代碼,沒(méi)有剪裁,沒(méi)有優(yōu)化,沒(méi)有在產(chǎn)品中實(shí)現最佳實(shí)踐。有些中間件還是grafana-agent的一個(gè)目標實(shí)例,管理起來(lái)很不方便。
datadog-agent確實(shí)是高手,但是很多代碼都是python的,而且整個(gè)release包比較大,歷史包袱比較多,而且生態(tài)上自成一派,相對脫離社區。
categraf確實(shí)是另一個(gè)輪子,categraf希望:
安裝
您可以直接轉到 categraf 發(fā)布頁(yè)面,下載已編譯的二進(jìn)制文件,或自行編譯。編譯只需要一個(gè)命令:go build 當然,前提是機器上有Go環(huán)境。
如果您是從舊版本升級,還建議您查看 categraf 發(fā)布頁(yè)面。每個(gè)版本有什么變化,升級的時(shí)候要注意什么,這里都會(huì )寫(xiě)的很清楚。
部署在目標機器上,只需要categraf二進(jìn)制文件和conf目錄。conf下有一個(gè)主配置文件:config.toml,定義了機器名、全局采集頻率、全局附加標簽、遠程寫(xiě)后端地址等;另外,各種采集插件的配置目錄都是以input開(kāi)頭的。如果不想啟用某個(gè)采集
器xx,把input.xx改成其他前綴,比如bak.input.xx,categraf會(huì )忽略這個(gè)采集
器。
conf 目錄中還提供了示例 categraf.service 文件,以便您可以使用 systemd 來(lái)托管 categraf。如果你對systemd不熟悉,推薦學(xué)習一門(mén)課程:Linux進(jìn)階知識
測試
我們經(jīng)常需要測試某個(gè)采集器的行為,臨時(shí)看看采集器輸出了哪些監控指標,比如配置conf/input.mysql/mysql.toml后,查看采集了哪些mysql指標,可以執行命令: 。 /categraf --test --inputs mysql
這個(gè)命令會(huì )連接到你配置的mysql實(shí)例,執行SQL采集
輸出,轉換輸出內容,最后打印到stdout。如果我們在stdout中看到mysql相關(guān)的監控指標正常,說(shuō)明一切正常,否則就是where。如果有問(wèn)題,很大概率是conf/input.mysql/mysql.toml的配置有問(wèn)題。
如果修改了某個(gè)采集器的配置,需要重啟categraf或者向categraf進(jìn)程發(fā)送HUP信號,發(fā)送HUP信號的命令,例如:
kill?-HUP?`pidof?categraf`<br />
另外categraf支持哪些命令行參數可以通過(guò)./categraf --help查看
插件說(shuō)明
采集插件的代碼,在代碼的inputs目錄下,每個(gè)插件都有一個(gè)獨立的目錄,目錄下是采集代碼,以及相關(guān)的監控大盤(pán)JSON(如果有)和告警規則JSON(如果有) ), Linux相關(guān)的dashboards和alarms規則并沒(méi)有分散在cpu、mem、disk等采集器目錄中,而是一起放在了system目錄下,方便使用。
插件的配置文件放在conf目錄下,以input開(kāi)頭。每個(gè)配置文件都有詳細的注釋。不懂的直接去inputs目錄下對應采集器的代碼即可。Go代碼非常易讀,比如不知道某個(gè)配置是干什么的,去采集器代碼中搜索相關(guān)配置項,很容易找到答案。
配置說(shuō)明
下面是對config.toml中各個(gè)配置的解釋?zhuān)?br /> [global]
# 啟動(dòng)的時(shí)候是否在stdout中打印配置內容
print_configs = false
# 機器名,作為本機的唯一標識,會(huì )為時(shí)序數據自動(dòng)附加一個(gè) agent_hostname=$hostname 的標簽
# hostname 配置如果為空,自動(dòng)取本機的機器名
# hostname 配置如果不為空,就使用用戶(hù)配置的內容作為hostname
# 用戶(hù)配置的hostname字符串中,可以包含變量,目前支持兩個(gè)變量,
# $hostname 和 $ip,如果字符串中出現這兩個(gè)變量,就會(huì )自動(dòng)替換
# $hostname 自動(dòng)替換為本機機器名,$ip 自動(dòng)替換為本機IP
# 建議大家使用 --test 做一下測試,看看輸出的內容是否符合預期
hostname = ""
# 是否忽略主機名的標簽,如果設置為true,時(shí)序數據中就不會(huì )自動(dòng)附加agent_hostname=$hostname 的標簽
<p>

omit_hostname = false
# 時(shí)序數據的時(shí)間戳使用ms還是s,默認是ms,是因為remote write協(xié)議使用ms作為時(shí)間戳的單位
precision = "ms"
# 全局采集頻率,15秒采集一次
interval = 15
# 全局附加標簽,一行一個(gè),這些寫(xiě)的標簽會(huì )自動(dòng)附到時(shí)序數據上
# [global.labels]
# region = "shanghai"
# env = "localhost"
# 發(fā)給后端的時(shí)序數據,會(huì )先被扔到 categraf 內存隊列里,每個(gè)采集插件一個(gè)隊列
# chan_size 定義了隊列最大長(cháng)度
# batch 是每次從隊列中取多少條,發(fā)送給后端backend
[writer_opt]
# default: 2000
batch = 2000
# channel(as queue) size
chan_size = 10000
# 后端backend配置,在toml中 [[]] 表示數組,所以可以配置多個(gè)writer
# 每個(gè)writer可以有不同的url,不同的basic auth信息
[[writers]]
url = "http://127.0.0.1:19000/prometheus/v1/write"
# Basic auth username
basic_auth_user = ""
# Basic auth password
basic_auth_pass = ""
# timeout settings, unit: ms
timeout = 5000
dial_timeout = 2500
max_idle_conns_per_host = 100
</p>
對于各個(gè)采集器的配置,這里不做贅述,只說(shuō)一些比較常用的配置項。
間隔

在每個(gè)插件的配置中,開(kāi)頭通常會(huì )有一個(gè)interval配置,表示采集頻率。如果注釋掉該配置,將復用config.toml中的采集頻率。如果此配置配置為數字,則單位為秒。如果配置為字符串時(shí),必須給出單位,例如:
interval = 60
interval = "60s"
interval = "1m"
以上三種寫(xiě)法均表示采集頻率為1分鐘。如果使用字符串,可以使用的單位是:
實(shí)例
在很多采集插件的配置中,有一個(gè)instances配置段,用[[]]包裹起來(lái),表示是一個(gè)數組,即可以出現多個(gè)[[instances]]配置段,比如ping監控采集插件。PING檢測的IP可以配置如下:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1",
"10.4.5.6",
"10.4.5.7"
]
也可以這樣配置:
[[instances]]
targets = [
"www.baidu.com",
"127.0.0.1"
]
[[instances]]
targets = [
"10.4.5.6",
"10.4.5.7"
]
間隔時(shí)間
如果instances下有interval_times配置,表示interval的倍數,比如ping監控,有的地址是15秒的頻率采集,有的可能不想采集太頻繁,比如30秒,那么你可以配置interval為15,不需要頻繁那些采集到的instance的interval_times配置為2
或者:配置interval為5,將那些需要15秒采集一次的實(shí)例的interval_times配置為3,將那些需要30秒采集一次的實(shí)例的interval_times配置為6
標簽
instances下的標簽和config.toml中的global.labels類(lèi)似,只是作用范圍不同。它們都是時(shí)間序列數據。instances下的labels附在對應的instance上,global.labels附在所有時(shí)序數據上
工作計劃
categraf已經(jīng)完成了一些常用的采集插件,還有很多有待開(kāi)發(fā)。歡迎搭建和補充。完成的采集插件包括:
有些采集器不僅提供采集能力,還提供監控配置和告警規則配置。您可以將 JSON 導入 Nightingale 并使用它。至于哪些插件提供了JSON配置,可以通過(guò)以下方式找到:
[root@master01?categraf]#?find?inputs?-name?"*.json"<br />inputs/redis/alerts.json<br />inputs/redis/dashboard.json<br />inputs/system/dashboard.json<br />inputs/system/alerts-linux.json<br />inputs/oracle/dashboard.json<br />inputs/ping/alerts.json<br />inputs/ping/dashboard.json<br />inputs/ntp/alerts.json<br />inputs/procstat/alerts.json<br />inputs/mysql/alerts.json<br />inputs/mysql/dashboard.json<br />inputs/tomcat/dashboard.json<br />inputs/rabbitmq/dashboard.json<br />inputs/http_response/alerts.json<br />inputs/http_response/dashboard.json<br />inputs/net_response/alerts.json<br />inputs/net_response/dashboard.json<br />
還需要繼續開(kāi)發(fā)的包括:
更多信息
解決方案:基于 PTS 壓測輕松玩轉問(wèn)題診斷
為什么要定位壓力測試的問(wèn)題?
性能測試PTS(Performance Testing Service)是一個(gè)SaaS壓測平臺,具有強大的分布式壓測能力,可以模擬海量用戶(hù)的真實(shí)業(yè)務(wù)場(chǎng)景,全面驗證業(yè)務(wù)站點(diǎn)的性能、容量和穩定性。
在持續測壓服務(wù)器水位的過(guò)程中,我們可以從壓測視圖或者壓測報告中看到更全面的壓測指標,比如QPS、RT、TPS等,但僅僅從這些指標來(lái)看,它無(wú)法快速定位到服務(wù)器的具體問(wèn)題。比如我們可以從整個(gè)場(chǎng)景的錯誤信息中心看到錯誤碼對應的接口的響應體,但是下游是哪個(gè)環(huán)節錯了,錯誤的棧是什么,你是看不到的這里簡(jiǎn)單的從report上看,但是接口下游有什么問(wèn)題,error stack是什么,正是用戶(hù)關(guān)心的問(wèn)題。
借助問(wèn)題診斷,我們可以理清被壓接口的上下游調用。同時(shí)從鏈路視圖中我們可以看到整個(gè)鏈路經(jīng)過(guò)的消息組件(Kafka、RocketMQ等)、緩存(Redis、MongoDB等)。等),數據庫(MySQL,Oracle等),RPC調用(Feign,Dubbo,HttpClient等),比如某個(gè)接口狀態(tài)碼異?;蛘咂渌e誤,那么我們可以從調用鏈上看那就是rpc調用有問(wèn)題,就是數據庫讀寫(xiě)有問(wèn)題,從調用鏈可以看到對應的錯誤棧。根據這些信息,應該比較清楚問(wèn)題出在哪里。
問(wèn)題診斷基本介紹及核心優(yōu)勢
在進(jìn)行問(wèn)題診斷時(shí),用戶(hù)主要關(guān)心接入問(wèn)題診斷是否需要對應用端代碼進(jìn)行一系列修改,是否需要復雜的配置等等。PTS提供的問(wèn)題診斷基于JavaAgent,用戶(hù)端無(wú)需修改業(yè)務(wù)代碼。對于基于Tomcat的部署方式,用戶(hù)只需在啟動(dòng)腳本中添加一些必要的參數即可接入問(wèn)題診斷;對于 Kubernetes 用戶(hù),用戶(hù)只需要在 Yaml 配置文件中添加一些必要的注解即可訪(fǎng)問(wèn)問(wèn)題診斷。對于鏈接采集
規則,PTS會(huì )提供默認配置,用戶(hù)也可以根據自己的需要進(jìn)行更改。
PTS集成問(wèn)題診斷在壓測??過(guò)程中,對于每一個(gè)請求,在壓力引擎側都會(huì )生成一個(gè)TraceId,通過(guò)TraceId關(guān)聯(lián)請求中涉及的上下游環(huán)節,用戶(hù)可以看到作為入口到本次請求結束所涉及的完整調用鏈,同時(shí)問(wèn)題診斷會(huì )為調用鏈生成對應的應用拓撲視圖,讓用戶(hù)清晰的看到應用之間的調用關(guān)系。
對于異常的接口,我們可以在調用鏈中看到相應的錯誤原因。同時(shí),用戶(hù)可以根據具體的錯誤堆棧對服務(wù)端問(wèn)題進(jìn)行排查和優(yōu)化。壓測過(guò)程中,用戶(hù)可以實(shí)時(shí)查看指定請求的調用鏈。同時(shí),壓測結束后,還可以從壓測報告中追溯問(wèn)題。
核心優(yōu)勢
1. 零代碼入侵:對于Java類(lèi)業(yè)務(wù),用戶(hù)側無(wú)需修改業(yè)務(wù)側代碼即可完成問(wèn)題診斷的探針接入。
2、集成度高:壓測、監控、問(wèn)題診斷集成在同一個(gè)控制臺,用戶(hù)理解和操作成本較低。
3、監控指標全面:壓測過(guò)程中,除了比較基礎的監控指標外,還針對各個(gè)服務(wù)提供了接口、機器、應用層面的監控。
4、門(mén)檻低:只需要簡(jiǎn)單的配置參數即可完成問(wèn)題診斷探針的接入。同時(shí),探針還具備多協(xié)議mock、全鏈路壓力測試等功能。
快速玩轉問(wèn)題診斷
接入問(wèn)題診斷的基本流程如下:

訪(fǎng)問(wèn)探針,查看是否訪(fǎng)問(wèn)成功
首先,我們對壓力場(chǎng)景涉及的應用進(jìn)行梳理,將所有涉及的應用按照【問(wèn)題診斷】->【探針接入[1]]文檔中的步驟接入問(wèn)題診斷探針。我們可以在PTS控制臺中選擇應用配置或應用監控、接口監控、機器監控中的一項來(lái)查看應用探針是否連接成功。我們這次演示的壓測場(chǎng)景涉及五個(gè)應用,分別是petstore-web、petstore-user、petstore-order、petstore-catalog、petstore-cart。這里以應用監控為例,檢查應用是否連接成功。點(diǎn)擊【問(wèn)題診斷】->【應用監控[2]]->依次選擇我們在PTS控制臺配置的Region和Namespace。
壓測場(chǎng)景開(kāi)啟問(wèn)題診斷開(kāi)關(guān)
然后,我們在PTS控制臺的【壓測中心】->【創(chuàng )建場(chǎng)景【3】】創(chuàng )建一個(gè)壓測場(chǎng)景。這里可以選擇PTS場(chǎng)景或者JMeter場(chǎng)景。這里我們以PTS場(chǎng)景為例,因為本次演示主要是驗證問(wèn)題診斷的能力,所以需要在場(chǎng)景配置中的【高級設置】中打開(kāi)問(wèn)題診斷開(kāi)關(guān)。對于具體的監控采集規則,PTS會(huì )將默認采集開(kāi)關(guān)的配置推送給用戶(hù)。同時(shí)采樣率設置為1/1000,用戶(hù)也可以根據自己的需要進(jìn)行自定義。
開(kāi)始壓測,查看應用監控
完成以上步驟后,我們的壓測場(chǎng)景就具備了診斷問(wèn)題的能力。我們點(diǎn)擊開(kāi)始壓測后,可以在應用監控、接口監控、機器監控中選擇我們關(guān)心的服務(wù),查看相應的監控情況。這里我們以應用監控[2]為例。其他類(lèi)型監控的操作步驟類(lèi)似。我們選擇 petstore-user 這個(gè)服務(wù)來(lái)查看應用監控,如下圖:
壓測結束后,查看整個(gè)場(chǎng)景的錯誤信息
壓測結束后,我們需要從壓測報告中排查受壓服務(wù)器的問(wèn)題,打開(kāi)對應場(chǎng)景的壓測報告。具體步驟為:PTS控制臺->【壓測中心】->【報告列表[4]】,選擇對應的壓測報告,在概覽頁(yè)面可以看到整個(gè)場(chǎng)景的信息,如圖下圖:
選擇探針采樣查看具體的調用鏈
點(diǎn)擊【查看采樣日志】,采樣類(lèi)型選擇“探針采樣”,過(guò)濾出問(wèn)題診斷探針采集到的調用鏈,如下圖:

查看調用鏈的具體錯誤堆棧信息定位服務(wù)端問(wèn)題
過(guò)濾掉探針端采集
到的調用鏈后,就可以分析出問(wèn)題接口的調用鏈了。例如商品列表接口返回的狀態(tài)碼為500,點(diǎn)擊查看詳情可以查看具體原因,如下圖:
從調用??梢钥闯鼍唧w的錯誤原因,從而優(yōu)化和修復服務(wù)端代碼。同時(shí),您可以通過(guò)應用拓撲視圖和數據庫視圖查看服務(wù)之間的調用和數據庫使用情況。這里以應用拓撲視圖為例,如下圖所示:
壓測報告常見(jiàn)錯誤碼匯總 問(wèn)題診斷錯誤碼匯總
問(wèn)題診斷調用環(huán)節中常見(jiàn)的錯誤碼總結如下:
壓測報告錯誤碼匯總
以下是壓力測試報告中的常見(jiàn)錯誤列表。我們可以從整個(gè)場(chǎng)景的錯誤信息中看到相關(guān)的錯誤信息,如下:
相關(guān)鏈接
[1] 探測訪(fǎng)問(wèn)
[2] 應用監控
[3] 創(chuàng )建場(chǎng)景
[4] 報告清單
????