文章采集調用
優(yōu)化的解決方案:Sleuth+zipkin, 鏈路追蹤SpringCloud微服務(wù)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-10-07 19:08
為了實(shí)現請求鏈路跟蹤,當一個(gè)請求被發(fā)送到分布式系統的入口時(shí),只需要在服務(wù)跟蹤框架中為該請求創(chuàng )建一個(gè)唯一的跟蹤標識,并保證該標識在分布式系統內循環(huán)直到請求返回。標識為traceId,通過(guò)它可以串聯(lián)不同服務(wù)調用的日志??傊?,在整個(gè) Http 調用(FeignClient 或 RestTemplate)中,我們可以識別出一條 TraceId 記錄,并在 Http Request 過(guò)程中,將 TraceID 傳遞給提供服務(wù)的服務(wù)器,而提供服務(wù)的服務(wù)器在 Reuqest 中同理,將整個(gè) TraceId 傳遞給他的服務(wù)提供者,這樣整個(gè)自上而下的調用鏈路都具有相同的 TraceId,每個(gè)鏈路中服務(wù)的日志通過(guò) TraceId 進(jìn)行分組。并且,這樣就得到了一個(gè)不同TraceId的調用鏈路,這就是鏈路跟蹤的主要原理。還有一個(gè)國產(chǎn)產(chǎn)品,Skywalking,已經(jīng)成為Apache的頂級開(kāi)源項目。具體實(shí)現與Sleuth不同,但使用的原理是一樣的。
MDC(映射診斷上下文)
通過(guò)上面的方法,我們就有了鏈路跟蹤的實(shí)現方法。MDC((映射的診斷上下文))轉換為映射的診斷上下文。含義:在日志(映射)的請求ID(requestId)中,可以作為關(guān)鍵字(context)供我們定位(診斷)問(wèn)題。這不是一個(gè)新產(chǎn)品。MDC類(lèi)的基本原理其實(shí)很簡(jiǎn)單。它在內部擁有一個(gè) ThreadLocal 實(shí)例以保存上下文數據。MDC提供了put/get/clear等幾個(gè)核心接口,用于在Data中操作ThreadLocal;ThreadLocal中的KV可以在logback.xml中聲明,即通過(guò)在layout中聲明%X{Key},在日志中打印MDC中保存的這個(gè)key對應的值。MDC的具體信息可以單獨去百度的文章關(guān)于MDC,Http鏈接跟蹤traceId是一個(gè)標識符,即,
偵探
sleuth 在 SpringCloud 分布式系統中提供了跟蹤解決方案。通過(guò)Sleuth可以記錄鏈接跟蹤的相關(guān)信息,并將相關(guān)鏈接調用信息發(fā)送到指定的統計終端和顯示終端,如Zipkin
Spring Cloud Sleuth關(guān)鍵詞(基于 Google Dapper)
齊金
Zipkin 是 Twitter 的一個(gè)開(kāi)源項目,基于 Google Dapper??捎糜诓杉鞣?wù)器上請求鏈接的trace數據,并通過(guò)其提供的REST API接口輔助我們查詢(xún)trace數據,實(shí)現分布式系統的監控程序,及時(shí)發(fā)現增量分析系統延遲問(wèn)題并找出系統性能瓶頸的根源。除了面向開(kāi)發(fā)的API接口外,還提供了便捷的UI組件,幫助我們直觀(guān)地搜索跟蹤信息,分析請求鏈接詳情,例如查詢(xún)某段時(shí)間內每個(gè)用戶(hù)請求的處理時(shí)間。
簡(jiǎn)而言之,Zipkin采集 sleuth sleuth 在客戶(hù)端并提供了一個(gè)可視化的界面進(jìn)行查詢(xún)展示。
Docker 啟動(dòng) Zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
訪(fǎng)問(wèn) Zipkin 的圖形頁(yè)面
點(diǎn)擊一個(gè)請求后,你會(huì )看到詳細的調用鏈請求信息:
SpringCloud 使用 Sleuth
在 SpringCloud 項目中使用 Sleuth 進(jìn)行鏈接跟蹤非常方便。您只需要將 Sleuth 的 Starter 映射到項目中。如果需要將 Sleuth 的 采集 鏈接跟蹤的信息推送到 Zipkin,那么引入 Zipkin 的 Starter。并配置Zipkin Server的服務(wù)地址。
引入相關(guān)依賴(lài)包并開(kāi)始
org.springframework.cloud
spring-cloud-sleuth-zipkin
org.springframework.cloud
spring-cloud-starter-sleuth
上面的 pom.xml 文件添加了對 Sleuth 的 starter 和 Zipkin 的支持。FeignClient 和 RestTemplate 會(huì )被 Sleuth 記錄在 SpringCloud 的微服務(wù)的 Restful 調用中,并發(fā)送到 Zipkin 的服務(wù)地址。
配置Zipkin的服務(wù)地址
spring:
zipkin:
base-url: http://localhost:9411/
sender:
type: web
sleuth:
sampler:
#抽樣百分比,默認10%的數據發(fā)到zipkin,1為100%
probability: 1
通過(guò)以上方法,在我們的SpringCloud微服務(wù)云系統中,我們的每一個(gè)微服務(wù)云服務(wù)調用都會(huì )進(jìn)入調用trace的trace范圍,然后通過(guò)Zipkin提供的圖形展示工具,可以一目了然的知道鏈接追蹤我們每一次服務(wù)調用的情況,通過(guò)鏈路跟蹤解決方案,當整個(gè)請求變慢或者不可用的時(shí)候,我們可以知道這個(gè)請求是由一個(gè)或者一些后端服務(wù)引起的 是的,快讀定位服務(wù)故障點(diǎn)并規定對的藥。
使用MQ推送信息
通過(guò)上述方法,每個(gè)微服務(wù)的調用跟蹤都會(huì )向 Zipkin Server 發(fā)送一個(gè) Http 請求。當內網(wǎng)阻塞時(shí),可能會(huì )導致主要業(yè)務(wù)調用的阻塞,從而導致更嚴重的后果,所以這個(gè)時(shí)候我們可以考慮使用 Stream 或者使用 MQ 來(lái)異步處理來(lái)自 Sleuth 的請求;
我們的 SpringCloud 微服務(wù)器只需要引入一個(gè)支持 Stream 和 MQ 的 starter
org.springframework.cloud
spring-cloud-sleuth-zipkin-stream
org.springframework.cloud
spring-cloud-starter-stream-rabbit
org.springframework.cloud
spring-cloud-starter-sleuth
Zipkin Server 的配置也相應調整;
Zipkin 高級使用持久性
Zipkin默認將Sleuth的日志信息保存在內存中,所以每次重啟Zipkin都會(huì )丟失之前的日志信息。您可以修改 Zipkin 的配置以允許 Zipkin Server 將所有日志持久化到數據庫中。關(guān)于持久化以及 Zipkin 支持 MQ 的方式,我們以后會(huì )介紹文章。
結束語(yǔ)
每次服務(wù)調用的鏈路跟蹤情況,通過(guò)鏈路跟蹤的解決方案,當整個(gè)請求變慢或不可用時(shí),我們可以知道該請求是由一個(gè)或部分后端服務(wù)引起的,快速閱讀定位服務(wù)故障點(diǎn)并規定對的藥。本文主要介紹通過(guò)Sleuth+Zipking實(shí)現SpringCloud的微服務(wù)云鏈路追蹤。文章中我們提到了Zipkin的MQ接收sleuth日志信息以及日志信息持久化的使用。我們以后會(huì )討論in文章,我們以后會(huì )在特別的文章中單獨介紹Skywalking。也希望大家繼續關(guān)注作者的每一個(gè)文章,關(guān)注作者,不要錯過(guò)精彩。
感謝您一直以來(lái)的關(guān)注。
干貨教程:wordpress網(wǎng)站搭建教程詳細-覆蓋SEO方案搭建
WordPress網(wǎng)站搭建教程詳解-涵蓋SEO方案搭建
搜索引擎優(yōu)化研究所
2022-03-08 19:43
搭建wordpress網(wǎng)站的詳細流程: 1. 購買(mǎi)域名 2. 購買(mǎi)云服務(wù)器 3. 申請備案 4. 域名解析 5. 安裝控制面板 6. 安裝Wordpress 7. 設置Wordpress
只需安裝此步驟即可獲得完整的 WordPress網(wǎng)站 設置。網(wǎng)站的構建是一項技術(shù)任務(wù),但是網(wǎng)站的構建完成后,并不代表以后就不需要管理了。網(wǎng)站的維護和優(yōu)化也很重要。而且不代表知道代碼就可以隨意構建網(wǎng)站。很多人對網(wǎng)站的構建知之甚少,構建的網(wǎng)站會(huì )被搜索引擎網(wǎng)站識別為垃圾郵件。如何優(yōu)化構造網(wǎng)站的結構?我們需要知道內容為王。網(wǎng)站的優(yōu)化分為很多不同的方面,包括網(wǎng)站結構的優(yōu)化,內部鏈接的優(yōu)化,
打開(kāi)網(wǎng)易新聞查看精彩圖片
一、頁(yè)面導航的優(yōu)化
每個(gè)網(wǎng)站都需要設置一個(gè)導航,就是讓用戶(hù)可以方便快捷的找到自己想要訪(fǎng)問(wèn)的頁(yè)面和內容。如果你把網(wǎng)站的頁(yè)面設置的很復雜,即使很炫,別人也找不到自己要找的,那么你建的網(wǎng)站就是失敗網(wǎng)站,因為用戶(hù)感覺(jué)不好,下次不會(huì )再瀏覽這個(gè)頁(yè)面了。因為現在互聯(lián)網(wǎng)發(fā)展非常迅速,沒(méi)有人會(huì )非常耐心地在一個(gè)頁(yè)面上瀏覽和搜索。如果找不到你的網(wǎng)站,他會(huì )立即關(guān)閉頁(yè)面,進(jìn)入別人的網(wǎng)站,尋找自己想要的。. 所以導航的設置不能太深,這樣會(huì )迷路,也會(huì )流失很多客戶(hù)。
二、頁(yè)面結構的概括
頁(yè)面結構的概括,簡(jiǎn)單來(lái)說(shuō)就是頁(yè)面應該滿(mǎn)足大部分用戶(hù)的訪(fǎng)問(wèn)需求。我們在構建網(wǎng)站時(shí),需要從不同的角度考慮用戶(hù)訪(fǎng)問(wèn)頁(yè)面時(shí)的需求和目標。在此基礎上,我們在考慮網(wǎng)站是否漂亮,給用戶(hù)留下什么樣的印象?,是否會(huì )讓用戶(hù)想再次訪(fǎng)問(wèn),尤其是對于一些團購網(wǎng)站,更要注意網(wǎng)站內頁(yè)的優(yōu)化。
三、內鏈結構的優(yōu)勢
內鏈的作用是讓整個(gè)網(wǎng)站的內容連貫起來(lái)。其實(shí)做內鏈很簡(jiǎn)單。不要將所有鏈接都指向主頁(yè)或某個(gè)頁(yè)面。應該是在不同的頁(yè)面上添加不同的內部鏈接,這樣可以引導用戶(hù)進(jìn)入相關(guān)的網(wǎng)頁(yè),了解更多的內容。而內鏈的合理優(yōu)化對提升網(wǎng)站的權重有很大的作用。
4. 網(wǎng)站快速收錄
打開(kāi)網(wǎng)易新聞查看精彩圖片
網(wǎng)站 更新得越頻繁,搜索引擎蜘蛛就會(huì )越頻繁地出現。因此,我們可以使用wordpress采集實(shí)現采集偽原創(chuàng )自動(dòng)發(fā)布和主動(dòng)推送到搜索引擎,提高搜索引擎的抓取頻率,從而提高網(wǎng)站收錄 和 關(guān)鍵詞 排名。
1. 免費的wordpress插件
免費的 wordpress采集 插件功能:
1、只需將關(guān)鍵詞導入到采集相關(guān)的關(guān)鍵詞文章,同時(shí)創(chuàng )建幾十個(gè)或幾百個(gè)采集任務(wù)(一個(gè)任務(wù)可以支持上傳1000個(gè)) 關(guān)鍵詞),支持過(guò)濾關(guān)鍵詞。
2. 支持多消息源:?jiǎn)?wèn)答和各種消息源(可同時(shí)設置多個(gè)采集消息源采集/采集消息源稍后添加)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3.過(guò)濾其他促銷(xiāo)信息
4. 圖片定位/圖片水印/圖片第三方存儲
5.文章互通+翻譯(簡(jiǎn)體中文繁體翻譯+百度翻譯+有道翻譯+谷歌翻譯+147翻譯)
6.自動(dòng)批量掛機采集,與各大cms發(fā)布者無(wú)縫對接,采集后自動(dòng)發(fā)布——實(shí)現采集發(fā)布全自動(dòng)掛機。
2.跨平臺發(fā)布插件
全平臺cms發(fā)布者的特點(diǎn):
1、cms發(fā)布:目前市面上唯一支持Empirecms、易友、ZBLOG、dedecms、WordPress、PBoot、Applecms、迅銳cms、PHPcms、Applecms、人人網(wǎng)cms、美圖cms、云游cms、Cyclone站群、THINKCMF、建站ABC 、凡客cms、一騎cms、Oceancms、飛飛cms、Local Release、搜外等各大cms,以及一個(gè)工具可同時(shí)管理和批量發(fā)布
2.全網(wǎng)推送(百度/360/搜狗/神馬)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3. 偽原創(chuàng )(標題+內容)
4.更換圖片,防止侵權
5. 強大的SEO功能(自動(dòng)圖片放置/插入內外鏈接/標題和文章前后插入內容/標題關(guān)鍵詞與內容一致關(guān)鍵詞/隨機插入圖片/添加隨機屬性的頁(yè)面原創(chuàng )degree)
6.對應欄目:對應文章可以發(fā)布對應欄目/支持多欄目發(fā)布
7、定時(shí)發(fā)布:可控發(fā)布間隔/每天發(fā)布總數
8、監控數據:直接監控已經(jīng)發(fā)布、待發(fā)布的軟件,是否為偽原創(chuàng )、發(fā)布狀態(tài)、網(wǎng)站、程序、發(fā)布時(shí)間等。
打開(kāi)網(wǎng)易新聞查看精彩圖片
在網(wǎng)站的構建之初,需要布局大量的seo元素。一個(gè)好的公司網(wǎng)站應該有seo相關(guān)的元素,可以幫助后續的優(yōu)化。網(wǎng)站 基礎越強,后期工作量越小。
1.企業(yè)網(wǎng)站優(yōu)化:URL唯一性
確定網(wǎng)站的主題內容后,應該以網(wǎng)頁(yè)的形式呈現給用戶(hù)。一個(gè)網(wǎng)頁(yè)對應一個(gè)唯一的URL地址,無(wú)論你的網(wǎng)站是重新設計開(kāi)發(fā)的,還是開(kāi)源程序構建的,在新的網(wǎng)站上線(xiàn)之前,都必須保證每一個(gè)的唯一性網(wǎng)站 中的頁(yè)面 URL 地址,它是 seo 元素之一。
2.企業(yè)網(wǎng)站優(yōu)化:明確主題,聚合資源
任何 網(wǎng)站 都需要有目的地構建。網(wǎng)站建設之初,就已經(jīng)建立了競爭對手分析、差異化內容定位和用戶(hù)定位,所以整個(gè)網(wǎng)站的內容體系建設只需要圍繞這個(gè)確定的主題進(jìn)行。
主題明確網(wǎng)站的公司主要有以下好處:
1、主題明確,更容易宣傳自己的優(yōu)勢資源,強調一個(gè)領(lǐng)域的權威;
2、網(wǎng)站內容方向不變,可以聚集優(yōu)質(zhì)粉絲群。粉絲的交流能量這里不用我多寫(xiě)了;
3、對于搜索引擎來(lái)說(shuō),隨著(zhù)語(yǔ)義分析能力的增強,前期有明確的網(wǎng)站主題更容易獲得搜索引擎的信任。對于一個(gè)新站點(diǎn),索引時(shí)間可以縮短,即使是一個(gè)很小的影響因子,你沒(méi)有理由不實(shí)施。
3.企業(yè)網(wǎng)站優(yōu)化:內部鏈結構規劃
當一個(gè)新的 網(wǎng)站 啟動(dòng)時(shí),頁(yè)面的數量并不大。從網(wǎng)站的構建開(kāi)始,就必須規劃好網(wǎng)站的內部鏈結構。至于構建合理的內部鏈結構,網(wǎng)絡(luò )將有足夠多的相關(guān)文章策略。這里要強調的是,前期規劃好內鏈布局,對網(wǎng)站的擴展性和蜘蛛的爬取效率有很大幫助,尤其是對于一個(gè)新的網(wǎng)站,一個(gè)合理的內鏈結構可以大大減少網(wǎng)站頁(yè)面的收錄時(shí)間。
4.企業(yè)網(wǎng)站優(yōu)化:目錄結構標準設計
雖然說(shuō)搜索引擎可以很輕松的抓取動(dòng)態(tài)鏈接地址,但畢竟官方規范中的靜態(tài)URL地址對搜索引擎比較友好,所以SEO從業(yè)者在構建之初就應該注意網(wǎng)站 .網(wǎng)站的目錄結構(URL結構)統一標準化,讓開(kāi)發(fā)者可以在網(wǎng)站上線(xiàn)前以對搜索引擎最有利的方式部署網(wǎng)站,這是其中之一seo 元素。
5.企業(yè)版網(wǎng)站優(yōu)化:404頁(yè)
站點(diǎn)中不存在或將不存在的所有頁(yè)面都必須指向該頁(yè)面。404頁(yè)面的設置是搜索引擎友好的一種形式,所以在構建之初必須考慮到網(wǎng)站。是seo的要素之一。
打開(kāi)網(wǎng)易新聞查看精彩圖片
6.企業(yè)網(wǎng)站優(yōu)化:網(wǎng)站地圖
網(wǎng)站地圖,顧名思義,主要是將網(wǎng)站的主要頁(yè)面直接呈現給搜索引擎,讓搜索引擎通過(guò)這張地圖了解網(wǎng)站的頁(yè)面關(guān)系。網(wǎng)站地圖以 XML 格式和 HTML 格式提供。無(wú)論采用哪種形式,前期最好使用其中一種形式進(jìn)行布局。 查看全部
優(yōu)化的解決方案:Sleuth+zipkin, 鏈路追蹤SpringCloud微服務(wù)
為了實(shí)現請求鏈路跟蹤,當一個(gè)請求被發(fā)送到分布式系統的入口時(shí),只需要在服務(wù)跟蹤框架中為該請求創(chuàng )建一個(gè)唯一的跟蹤標識,并保證該標識在分布式系統內循環(huán)直到請求返回。標識為traceId,通過(guò)它可以串聯(lián)不同服務(wù)調用的日志??傊?,在整個(gè) Http 調用(FeignClient 或 RestTemplate)中,我們可以識別出一條 TraceId 記錄,并在 Http Request 過(guò)程中,將 TraceID 傳遞給提供服務(wù)的服務(wù)器,而提供服務(wù)的服務(wù)器在 Reuqest 中同理,將整個(gè) TraceId 傳遞給他的服務(wù)提供者,這樣整個(gè)自上而下的調用鏈路都具有相同的 TraceId,每個(gè)鏈路中服務(wù)的日志通過(guò) TraceId 進(jìn)行分組。并且,這樣就得到了一個(gè)不同TraceId的調用鏈路,這就是鏈路跟蹤的主要原理。還有一個(gè)國產(chǎn)產(chǎn)品,Skywalking,已經(jīng)成為Apache的頂級開(kāi)源項目。具體實(shí)現與Sleuth不同,但使用的原理是一樣的。
MDC(映射診斷上下文)
通過(guò)上面的方法,我們就有了鏈路跟蹤的實(shí)現方法。MDC((映射的診斷上下文))轉換為映射的診斷上下文。含義:在日志(映射)的請求ID(requestId)中,可以作為關(guān)鍵字(context)供我們定位(診斷)問(wèn)題。這不是一個(gè)新產(chǎn)品。MDC類(lèi)的基本原理其實(shí)很簡(jiǎn)單。它在內部擁有一個(gè) ThreadLocal 實(shí)例以保存上下文數據。MDC提供了put/get/clear等幾個(gè)核心接口,用于在Data中操作ThreadLocal;ThreadLocal中的KV可以在logback.xml中聲明,即通過(guò)在layout中聲明%X{Key},在日志中打印MDC中保存的這個(gè)key對應的值。MDC的具體信息可以單獨去百度的文章關(guān)于MDC,Http鏈接跟蹤traceId是一個(gè)標識符,即,
偵探
sleuth 在 SpringCloud 分布式系統中提供了跟蹤解決方案。通過(guò)Sleuth可以記錄鏈接跟蹤的相關(guān)信息,并將相關(guān)鏈接調用信息發(fā)送到指定的統計終端和顯示終端,如Zipkin
Spring Cloud Sleuth關(guān)鍵詞(基于 Google Dapper)
齊金
Zipkin 是 Twitter 的一個(gè)開(kāi)源項目,基于 Google Dapper??捎糜?a href="http://www.hqbet6457.com/" target="_blank">采集各服務(wù)器上請求鏈接的trace數據,并通過(guò)其提供的REST API接口輔助我們查詢(xún)trace數據,實(shí)現分布式系統的監控程序,及時(shí)發(fā)現增量分析系統延遲問(wèn)題并找出系統性能瓶頸的根源。除了面向開(kāi)發(fā)的API接口外,還提供了便捷的UI組件,幫助我們直觀(guān)地搜索跟蹤信息,分析請求鏈接詳情,例如查詢(xún)某段時(shí)間內每個(gè)用戶(hù)請求的處理時(shí)間。
簡(jiǎn)而言之,Zipkin采集 sleuth sleuth 在客戶(hù)端并提供了一個(gè)可視化的界面進(jìn)行查詢(xún)展示。
Docker 啟動(dòng) Zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
訪(fǎng)問(wèn) Zipkin 的圖形頁(yè)面
點(diǎn)擊一個(gè)請求后,你會(huì )看到詳細的調用鏈請求信息:
SpringCloud 使用 Sleuth
在 SpringCloud 項目中使用 Sleuth 進(jìn)行鏈接跟蹤非常方便。您只需要將 Sleuth 的 Starter 映射到項目中。如果需要將 Sleuth 的 采集 鏈接跟蹤的信息推送到 Zipkin,那么引入 Zipkin 的 Starter。并配置Zipkin Server的服務(wù)地址。

引入相關(guān)依賴(lài)包并開(kāi)始
org.springframework.cloud
spring-cloud-sleuth-zipkin
org.springframework.cloud
spring-cloud-starter-sleuth
上面的 pom.xml 文件添加了對 Sleuth 的 starter 和 Zipkin 的支持。FeignClient 和 RestTemplate 會(huì )被 Sleuth 記錄在 SpringCloud 的微服務(wù)的 Restful 調用中,并發(fā)送到 Zipkin 的服務(wù)地址。
配置Zipkin的服務(wù)地址
spring:
zipkin:
base-url: http://localhost:9411/
sender:
type: web
sleuth:
sampler:
#抽樣百分比,默認10%的數據發(fā)到zipkin,1為100%
probability: 1
通過(guò)以上方法,在我們的SpringCloud微服務(wù)云系統中,我們的每一個(gè)微服務(wù)云服務(wù)調用都會(huì )進(jìn)入調用trace的trace范圍,然后通過(guò)Zipkin提供的圖形展示工具,可以一目了然的知道鏈接追蹤我們每一次服務(wù)調用的情況,通過(guò)鏈路跟蹤解決方案,當整個(gè)請求變慢或者不可用的時(shí)候,我們可以知道這個(gè)請求是由一個(gè)或者一些后端服務(wù)引起的 是的,快讀定位服務(wù)故障點(diǎn)并規定對的藥。
使用MQ推送信息

通過(guò)上述方法,每個(gè)微服務(wù)的調用跟蹤都會(huì )向 Zipkin Server 發(fā)送一個(gè) Http 請求。當內網(wǎng)阻塞時(shí),可能會(huì )導致主要業(yè)務(wù)調用的阻塞,從而導致更嚴重的后果,所以這個(gè)時(shí)候我們可以考慮使用 Stream 或者使用 MQ 來(lái)異步處理來(lái)自 Sleuth 的請求;
我們的 SpringCloud 微服務(wù)器只需要引入一個(gè)支持 Stream 和 MQ 的 starter
org.springframework.cloud
spring-cloud-sleuth-zipkin-stream
org.springframework.cloud
spring-cloud-starter-stream-rabbit
org.springframework.cloud
spring-cloud-starter-sleuth
Zipkin Server 的配置也相應調整;
Zipkin 高級使用持久性
Zipkin默認將Sleuth的日志信息保存在內存中,所以每次重啟Zipkin都會(huì )丟失之前的日志信息。您可以修改 Zipkin 的配置以允許 Zipkin Server 將所有日志持久化到數據庫中。關(guān)于持久化以及 Zipkin 支持 MQ 的方式,我們以后會(huì )介紹文章。
結束語(yǔ)
每次服務(wù)調用的鏈路跟蹤情況,通過(guò)鏈路跟蹤的解決方案,當整個(gè)請求變慢或不可用時(shí),我們可以知道該請求是由一個(gè)或部分后端服務(wù)引起的,快速閱讀定位服務(wù)故障點(diǎn)并規定對的藥。本文主要介紹通過(guò)Sleuth+Zipking實(shí)現SpringCloud的微服務(wù)云鏈路追蹤。文章中我們提到了Zipkin的MQ接收sleuth日志信息以及日志信息持久化的使用。我們以后會(huì )討論in文章,我們以后會(huì )在特別的文章中單獨介紹Skywalking。也希望大家繼續關(guān)注作者的每一個(gè)文章,關(guān)注作者,不要錯過(guò)精彩。
感謝您一直以來(lái)的關(guān)注。
干貨教程:wordpress網(wǎng)站搭建教程詳細-覆蓋SEO方案搭建
WordPress網(wǎng)站搭建教程詳解-涵蓋SEO方案搭建
搜索引擎優(yōu)化研究所
2022-03-08 19:43
搭建wordpress網(wǎng)站的詳細流程: 1. 購買(mǎi)域名 2. 購買(mǎi)云服務(wù)器 3. 申請備案 4. 域名解析 5. 安裝控制面板 6. 安裝Wordpress 7. 設置Wordpress
只需安裝此步驟即可獲得完整的 WordPress網(wǎng)站 設置。網(wǎng)站的構建是一項技術(shù)任務(wù),但是網(wǎng)站的構建完成后,并不代表以后就不需要管理了。網(wǎng)站的維護和優(yōu)化也很重要。而且不代表知道代碼就可以隨意構建網(wǎng)站。很多人對網(wǎng)站的構建知之甚少,構建的網(wǎng)站會(huì )被搜索引擎網(wǎng)站識別為垃圾郵件。如何優(yōu)化構造網(wǎng)站的結構?我們需要知道內容為王。網(wǎng)站的優(yōu)化分為很多不同的方面,包括網(wǎng)站結構的優(yōu)化,內部鏈接的優(yōu)化,
打開(kāi)網(wǎng)易新聞查看精彩圖片
一、頁(yè)面導航的優(yōu)化
每個(gè)網(wǎng)站都需要設置一個(gè)導航,就是讓用戶(hù)可以方便快捷的找到自己想要訪(fǎng)問(wèn)的頁(yè)面和內容。如果你把網(wǎng)站的頁(yè)面設置的很復雜,即使很炫,別人也找不到自己要找的,那么你建的網(wǎng)站就是失敗網(wǎng)站,因為用戶(hù)感覺(jué)不好,下次不會(huì )再瀏覽這個(gè)頁(yè)面了。因為現在互聯(lián)網(wǎng)發(fā)展非常迅速,沒(méi)有人會(huì )非常耐心地在一個(gè)頁(yè)面上瀏覽和搜索。如果找不到你的網(wǎng)站,他會(huì )立即關(guān)閉頁(yè)面,進(jìn)入別人的網(wǎng)站,尋找自己想要的。. 所以導航的設置不能太深,這樣會(huì )迷路,也會(huì )流失很多客戶(hù)。
二、頁(yè)面結構的概括
頁(yè)面結構的概括,簡(jiǎn)單來(lái)說(shuō)就是頁(yè)面應該滿(mǎn)足大部分用戶(hù)的訪(fǎng)問(wèn)需求。我們在構建網(wǎng)站時(shí),需要從不同的角度考慮用戶(hù)訪(fǎng)問(wèn)頁(yè)面時(shí)的需求和目標。在此基礎上,我們在考慮網(wǎng)站是否漂亮,給用戶(hù)留下什么樣的印象?,是否會(huì )讓用戶(hù)想再次訪(fǎng)問(wèn),尤其是對于一些團購網(wǎng)站,更要注意網(wǎng)站內頁(yè)的優(yōu)化。
三、內鏈結構的優(yōu)勢
內鏈的作用是讓整個(gè)網(wǎng)站的內容連貫起來(lái)。其實(shí)做內鏈很簡(jiǎn)單。不要將所有鏈接都指向主頁(yè)或某個(gè)頁(yè)面。應該是在不同的頁(yè)面上添加不同的內部鏈接,這樣可以引導用戶(hù)進(jìn)入相關(guān)的網(wǎng)頁(yè),了解更多的內容。而內鏈的合理優(yōu)化對提升網(wǎng)站的權重有很大的作用。
4. 網(wǎng)站快速收錄
打開(kāi)網(wǎng)易新聞查看精彩圖片
網(wǎng)站 更新得越頻繁,搜索引擎蜘蛛就會(huì )越頻繁地出現。因此,我們可以使用wordpress采集實(shí)現采集偽原創(chuàng )自動(dòng)發(fā)布和主動(dòng)推送到搜索引擎,提高搜索引擎的抓取頻率,從而提高網(wǎng)站收錄 和 關(guān)鍵詞 排名。
1. 免費的wordpress插件
免費的 wordpress采集 插件功能:

1、只需將關(guān)鍵詞導入到采集相關(guān)的關(guān)鍵詞文章,同時(shí)創(chuàng )建幾十個(gè)或幾百個(gè)采集任務(wù)(一個(gè)任務(wù)可以支持上傳1000個(gè)) 關(guān)鍵詞),支持過(guò)濾關(guān)鍵詞。
2. 支持多消息源:?jiǎn)?wèn)答和各種消息源(可同時(shí)設置多個(gè)采集消息源采集/采集消息源稍后添加)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3.過(guò)濾其他促銷(xiāo)信息
4. 圖片定位/圖片水印/圖片第三方存儲
5.文章互通+翻譯(簡(jiǎn)體中文繁體翻譯+百度翻譯+有道翻譯+谷歌翻譯+147翻譯)
6.自動(dòng)批量掛機采集,與各大cms發(fā)布者無(wú)縫對接,采集后自動(dòng)發(fā)布——實(shí)現采集發(fā)布全自動(dòng)掛機。
2.跨平臺發(fā)布插件
全平臺cms發(fā)布者的特點(diǎn):
1、cms發(fā)布:目前市面上唯一支持Empirecms、易友、ZBLOG、dedecms、WordPress、PBoot、Applecms、迅銳cms、PHPcms、Applecms、人人網(wǎng)cms、美圖cms、云游cms、Cyclone站群、THINKCMF、建站ABC 、凡客cms、一騎cms、Oceancms、飛飛cms、Local Release、搜外等各大cms,以及一個(gè)工具可同時(shí)管理和批量發(fā)布
2.全網(wǎng)推送(百度/360/搜狗/神馬)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3. 偽原創(chuàng )(標題+內容)
4.更換圖片,防止侵權
5. 強大的SEO功能(自動(dòng)圖片放置/插入內外鏈接/標題和文章前后插入內容/標題關(guān)鍵詞與內容一致關(guān)鍵詞/隨機插入圖片/添加隨機屬性的頁(yè)面原創(chuàng )degree)
6.對應欄目:對應文章可以發(fā)布對應欄目/支持多欄目發(fā)布
7、定時(shí)發(fā)布:可控發(fā)布間隔/每天發(fā)布總數
8、監控數據:直接監控已經(jīng)發(fā)布、待發(fā)布的軟件,是否為偽原創(chuàng )、發(fā)布狀態(tài)、網(wǎng)站、程序、發(fā)布時(shí)間等。

打開(kāi)網(wǎng)易新聞查看精彩圖片
在網(wǎng)站的構建之初,需要布局大量的seo元素。一個(gè)好的公司網(wǎng)站應該有seo相關(guān)的元素,可以幫助后續的優(yōu)化。網(wǎng)站 基礎越強,后期工作量越小。
1.企業(yè)網(wǎng)站優(yōu)化:URL唯一性
確定網(wǎng)站的主題內容后,應該以網(wǎng)頁(yè)的形式呈現給用戶(hù)。一個(gè)網(wǎng)頁(yè)對應一個(gè)唯一的URL地址,無(wú)論你的網(wǎng)站是重新設計開(kāi)發(fā)的,還是開(kāi)源程序構建的,在新的網(wǎng)站上線(xiàn)之前,都必須保證每一個(gè)的唯一性網(wǎng)站 中的頁(yè)面 URL 地址,它是 seo 元素之一。
2.企業(yè)網(wǎng)站優(yōu)化:明確主題,聚合資源
任何 網(wǎng)站 都需要有目的地構建。網(wǎng)站建設之初,就已經(jīng)建立了競爭對手分析、差異化內容定位和用戶(hù)定位,所以整個(gè)網(wǎng)站的內容體系建設只需要圍繞這個(gè)確定的主題進(jìn)行。
主題明確網(wǎng)站的公司主要有以下好處:
1、主題明確,更容易宣傳自己的優(yōu)勢資源,強調一個(gè)領(lǐng)域的權威;
2、網(wǎng)站內容方向不變,可以聚集優(yōu)質(zhì)粉絲群。粉絲的交流能量這里不用我多寫(xiě)了;
3、對于搜索引擎來(lái)說(shuō),隨著(zhù)語(yǔ)義分析能力的增強,前期有明確的網(wǎng)站主題更容易獲得搜索引擎的信任。對于一個(gè)新站點(diǎn),索引時(shí)間可以縮短,即使是一個(gè)很小的影響因子,你沒(méi)有理由不實(shí)施。
3.企業(yè)網(wǎng)站優(yōu)化:內部鏈結構規劃
當一個(gè)新的 網(wǎng)站 啟動(dòng)時(shí),頁(yè)面的數量并不大。從網(wǎng)站的構建開(kāi)始,就必須規劃好網(wǎng)站的內部鏈結構。至于構建合理的內部鏈結構,網(wǎng)絡(luò )將有足夠多的相關(guān)文章策略。這里要強調的是,前期規劃好內鏈布局,對網(wǎng)站的擴展性和蜘蛛的爬取效率有很大幫助,尤其是對于一個(gè)新的網(wǎng)站,一個(gè)合理的內鏈結構可以大大減少網(wǎng)站頁(yè)面的收錄時(shí)間。
4.企業(yè)網(wǎng)站優(yōu)化:目錄結構標準設計
雖然說(shuō)搜索引擎可以很輕松的抓取動(dòng)態(tài)鏈接地址,但畢竟官方規范中的靜態(tài)URL地址對搜索引擎比較友好,所以SEO從業(yè)者在構建之初就應該注意網(wǎng)站 .網(wǎng)站的目錄結構(URL結構)統一標準化,讓開(kāi)發(fā)者可以在網(wǎng)站上線(xiàn)前以對搜索引擎最有利的方式部署網(wǎng)站,這是其中之一seo 元素。
5.企業(yè)版網(wǎng)站優(yōu)化:404頁(yè)
站點(diǎn)中不存在或將不存在的所有頁(yè)面都必須指向該頁(yè)面。404頁(yè)面的設置是搜索引擎友好的一種形式,所以在構建之初必須考慮到網(wǎng)站。是seo的要素之一。
打開(kāi)網(wǎng)易新聞查看精彩圖片
6.企業(yè)網(wǎng)站優(yōu)化:網(wǎng)站地圖
網(wǎng)站地圖,顧名思義,主要是將網(wǎng)站的主要頁(yè)面直接呈現給搜索引擎,讓搜索引擎通過(guò)這張地圖了解網(wǎng)站的頁(yè)面關(guān)系。網(wǎng)站地圖以 XML 格式和 HTML 格式提供。無(wú)論采用哪種形式,前期最好使用其中一種形式進(jìn)行布局。
官方發(fā)布:(web端)抖音直播間彈幕消息獲取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 95 次瀏覽 ? 2022-10-06 08:27
效果演示:
只顯示消息json的內容字段
準備:
本文中的操作是在瀏覽器從跨域狀態(tài)釋放時(shí)進(jìn)行的,普通瀏覽器也可以使用。
做法:復制谷歌瀏覽器圖標,右鍵,在快捷方式后面添加如下瀏覽器參數
--disable-web-security --user-data-dir=D:\MyChromeDevUserData // 文件路徑自己創(chuàng )建
更多瀏覽器參數請參考谷歌官方文檔
開(kāi)始尋找參數
隨意開(kāi)個(gè)直播間,在控制臺可以看到,會(huì )有兩個(gè)請求和一堆加載的個(gè)性圖片
然后我們可以從這些加載的圖片的調用棧入手,然后再分析回來(lái)。至于為什么要從這些圖片開(kāi)始?? 因為這些個(gè)性化圖片的加載是伴隨著(zhù)彈幕消息的,按照前瞻思維,消息和圖片的鏈接一般會(huì )在一個(gè)普通的響應體中返回。
隨機選擇一張圖片,跟進(jìn)調用棧
跟著(zhù)F8幾次之后,你會(huì )發(fā)現這里會(huì )有新聞內容,有時(shí)還有其他用戶(hù)信息,這也驗證了我們之前的想法
這些顯示的消息就是解析后的內容,所以我們可以直接回到調用棧的開(kāi)頭,從那里尋找線(xiàn)索
這里可以看到他是一個(gè)setInterval定時(shí)器
向上滾動(dòng)可以看到key的名字是initialization
消息正文的處理順序
此時(shí),我們直接hook代碼
代碼中的變量a就是當前的this,這里放了一個(gè)斷點(diǎn)
再次執行以下代碼
window.__a__ = a
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
}
<p>
</p>
打印所有消息
此時(shí),使用RPC來(lái)共享消息
如果發(fā)現提示是跨域的,請回到文章開(kāi)頭的準備工作
window.__a__ = a
var xhr_ = new XMLHttpRequest(),
method = "POST",
url = "http://127.0.0.1:45678/port"; // 本地接收彈幕消息接口
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
xhr_.open(method, url, true);
xhr_.setRequestHeader("Content-type", "application/json");
xhr_.send(JSON.stringify(obj));
}
最新消息:【電池咨詢(xún)】8萬(wàn)人搶米家超級電池
奶盤(pán)偽原創(chuàng )()
SEO偽原創(chuàng )AI偽原創(chuàng )SEO檢測偽原創(chuàng )趙耀靜自媒體助手采集器自定義排名推廣開(kāi)放API
2020年6月12日更新: 1. AI偽原創(chuàng ) API上線(xiàn) 2. 調整部分文案 3. 增加系統詞匯 | 奶鍋偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請于2019年6月12日聯(lián)系客服更新內容: 1.AI偽原創(chuàng )API上線(xiàn) 2.調整部分文案3.添加系統詞匯 | 奶盤(pán)偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請聯(lián)系客服
百度智能云最新優(yōu)惠
▇三國志游戲域名低價(jià)出售▇
網(wǎng)站免更新程序定制開(kāi)發(fā)
龍紋三國志手游答題器
一對一教學(xué),月入兩萬(wàn)
無(wú)限內容美國專(zhuān)用服務(wù)器租用
專(zhuān)業(yè)的網(wǎng)站排名提升SEO優(yōu)化輔助軟件
【微信公眾號無(wú)限裂變產(chǎn)品尋求合作】
高防香港-CN2高速穩定VPS
【SEO快速排名點(diǎn)擊量低至0.01/次】
智能違章監控系統全新上線(xiàn)!為保障廣大正常使用付費用戶(hù)的權益,現對有以下行為的賬號進(jìn)行查封: 1、單人版VIP多人借用。2、VIP用于程序調用或其他非法使用第三方程序。3、其他非正常人類(lèi)使用行為。被扣賬戶(hù)費用不予退還,請知悉-----2019-12-08
奶盤(pán) SEO偽原創(chuàng )
系統版本:新版本:3.2.1205 有 收錄 70980 個(gè)同義詞 / 47320 個(gè)免費用戶(hù)使用 [提交構建 偽原創(chuàng ) 庫]
注:新版奶盤(pán)SEO偽原創(chuàng )使用獨有的分詞引擎和自創(chuàng )詞庫模擬百度等中文分詞對偽原創(chuàng ),生成的偽原創(chuàng )文章更新準確,更接近百度收錄等搜索引擎。共171個(gè)詞,16個(gè)詞由免費用戶(hù)隨機替換【VIP升級后可替換為36個(gè)詞】,0個(gè)詞將替換為自定義詞,偽原創(chuàng )模式標準偽原創(chuàng )100%
偽原創(chuàng ) 僅用于學(xué)習目的。由于免費用戶(hù)使用捏盤(pán)網(wǎng)為自媒體,捏盤(pán)網(wǎng)積極配合國家網(wǎng)信辦開(kāi)展專(zhuān)項整治活動(dòng),堅決遏制自媒體。自媒體混沌,堅決維護網(wǎng)絡(luò )正常交流秩序,努力營(yíng)造干凈、積極、健康、有序的網(wǎng)絡(luò )空間!偽原創(chuàng )度大大降低,現在免費用戶(hù)偽原創(chuàng )度降低到50%,自覺(jué)做好轉載出處,保護作者合法權益原作者!VIP用戶(hù)不受影響!
鏈接模式 1 關(guān)鍵字
網(wǎng)址
鏈接方式2 用戶(hù)未登錄,無(wú)法讀取用戶(hù)關(guān)鍵字鏈接!選擇此模式偽原創(chuàng )將沒(méi)有關(guān)鍵字添加鏈接!
源詞庫偽原創(chuàng )模式鏈接文本為粗體
插入自定義內容
Milk Tray偽原創(chuàng ) 不斷得到補充和改進(jìn)。如果您有好的意見(jiàn)、建議或問(wèn)題報告,請點(diǎn)擊用戶(hù)反饋讓我們知道,謝謝!
奶鍋SEO在線(xiàn)偽原創(chuàng )工具介紹
在線(xiàn)偽原創(chuàng )工具是一個(gè)SEOER實(shí)用工具,是生成原創(chuàng )和偽原創(chuàng )文章的工具。偽原創(chuàng ) 工具可用于復制 Internet 上的文件。文章立即成為你自己的原創(chuàng )文章。本系統的WEB程序是專(zhuān)為Google、百度、雅虎、SOSO等大型搜索引擎收錄設計的,在線(xiàn)偽原創(chuàng )工具生成的文章將更好的被用戶(hù)使用搜索引擎 收錄 并索引到。在線(xiàn)偽原創(chuàng )工具是網(wǎng)頁(yè)編輯、群發(fā)用戶(hù)和SEOER的必備工具,也是優(yōu)化工具中不可多得的利器。
“在線(xiàn)偽原創(chuàng )工具”具有以下優(yōu)點(diǎn):
1、本軟件采用引擎獨有的分析規則和算法分割文章,可以很好的匹配所有搜索引擎。
2.唯一的同義詞替換詞庫可以在不改變文章語(yǔ)義的情況下生成原創(chuàng )文章。
3.集成了當前主流詞庫,詞庫功能非常強大,程序不斷更新,無(wú)需安裝,無(wú)需升級,始終保持最新偽原創(chuàng )文章,完全免費。
4.添加關(guān)鍵字和鏈接,加粗關(guān)鍵字,文章底部添加版權等強大功能。
關(guān)于牛奶鍋seo偽原創(chuàng )| 聯(lián)系我們| 廣告服務(wù)| 版權聲明| 人才招聘| 更新歷史| API授權查詢(xún)| 奶鍋API| 幫助
Milk Pan seo偽原創(chuàng )是專(zhuān)門(mén)針對百度和谷歌的爬蟲(chóng)習慣和分詞算法開(kāi)發(fā)的。本軟件優(yōu)化的文章會(huì )更受搜索引擎的青睞。奶鍋seo偽原創(chuàng )是網(wǎng)絡(luò )寫(xiě)手、海量帖子用戶(hù)、SEO們不可多得的工具,也是網(wǎng)站推廣者必備的工具??蛻?hù)服務(wù)
客服郵箱:點(diǎn)擊在線(xiàn)咨詢(xún)
09:00 - 22:00 掃描
聯(lián)系我們QQ群1:118977038
QQ群2:346875251
鏈接:偽原創(chuàng )偽原創(chuàng )在線(xiàn)工具偽原創(chuàng )偽原創(chuàng )在線(xiàn) 查看全部
官方發(fā)布:(web端)抖音直播間彈幕消息獲取
效果演示:
只顯示消息json的內容字段
準備:
本文中的操作是在瀏覽器從跨域狀態(tài)釋放時(shí)進(jìn)行的,普通瀏覽器也可以使用。
做法:復制谷歌瀏覽器圖標,右鍵,在快捷方式后面添加如下瀏覽器參數
--disable-web-security --user-data-dir=D:\MyChromeDevUserData // 文件路徑自己創(chuàng )建
更多瀏覽器參數請參考谷歌官方文檔
開(kāi)始尋找參數
隨意開(kāi)個(gè)直播間,在控制臺可以看到,會(huì )有兩個(gè)請求和一堆加載的個(gè)性圖片
然后我們可以從這些加載的圖片的調用棧入手,然后再分析回來(lái)。至于為什么要從這些圖片開(kāi)始?? 因為這些個(gè)性化圖片的加載是伴隨著(zhù)彈幕消息的,按照前瞻思維,消息和圖片的鏈接一般會(huì )在一個(gè)普通的響應體中返回。
隨機選擇一張圖片,跟進(jìn)調用棧
跟著(zhù)F8幾次之后,你會(huì )發(fā)現這里會(huì )有新聞內容,有時(shí)還有其他用戶(hù)信息,這也驗證了我們之前的想法

這些顯示的消息就是解析后的內容,所以我們可以直接回到調用棧的開(kāi)頭,從那里尋找線(xiàn)索
這里可以看到他是一個(gè)setInterval定時(shí)器
向上滾動(dòng)可以看到key的名字是initialization
消息正文的處理順序
此時(shí),我們直接hook代碼
代碼中的變量a就是當前的this,這里放了一個(gè)斷點(diǎn)
再次執行以下代碼
window.__a__ = a
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
}
<p>

</p>
打印所有消息
此時(shí),使用RPC來(lái)共享消息
如果發(fā)現提示是跨域的,請回到文章開(kāi)頭的準備工作
window.__a__ = a
var xhr_ = new XMLHttpRequest(),
method = "POST",
url = "http://127.0.0.1:45678/port"; // 本地接收彈幕消息接口
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
xhr_.open(method, url, true);
xhr_.setRequestHeader("Content-type", "application/json");
xhr_.send(JSON.stringify(obj));
}
最新消息:【電池咨詢(xún)】8萬(wàn)人搶米家超級電池
奶盤(pán)偽原創(chuàng )()
SEO偽原創(chuàng )AI偽原創(chuàng )SEO檢測偽原創(chuàng )趙耀靜自媒體助手采集器自定義排名推廣開(kāi)放API
2020年6月12日更新: 1. AI偽原創(chuàng ) API上線(xiàn) 2. 調整部分文案 3. 增加系統詞匯 | 奶鍋偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請于2019年6月12日聯(lián)系客服更新內容: 1.AI偽原創(chuàng )API上線(xiàn) 2.調整部分文案3.添加系統詞匯 | 奶盤(pán)偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請聯(lián)系客服
百度智能云最新優(yōu)惠
▇三國志游戲域名低價(jià)出售▇
網(wǎng)站免更新程序定制開(kāi)發(fā)
龍紋三國志手游答題器
一對一教學(xué),月入兩萬(wàn)
無(wú)限內容美國專(zhuān)用服務(wù)器租用
專(zhuān)業(yè)的網(wǎng)站排名提升SEO優(yōu)化輔助軟件
【微信公眾號無(wú)限裂變產(chǎn)品尋求合作】
高防香港-CN2高速穩定VPS

【SEO快速排名點(diǎn)擊量低至0.01/次】
智能違章監控系統全新上線(xiàn)!為保障廣大正常使用付費用戶(hù)的權益,現對有以下行為的賬號進(jìn)行查封: 1、單人版VIP多人借用。2、VIP用于程序調用或其他非法使用第三方程序。3、其他非正常人類(lèi)使用行為。被扣賬戶(hù)費用不予退還,請知悉-----2019-12-08
奶盤(pán) SEO偽原創(chuàng )
系統版本:新版本:3.2.1205 有 收錄 70980 個(gè)同義詞 / 47320 個(gè)免費用戶(hù)使用 [提交構建 偽原創(chuàng ) 庫]
注:新版奶盤(pán)SEO偽原創(chuàng )使用獨有的分詞引擎和自創(chuàng )詞庫模擬百度等中文分詞對偽原創(chuàng ),生成的偽原創(chuàng )文章更新準確,更接近百度收錄等搜索引擎。共171個(gè)詞,16個(gè)詞由免費用戶(hù)隨機替換【VIP升級后可替換為36個(gè)詞】,0個(gè)詞將替換為自定義詞,偽原創(chuàng )模式標準偽原創(chuàng )100%
偽原創(chuàng ) 僅用于學(xué)習目的。由于免費用戶(hù)使用捏盤(pán)網(wǎng)為自媒體,捏盤(pán)網(wǎng)積極配合國家網(wǎng)信辦開(kāi)展專(zhuān)項整治活動(dòng),堅決遏制自媒體。自媒體混沌,堅決維護網(wǎng)絡(luò )正常交流秩序,努力營(yíng)造干凈、積極、健康、有序的網(wǎng)絡(luò )空間!偽原創(chuàng )度大大降低,現在免費用戶(hù)偽原創(chuàng )度降低到50%,自覺(jué)做好轉載出處,保護作者合法權益原作者!VIP用戶(hù)不受影響!
鏈接模式 1 關(guān)鍵字
網(wǎng)址
鏈接方式2 用戶(hù)未登錄,無(wú)法讀取用戶(hù)關(guān)鍵字鏈接!選擇此模式偽原創(chuàng )將沒(méi)有關(guān)鍵字添加鏈接!
源詞庫偽原創(chuàng )模式鏈接文本為粗體
插入自定義內容
Milk Tray偽原創(chuàng ) 不斷得到補充和改進(jìn)。如果您有好的意見(jiàn)、建議或問(wèn)題報告,請點(diǎn)擊用戶(hù)反饋讓我們知道,謝謝!
奶鍋SEO在線(xiàn)偽原創(chuàng )工具介紹

在線(xiàn)偽原創(chuàng )工具是一個(gè)SEOER實(shí)用工具,是生成原創(chuàng )和偽原創(chuàng )文章的工具。偽原創(chuàng ) 工具可用于復制 Internet 上的文件。文章立即成為你自己的原創(chuàng )文章。本系統的WEB程序是專(zhuān)為Google、百度、雅虎、SOSO等大型搜索引擎收錄設計的,在線(xiàn)偽原創(chuàng )工具生成的文章將更好的被用戶(hù)使用搜索引擎 收錄 并索引到。在線(xiàn)偽原創(chuàng )工具是網(wǎng)頁(yè)編輯、群發(fā)用戶(hù)和SEOER的必備工具,也是優(yōu)化工具中不可多得的利器。
“在線(xiàn)偽原創(chuàng )工具”具有以下優(yōu)點(diǎn):
1、本軟件采用引擎獨有的分析規則和算法分割文章,可以很好的匹配所有搜索引擎。
2.唯一的同義詞替換詞庫可以在不改變文章語(yǔ)義的情況下生成原創(chuàng )文章。
3.集成了當前主流詞庫,詞庫功能非常強大,程序不斷更新,無(wú)需安裝,無(wú)需升級,始終保持最新偽原創(chuàng )文章,完全免費。
4.添加關(guān)鍵字和鏈接,加粗關(guān)鍵字,文章底部添加版權等強大功能。
關(guān)于牛奶鍋seo偽原創(chuàng )| 聯(lián)系我們| 廣告服務(wù)| 版權聲明| 人才招聘| 更新歷史| API授權查詢(xún)| 奶鍋API| 幫助
Milk Pan seo偽原創(chuàng )是專(zhuān)門(mén)針對百度和谷歌的爬蟲(chóng)習慣和分詞算法開(kāi)發(fā)的。本軟件優(yōu)化的文章會(huì )更受搜索引擎的青睞。奶鍋seo偽原創(chuàng )是網(wǎng)絡(luò )寫(xiě)手、海量帖子用戶(hù)、SEO們不可多得的工具,也是網(wǎng)站推廣者必備的工具??蛻?hù)服務(wù)
客服郵箱:點(diǎn)擊在線(xiàn)咨詢(xún)
09:00 - 22:00 掃描
聯(lián)系我們QQ群1:118977038
QQ群2:346875251
鏈接:偽原創(chuàng )偽原創(chuàng )在線(xiàn)工具偽原創(chuàng )偽原創(chuàng )在線(xiàn)
文章采集調用 經(jīng)驗:深入淺出JProfiler
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 144 次瀏覽 ? 2022-10-05 07:15
文章來(lái)自阿里巴巴市技術(shù)協(xié)會(huì )(ATA)
?。?。由于最近的工作,使用J輪廓器(
8)做性能瓶頸分析,發(fā)現這個(gè)工具真的方便使用,現在整理了JProfiler的相關(guān)知識(谷歌查了一下,有沒(méi)有我想要的)。
什么是 J 輪廓器
J輪廓器是由ej技術(shù)有限公司(也開(kāi)發(fā)部署工具)開(kāi)發(fā)的性能瓶頸分析工具。
其特點(diǎn):
二。數據采集
問(wèn)題 1.由于JProfiler是一種性能瓶頸分析工具,因此此分析的相關(guān)數據來(lái)自哪里?
問(wèn)題 2.J普羅菲勒是如何采集和呈現這些數據的?
?。▓D2
?。?。
解答 1.分析的數據主要來(lái)自以下兩個(gè)部分
1. 部分分析接口來(lái)自 jvm(JVM 工具接口),JDK 必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理程序函數。然后,它可以啟用或禁用選定的事件
例如:生命周期
對象、線(xiàn)程的生命周期等
2. 部分來(lái)自?xún)x器類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計
?。?。
例如:方法執行時(shí)間、次數、方法堆棧等
解答 2.數據采集的原理如圖2所示。
1. 用戶(hù)在 J 輪廓控制器 GUI 中發(fā)出監控指令(通常通過(guò)單擊按鈕
?。?。
2. J輪廓 GUI JVM 通過(guò)套接字(默認端口 8849)將指令發(fā)送到所分析的 JVM 中的 J 輪廓代理。
3. JProfiler 代理(如果您不知道代理文章,請參閱第 3 部分 “啟動(dòng)模式”) 收到指令后,將指令轉換為相關(guān)事件或要偵聽(tīng)的指令,將其注冊到 JVMTI 或直接讓 JVMTI 執行一個(gè)功能(例如轉儲 jvm 內存)。
4. JVMTI 根據注冊的事件采集有關(guān)當前 jvm 的信息。例如:線(xiàn)程的生命周期;JVM的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;有關(guān)堆內存等的實(shí)時(shí)信息
5. J輪廓代理將采集信息保存到**內存**中,并根據一定的規則進(jìn)行計數(如果J-Profiler GUI發(fā)送了所有數據,它將對分析的應用程序網(wǎng)絡(luò )產(chǎn)生比較大的影響)。
6. 返回 J 輪廓 GUI 套接字
7. J輪廓GUI套接字將收到的信息返回給J輪廓GUI渲染
8. J輪廓GUI渲染渲染到最終的顯示效果
數據采集模式和啟動(dòng)模式
解答 1.JProfier 采集方法分為兩種類(lèi)型:采樣(樣本采集)和檢測
注意:JProfiler 本身并不指示采集數據類(lèi)型,此處采集類(lèi)型是方法調用的采集類(lèi)型。由于 JProfiler 的大多數核心功能依賴(lài)于數據采集方法調用,因此可以直接將其視為 J 輪廓器的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
4. J輪廓器核心概念
篩選器:需要分析的類(lèi)。有兩種類(lèi)型的篩選器:收錄的和不收錄的。
?。▓D4
?。?。
分析設置:收據采集策略:可以自定義采樣和檢測、某些數據采集詳細信息
?。▓D5
?。?。
觸發(fā)器:通常在離線(xiàn)模式下用于告訴 JProfiler 代理何時(shí)觸發(fā)什么行為來(lái)采集指定信息
?。▓D6
?。?。
實(shí)時(shí)內存:有關(guān)類(lèi)/類(lèi)實(shí)例的信息。例如,對象數、大小、用于對象創(chuàng )建的方法執行堆棧、用于對象創(chuàng )建的熱點(diǎn)。
?。▓D7
?。?。
堆步行者:功能強大,可用于靜態(tài)分析在一定時(shí)間內采集的記憶圖像信息。收錄傳出引用、傳入引用、最大對象等對象
?。▓D8
?。?。
CPU視圖:CPU消耗的分布和時(shí)間(CPU時(shí)間或運行時(shí)間);方法的執行圖;方法的執行統計信息(最大值、最小值、平均運行時(shí)間等)
?。?。
?。▓D9
?。?。
線(xiàn)程:jvm 中所有線(xiàn)程的當前運行狀態(tài)、持有鎖的線(xiàn)程的狀態(tài)、可轉儲線(xiàn)程。
?。▓D10
?。?。
監視器和鎖:所有線(xiàn)程持有鎖的情況以及有關(guān)鎖的信息
?。▓D 11
?。?。
遙測:收錄堆、線(xiàn)程、gc、類(lèi)等的趨勢圖(遙測視圖)
實(shí)踐
為了便于練習,請舉一個(gè) JProfiler8 附帶的示例來(lái)幫助理解上述相關(guān)概念。
JProfiler 附帶了以下示例:模擬內存泄漏和線(xiàn)程阻塞場(chǎng)景:
參考: /jprofiler install path/demo/bezier
?。▓D 12)。
?。▓D 13 泄漏內存模擬內存泄漏,模擬阻塞模擬線(xiàn)程間鎖定。
解答 1.首先,讓我們分析一下內存泄漏場(chǎng)景:(檢查圖 13 中的泄漏內存模擬內存泄漏)。
1. 在遙測>內存視圖中,您將看到大致如下圖所示的場(chǎng)景(在查看過(guò)程中可以每隔一段時(shí)間執行一次運行GC):請參閱下圖的藍色區域,gc(**槽**)之后老一代的內存大小正在緩慢增加(理想情況下,此值應穩定)。
?。▓D 14
?。?。單擊 **
實(shí)時(shí)內存>記錄對象“中的”記錄分配數據**“按鈕,用于開(kāi)始計算在一段時(shí)間內創(chuàng )建的對象信息。執行Run GC一次后,查看當前對象信息的大小,然后單擊工具欄中的“標記為當前”按鈕(實(shí)際上,它是標記當前對象的數量。運行GC一次,然后繼續觀(guān)察;在繼續觀(guān)察之前運行一次GC。...最后,讓我們看看在連續GC之后哪些物體的數量一直在上升。您最終看到的信息可能類(lèi)似于下圖
?。▓D15 綠色是標記前的數字,紅色是標記后的增量
?。?。
分析您剛剛記錄在堆步行器中的對象信息
?。▓D 16
?。?。
?。▓D 17
?。?。
單擊上圖中具有最多實(shí)例的類(lèi),然后右鍵單擊“使用所選實(shí)例>引用>傳入引用”
發(fā)現長(cháng)數據最終存儲在貝塞爾中。BeaierAnim.leakMap**.
?。▓D 18
?。?。
在“分配”選項卡中,右鍵單擊其中一種方法以查看特定的源代碼
?。▓D 19
?。?。
【注】:此時(shí),問(wèn)題很清楚,理解為什么圖17中哪些實(shí)例的數量是一樣的,以及為什么內存在fullgc之后仍然沒(méi)有回收(一個(gè)舊區域的對象expleMap,放置信息也會(huì )進(jìn)入舊區域,泄漏Map如果不能回收,那么映射中收錄的對象就不能回收)。
解答 2.模擬線(xiàn)程阻塞的場(chǎng)景(選中模擬阻塞以模擬線(xiàn)程間鎖定阻塞,如圖 13 所示
?。?。
為了更容易區分線(xiàn)程,我在演示測試中將貝塞爾動(dòng)畫(huà)的L236.java命名為線(xiàn)程。
public void start() {
thread = new Thread(this, "test");
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
通常,如下圖所示
?。▓D 20
?。?。
在演示中選中“模擬阻塞”選項后,如下圖所示(注意下圖中的狀態(tài)圖標),測試線(xiàn)程塊狀態(tài)明顯增加。
?。▓D 21
?。?。
在觀(guān)察了監視器和鎖>監視器歷史記錄一段時(shí)間后,發(fā)生了4種類(lèi)型的鎖。
第一個(gè):
AWT 事件隊列 0 線(xiàn)程在對象上保持鎖定,并處于“正在等待”狀態(tài)。
圖下面的代碼表示演示塊方法調用了對象.wait 方法。這仍然相對容易理解。
?。▓D 22
?。?。
第二種:
AWT-事件隊列-0 保持貝塞爾上的鎖。貝塞爾動(dòng)畫(huà)演示實(shí)例,而測試線(xiàn)程等待該線(xiàn)程釋放。
請注意下圖中的源代碼,此鎖定的原因是 AWT 和測試線(xiàn)程上的 Demo 的 blcok 方法
將執行,并且方法已同步
?。▓D 23
?。?。
第三和第四種:
測試線(xiàn)程不斷將任務(wù)提交到事件事件調度線(xiàn)程,從而導致對 java.awt.事件隊列對象鎖定的競爭。
提交任務(wù)的方式是以下代碼:重繪() 和事件隊列。
public void run() {
Thread me = Thread.currentThread();
while (thread == me) {
repaint();
if (block) {
block(false);
}
try {
Thread.sleep(10);
} catch (Exception e) {
break;
}
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
onEDTMethod();
}
});
}
thread = null;
}
?。▓D24
?。?。
6. 最佳實(shí)踐 JProfiler 會(huì )給出一些特殊操作的提示,因此最好仔細閱讀說(shuō)明?!皹擞洰斍啊惫δ茉谀承┣闆r下效果很好 堆步行器通常會(huì )靜態(tài)分析實(shí)時(shí)內存>記錄器對象中的對象信息,這些信息可能被 GC 回收,從而導致堆步行器中不顯示任何內容。這種現象是正常的。您可以在“開(kāi)始錄制文件”工具欄中配置一次采集的信息 過(guò)濾器收錄和排除是否按順序排列,請注意下圖**左下角** **顯示過(guò)濾器樹(shù)**以驗證順序
?。▓D25) 七.參考文獻 J輪廓助手:
捷運通:
如果上述描述中存在錯誤或內亂,歡迎使用斧頭。
除此之外:J輪廓器被收費
直觀(guān):TikTok易銷(xiāo)寶 | TikTok小店如何上貨?4種高效采集方式揭秘
作為輻射全球的短視頻應用,TikTok的發(fā)展速度驚人。數據顯示,TikTok在全球擁有超過(guò)10億的月活躍用戶(hù)和超過(guò)30億的下載量,成為全球第三大社交平臺。
同時(shí),隨著(zhù)TikTok生態(tài)系統的不斷發(fā)展和延伸,TikTok的變現模式也越來(lái)越多,其中TikTok Shop是目前最受歡迎的一種。
TikTok Shop 是賣(mài)家在 TikTok 上推出的在線(xiàn)商店。賣(mài)家可以在店鋪發(fā)布自己的產(chǎn)品,然后使用TikTok賬號為小店吸引流量,從而直接實(shí)現用戶(hù)在TikTok賬號中的購物轉化,縮短買(mǎi)家的購物時(shí)間。的鏈接。簡(jiǎn)單來(lái)說(shuō),TikTok Shop有國內抖音小店的詳細清單。
TikTok Shop開(kāi)張后,賣(mài)家需要考慮的是如何快速給店鋪加貨,吸引流量。有經(jīng)驗的商家只要知道發(fā)貨速度慢,線(xiàn)上產(chǎn)品不夠多,產(chǎn)品不是不斷變化,產(chǎn)品不豐富,就很難吸引流量,更談不上流量的轉化率。
抖音賣(mài)家采集如何一鍵將商品賣(mài)到店鋪?TikTok 一品寶介紹了 4 種快速 采集 和批量 采集 方法。
抖音易銷(xiāo)寶
抖音全店采集
進(jìn)入shopee或lazada平臺的店鋪首頁(yè)鏈接,點(diǎn)擊【在線(xiàn)采集】按鈕,即可采集將店鋪的所有商品數據采集到一品寶ERP系統中,然后可以修改信息存儲在 TikTok 商店上發(fā)布的產(chǎn)品。
抖音全店采集
抖音鏈接采集
顧名思義就是進(jìn)入單個(gè)sku的產(chǎn)品鏈接,定位采集賣(mài)家想要的產(chǎn)品
抖音鏈接采集
抖音易銷(xiāo)寶
TikTok關(guān)鍵詞選擇
東南亞的TikTok賣(mài)家可以選擇對應的站點(diǎn),輸入產(chǎn)品關(guān)鍵詞選擇產(chǎn)品采集,一品寶erp會(huì )自動(dòng)抓取shopee/lazada的熱銷(xiāo)產(chǎn)品,并顯示他們的標題、圖片、價(jià)格、銷(xiāo)量體積以及發(fā)貨地等產(chǎn)品信息,為賣(mài)家選擇產(chǎn)品和采集提供數據支持。
抖音關(guān)鍵詞選擇
TikTok最熱門(mén)的選擇
TikTok賣(mài)家篩選網(wǎng)站、店鋪類(lèi)型(官方店鋪、非官方店鋪)、發(fā)貨地點(diǎn)(國內、海外)、價(jià)格、產(chǎn)品排名后,可以發(fā)現深耕行業(yè)的熱門(mén)產(chǎn)品,一鍵同步. 抖音平臺。
抖音爆款風(fēng)格選擇
抖音易行寶專(zhuān)注抖音電商,涵蓋店鋪更換、店鋪隔離、多店鋪管理、運營(yíng)看板、產(chǎn)品搬遷、批量采集、批量發(fā)布、自動(dòng)邀請專(zhuān)家、智能采購、訂單管理、倉庫管理、智能客服、海外倉代理單板、專(zhuān)屬客戶(hù)成功服務(wù)等十余項功能,為抖音賣(mài)家提供一站式管理服務(wù)。 查看全部
文章采集調用 經(jīng)驗:深入淺出JProfiler
文章來(lái)自阿里巴巴市技術(shù)協(xié)會(huì )(ATA)
?。?。由于最近的工作,使用J輪廓器(
8)做性能瓶頸分析,發(fā)現這個(gè)工具真的方便使用,現在整理了JProfiler的相關(guān)知識(谷歌查了一下,有沒(méi)有我想要的)。
什么是 J 輪廓器
J輪廓器是由ej技術(shù)有限公司(也開(kāi)發(fā)部署工具)開(kāi)發(fā)的性能瓶頸分析工具。
其特點(diǎn):
二。數據采集
問(wèn)題 1.由于JProfiler是一種性能瓶頸分析工具,因此此分析的相關(guān)數據來(lái)自哪里?
問(wèn)題 2.J普羅菲勒是如何采集和呈現這些數據的?
?。▓D2
?。?。
解答 1.分析的數據主要來(lái)自以下兩個(gè)部分
1. 部分分析接口來(lái)自 jvm(JVM 工具接口),JDK 必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理程序函數。然后,它可以啟用或禁用選定的事件
例如:生命周期
對象、線(xiàn)程的生命周期等
2. 部分來(lái)自?xún)x器類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計
?。?。
例如:方法執行時(shí)間、次數、方法堆棧等
解答 2.數據采集的原理如圖2所示。
1. 用戶(hù)在 J 輪廓控制器 GUI 中發(fā)出監控指令(通常通過(guò)單擊按鈕
?。?。
2. J輪廓 GUI JVM 通過(guò)套接字(默認端口 8849)將指令發(fā)送到所分析的 JVM 中的 J 輪廓代理。
3. JProfiler 代理(如果您不知道代理文章,請參閱第 3 部分 “啟動(dòng)模式”) 收到指令后,將指令轉換為相關(guān)事件或要偵聽(tīng)的指令,將其注冊到 JVMTI 或直接讓 JVMTI 執行一個(gè)功能(例如轉儲 jvm 內存)。
4. JVMTI 根據注冊的事件采集有關(guān)當前 jvm 的信息。例如:線(xiàn)程的生命周期;JVM的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;有關(guān)堆內存等的實(shí)時(shí)信息
5. J輪廓代理將采集信息保存到**內存**中,并根據一定的規則進(jìn)行計數(如果J-Profiler GUI發(fā)送了所有數據,它將對分析的應用程序網(wǎng)絡(luò )產(chǎn)生比較大的影響)。
6. 返回 J 輪廓 GUI 套接字
7. J輪廓GUI套接字將收到的信息返回給J輪廓GUI渲染
8. J輪廓GUI渲染渲染到最終的顯示效果
數據采集模式和啟動(dòng)模式
解答 1.JProfier 采集方法分為兩種類(lèi)型:采樣(樣本采集)和檢測
注意:JProfiler 本身并不指示采集數據類(lèi)型,此處采集類(lèi)型是方法調用的采集類(lèi)型。由于 JProfiler 的大多數核心功能依賴(lài)于數據采集方法調用,因此可以直接將其視為 J 輪廓器的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
4. J輪廓器核心概念
篩選器:需要分析的類(lèi)。有兩種類(lèi)型的篩選器:收錄的和不收錄的。
?。▓D4
?。?。
分析設置:收據采集策略:可以自定義采樣和檢測、某些數據采集詳細信息
?。▓D5
?。?。
觸發(fā)器:通常在離線(xiàn)模式下用于告訴 JProfiler 代理何時(shí)觸發(fā)什么行為來(lái)采集指定信息
?。▓D6
?。?。
實(shí)時(shí)內存:有關(guān)類(lèi)/類(lèi)實(shí)例的信息。例如,對象數、大小、用于對象創(chuàng )建的方法執行堆棧、用于對象創(chuàng )建的熱點(diǎn)。
?。▓D7
?。?。
堆步行者:功能強大,可用于靜態(tài)分析在一定時(shí)間內采集的記憶圖像信息。收錄傳出引用、傳入引用、最大對象等對象
?。▓D8
?。?。
CPU視圖:CPU消耗的分布和時(shí)間(CPU時(shí)間或運行時(shí)間);方法的執行圖;方法的執行統計信息(最大值、最小值、平均運行時(shí)間等)

?。?。
?。▓D9
?。?。
線(xiàn)程:jvm 中所有線(xiàn)程的當前運行狀態(tài)、持有鎖的線(xiàn)程的狀態(tài)、可轉儲線(xiàn)程。
?。▓D10
?。?。
監視器和鎖:所有線(xiàn)程持有鎖的情況以及有關(guān)鎖的信息
?。▓D 11
?。?。
遙測:收錄堆、線(xiàn)程、gc、類(lèi)等的趨勢圖(遙測視圖)
實(shí)踐
為了便于練習,請舉一個(gè) JProfiler8 附帶的示例來(lái)幫助理解上述相關(guān)概念。
JProfiler 附帶了以下示例:模擬內存泄漏和線(xiàn)程阻塞場(chǎng)景:
參考: /jprofiler install path/demo/bezier
?。▓D 12)。
?。▓D 13 泄漏內存模擬內存泄漏,模擬阻塞模擬線(xiàn)程間鎖定。
解答 1.首先,讓我們分析一下內存泄漏場(chǎng)景:(檢查圖 13 中的泄漏內存模擬內存泄漏)。
1. 在遙測>內存視圖中,您將看到大致如下圖所示的場(chǎng)景(在查看過(guò)程中可以每隔一段時(shí)間執行一次運行GC):請參閱下圖的藍色區域,gc(**槽**)之后老一代的內存大小正在緩慢增加(理想情況下,此值應穩定)。
?。▓D 14
?。?。單擊 **
實(shí)時(shí)內存>記錄對象“中的”記錄分配數據**“按鈕,用于開(kāi)始計算在一段時(shí)間內創(chuàng )建的對象信息。執行Run GC一次后,查看當前對象信息的大小,然后單擊工具欄中的“標記為當前”按鈕(實(shí)際上,它是標記當前對象的數量。運行GC一次,然后繼續觀(guān)察;在繼續觀(guān)察之前運行一次GC。...最后,讓我們看看在連續GC之后哪些物體的數量一直在上升。您最終看到的信息可能類(lèi)似于下圖
?。▓D15 綠色是標記前的數字,紅色是標記后的增量
?。?。
分析您剛剛記錄在堆步行器中的對象信息
?。▓D 16
?。?。
?。▓D 17
?。?。
單擊上圖中具有最多實(shí)例的類(lèi),然后右鍵單擊“使用所選實(shí)例>引用>傳入引用”
發(fā)現長(cháng)數據最終存儲在貝塞爾中。BeaierAnim.leakMap**.
?。▓D 18
?。?。
在“分配”選項卡中,右鍵單擊其中一種方法以查看特定的源代碼
?。▓D 19
?。?。
【注】:此時(shí),問(wèn)題很清楚,理解為什么圖17中哪些實(shí)例的數量是一樣的,以及為什么內存在fullgc之后仍然沒(méi)有回收(一個(gè)舊區域的對象expleMap,放置信息也會(huì )進(jìn)入舊區域,泄漏Map如果不能回收,那么映射中收錄的對象就不能回收)。
解答 2.模擬線(xiàn)程阻塞的場(chǎng)景(選中模擬阻塞以模擬線(xiàn)程間鎖定阻塞,如圖 13 所示
?。?。
為了更容易區分線(xiàn)程,我在演示測試中將貝塞爾動(dòng)畫(huà)的L236.java命名為線(xiàn)程。
public void start() {
thread = new Thread(this, "test");
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}

通常,如下圖所示
?。▓D 20
?。?。
在演示中選中“模擬阻塞”選項后,如下圖所示(注意下圖中的狀態(tài)圖標),測試線(xiàn)程塊狀態(tài)明顯增加。
?。▓D 21
?。?。
在觀(guān)察了監視器和鎖>監視器歷史記錄一段時(shí)間后,發(fā)生了4種類(lèi)型的鎖。
第一個(gè):
AWT 事件隊列 0 線(xiàn)程在對象上保持鎖定,并處于“正在等待”狀態(tài)。
圖下面的代碼表示演示塊方法調用了對象.wait 方法。這仍然相對容易理解。
?。▓D 22
?。?。
第二種:
AWT-事件隊列-0 保持貝塞爾上的鎖。貝塞爾動(dòng)畫(huà)演示實(shí)例,而測試線(xiàn)程等待該線(xiàn)程釋放。
請注意下圖中的源代碼,此鎖定的原因是 AWT 和測試線(xiàn)程上的 Demo 的 blcok 方法
將執行,并且方法已同步
?。▓D 23
?。?。
第三和第四種:
測試線(xiàn)程不斷將任務(wù)提交到事件事件調度線(xiàn)程,從而導致對 java.awt.事件隊列對象鎖定的競爭。
提交任務(wù)的方式是以下代碼:重繪() 和事件隊列。
public void run() {
Thread me = Thread.currentThread();
while (thread == me) {
repaint();
if (block) {
block(false);
}
try {
Thread.sleep(10);
} catch (Exception e) {
break;
}
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
onEDTMethod();
}
});
}
thread = null;
}
?。▓D24
?。?。
6. 最佳實(shí)踐 JProfiler 會(huì )給出一些特殊操作的提示,因此最好仔細閱讀說(shuō)明?!皹擞洰斍啊惫δ茉谀承┣闆r下效果很好 堆步行器通常會(huì )靜態(tài)分析實(shí)時(shí)內存>記錄器對象中的對象信息,這些信息可能被 GC 回收,從而導致堆步行器中不顯示任何內容。這種現象是正常的。您可以在“開(kāi)始錄制文件”工具欄中配置一次采集的信息 過(guò)濾器收錄和排除是否按順序排列,請注意下圖**左下角** **顯示過(guò)濾器樹(shù)**以驗證順序
?。▓D25) 七.參考文獻 J輪廓助手:
捷運通:
如果上述描述中存在錯誤或內亂,歡迎使用斧頭。
除此之外:J輪廓器被收費
直觀(guān):TikTok易銷(xiāo)寶 | TikTok小店如何上貨?4種高效采集方式揭秘
作為輻射全球的短視頻應用,TikTok的發(fā)展速度驚人。數據顯示,TikTok在全球擁有超過(guò)10億的月活躍用戶(hù)和超過(guò)30億的下載量,成為全球第三大社交平臺。
同時(shí),隨著(zhù)TikTok生態(tài)系統的不斷發(fā)展和延伸,TikTok的變現模式也越來(lái)越多,其中TikTok Shop是目前最受歡迎的一種。
TikTok Shop 是賣(mài)家在 TikTok 上推出的在線(xiàn)商店。賣(mài)家可以在店鋪發(fā)布自己的產(chǎn)品,然后使用TikTok賬號為小店吸引流量,從而直接實(shí)現用戶(hù)在TikTok賬號中的購物轉化,縮短買(mǎi)家的購物時(shí)間。的鏈接。簡(jiǎn)單來(lái)說(shuō),TikTok Shop有國內抖音小店的詳細清單。
TikTok Shop開(kāi)張后,賣(mài)家需要考慮的是如何快速給店鋪加貨,吸引流量。有經(jīng)驗的商家只要知道發(fā)貨速度慢,線(xiàn)上產(chǎn)品不夠多,產(chǎn)品不是不斷變化,產(chǎn)品不豐富,就很難吸引流量,更談不上流量的轉化率。
抖音賣(mài)家采集如何一鍵將商品賣(mài)到店鋪?TikTok 一品寶介紹了 4 種快速 采集 和批量 采集 方法。
抖音易銷(xiāo)寶
抖音全店采集

進(jìn)入shopee或lazada平臺的店鋪首頁(yè)鏈接,點(diǎn)擊【在線(xiàn)采集】按鈕,即可采集將店鋪的所有商品數據采集到一品寶ERP系統中,然后可以修改信息存儲在 TikTok 商店上發(fā)布的產(chǎn)品。
抖音全店采集
抖音鏈接采集
顧名思義就是進(jìn)入單個(gè)sku的產(chǎn)品鏈接,定位采集賣(mài)家想要的產(chǎn)品
抖音鏈接采集
抖音易銷(xiāo)寶

TikTok關(guān)鍵詞選擇
東南亞的TikTok賣(mài)家可以選擇對應的站點(diǎn),輸入產(chǎn)品關(guān)鍵詞選擇產(chǎn)品采集,一品寶erp會(huì )自動(dòng)抓取shopee/lazada的熱銷(xiāo)產(chǎn)品,并顯示他們的標題、圖片、價(jià)格、銷(xiāo)量體積以及發(fā)貨地等產(chǎn)品信息,為賣(mài)家選擇產(chǎn)品和采集提供數據支持。
抖音關(guān)鍵詞選擇
TikTok最熱門(mén)的選擇
TikTok賣(mài)家篩選網(wǎng)站、店鋪類(lèi)型(官方店鋪、非官方店鋪)、發(fā)貨地點(diǎn)(國內、海外)、價(jià)格、產(chǎn)品排名后,可以發(fā)現深耕行業(yè)的熱門(mén)產(chǎn)品,一鍵同步. 抖音平臺。
抖音爆款風(fēng)格選擇
抖音易行寶專(zhuān)注抖音電商,涵蓋店鋪更換、店鋪隔離、多店鋪管理、運營(yíng)看板、產(chǎn)品搬遷、批量采集、批量發(fā)布、自動(dòng)邀請專(zhuān)家、智能采購、訂單管理、倉庫管理、智能客服、海外倉代理單板、專(zhuān)屬客戶(hù)成功服務(wù)等十余項功能,為抖音賣(mài)家提供一站式管理服務(wù)。
分享文章:織夢(mèng)解決輪播圖模糊調用文章內容頁(yè)第一張大圖方法
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2022-10-03 15:10
可織夢(mèng)文章縮略圖自動(dòng)提取,偽靜態(tài)和靜態(tài)網(wǎng)站
找到縮略圖:[字段:litpic/] 或 [字段:圖片名稱(chēng)/]。
替換為
[字段:id 函數='get_tupian(@me)'/]
織夢(mèng)/收錄/擴展函數添加以下函數.php
//縮略圖
function?get_tupian($id){
???global?$dsql;
??$row?=?$dsql->GetOne("SELECT?aid,body?FROM?`dede_addonarticle`?where?aid='$id'");
??if(preg_match(?"/()/",$row['body']?,?$regs?)){
<p>
return?$regs[2];?
????}else{
????return??$GLOBALS['cfg_basehost']."/images/defaultpic.gif";
????}
}</p>
織夢(mèng)二次開(kāi)發(fā)QQ群
揭密:百度快照不顯示標題和描述大揭秘
近日,網(wǎng)上很多朋友網(wǎng)站出現了一個(gè)問(wèn)題,就是搜索結果頁(yè)的標題網(wǎng)站不完整,網(wǎng)站快照沒(méi)有描述,網(wǎng)站的快照無(wú)法預覽,但快照每天都在更新,但網(wǎng)站卻沒(méi)有增加(關(guān)于這個(gè)楊長(cháng)生之前寫(xiě)過(guò)一篇文章收錄百度為什么百度拿了你文章 網(wǎng)站的前三朵花)。這是什么原因?之前楊長(cháng)生處理過(guò)網(wǎng)站八閔商業(yè)聯(lián)盟也出現過(guò)這樣的情況:(這個(gè)網(wǎng)站之前的情況是:為了不向搜索引擎提交低質(zhì)量的測試文章,當這個(gè)網(wǎng)站里面是在線(xiàn)的,我屏蔽了所有搜索引擎爬行的機器人,但百度還是收錄,等待模板和結構的修改, 我清空了機器人,等待蜘蛛爬行和收錄,結果,到目前為止所有的快照都是同一天(因為我每天都在更新),但是快照是空白的,你不能瀏覽快照,在百度中搜索w
查看全部
分享文章:織夢(mèng)解決輪播圖模糊調用文章內容頁(yè)第一張大圖方法
可織夢(mèng)文章縮略圖自動(dòng)提取,偽靜態(tài)和靜態(tài)網(wǎng)站
找到縮略圖:[字段:litpic/] 或 [字段:圖片名稱(chēng)/]。
替換為
[字段:id 函數='get_tupian(@me)'/]

織夢(mèng)/收錄/擴展函數添加以下函數.php
//縮略圖
function?get_tupian($id){
???global?$dsql;
??$row?=?$dsql->GetOne("SELECT?aid,body?FROM?`dede_addonarticle`?where?aid='$id'");
??if(preg_match(?"/()/",$row['body']?,?$regs?)){
<p>

return?$regs[2];?
????}else{
????return??$GLOBALS['cfg_basehost']."/images/defaultpic.gif";
????}
}</p>
織夢(mèng)二次開(kāi)發(fā)QQ群
揭密:百度快照不顯示標題和描述大揭秘

近日,網(wǎng)上很多朋友網(wǎng)站出現了一個(gè)問(wèn)題,就是搜索結果頁(yè)的標題網(wǎng)站不完整,網(wǎng)站快照沒(méi)有描述,網(wǎng)站的快照無(wú)法預覽,但快照每天都在更新,但網(wǎng)站卻沒(méi)有增加(關(guān)于這個(gè)楊長(cháng)生之前寫(xiě)過(guò)一篇文章收錄百度為什么百度拿了你文章 網(wǎng)站的前三朵花)。這是什么原因?之前楊長(cháng)生處理過(guò)網(wǎng)站八閔商業(yè)聯(lián)盟也出現過(guò)這樣的情況:(這個(gè)網(wǎng)站之前的情況是:為了不向搜索引擎提交低質(zhì)量的測試文章,當這個(gè)網(wǎng)站里面是在線(xiàn)的,我屏蔽了所有搜索引擎爬行的機器人,但百度還是收錄,等待模板和結構的修改, 我清空了機器人,等待蜘蛛爬行和收錄,結果,到目前為止所有的快照都是同一天(因為我每天都在更新),但是快照是空白的,你不能瀏覽快照,在百度中搜索w
解決方案:網(wǎng)絡(luò )爬蟲(chóng)實(shí)例系列 —— 搜狗微信文章采集方案
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 190 次瀏覽 ? 2022-10-03 07:20
微信與搜狗合作推出微信搜索后,各媒體檢測平臺終于可以獲取微信文章的數據;但好景不長(cháng),因為大家基本只有這一個(gè)接口獲取微信的數據,這給搜狗帶來(lái)了成倍的壓力,減少了返回的搜索結果和爬蟲(chóng)輸入驗證碼,讓大家很難抓取微信數據;不過(guò),搜狗推出了針對登錄用戶(hù)的關(guān)鍵詞訂閱功能。針對這些情況,整理出以下兩種采集搜狗微信文章的解決方案,僅供參考。
方案一:使用搜狗微信文章搜索界面
調用以下網(wǎng)址訪(fǎng)問(wèn)搜狗微信關(guān)鍵字搜索結果文章,其中參數query為搜索關(guān)鍵字,值為UTF-8編碼字符串。URL返回文章的10條搜索結果,可以直接解析成搜索到的文章名稱(chēng)、文章 URL、公眾號和摘要。通過(guò)修改page參數的值,可以翻頁(yè),獲得更多的搜索結果。
%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&sut=13695&lkt=0%2C0%2C0&type=2&sst0=68&page=1&ie=utf8&w=01019900&dr=1
優(yōu)勢:
實(shí)現簡(jiǎn)單,搜索結果和關(guān)鍵詞匹配度比較高
缺點(diǎn):
最多只能翻10頁(yè),網(wǎng)站反爬蟲(chóng)導致嚴重屏蔽
方案二:使用搜狗微信提供的關(guān)鍵詞訂閱接口
在搜狗微信中,對于已登錄的用戶(hù),可以將搜索到的關(guān)鍵詞添加到訂閱列表中。下次,您可以直接查看與您的訂閱關(guān)鍵字相關(guān)的文章。此功能將每個(gè)登錄用戶(hù)限制為最多 20 個(gè)訂閱關(guān)鍵字。
A、以下網(wǎng)址是獲取登錄用戶(hù)已訂閱的關(guān)鍵字列表,包括關(guān)鍵字和對應的wordId,可用于后續訪(fǎng)問(wèn)訂閱中的文章相關(guān)關(guān)鍵字。登錄用戶(hù)的登錄為注冊賬號,傳入一個(gè)參數uid。
uid=永中15%&_=28
B、以下網(wǎng)址是給指定賬號添加訂閱關(guān)鍵詞的界面。通過(guò)該界面,您可以為賬戶(hù)訂閱添加關(guān)鍵字。
uid=yongzhong15%&word=%E5%9B%BE%E8%AE%BA&_=71
C、以下網(wǎng)址刪除指定賬號的指定關(guān)鍵字,其中關(guān)鍵字是指訂閱關(guān)鍵字列表中對應的wordId來(lái)指定
uid=永中15%&id=49529&_=72
D、下面的URL返回指定用戶(hù)訂閱的關(guān)鍵字之一的文章列表,其中文件列表根據start參數分頁(yè),關(guān)鍵字由wordid指定。
uid=yongzhong15%&start=0&num=10&wordid=49528&clear=1&_=41
根據以上A/B/C/D四個(gè)API接口,可以查詢(xún)注冊賬號下的訂閱關(guān)鍵字列表,添加和刪除賬號下的關(guān)鍵字,獲取文章信息。
優(yōu)勢:
訂閱API由搜狗免費提供,不會(huì )被屏蔽
缺點(diǎn):
每個(gè)賬號最多只能訂閱20個(gè)關(guān)鍵詞,使用不便;并且對于每個(gè)關(guān)鍵字,返回的文章的數量遠遠少于從搜索界面直接搜索到的相關(guān)文章的數量。也就是說(shuō),得到的數據是不完整的。
解決方案:智能微信公眾號數據采集-微信公眾號封面圖采集提取-批量文章導出
微信公眾號數據采集,公眾號封面圖片提取,公眾號文章提取。如何提取微信公眾號數據如:內容、封面圖,如何批量提取微信公眾號數據并保存在本地進(jìn)行修改。今天給大家分享一款免費的微信公眾號數據自動(dòng)提取軟件采集。輸入關(guān)鍵詞或者輸入域名自動(dòng)提取文章到本地,自動(dòng)解析文章核心很重要。
現在說(shuō)到網(wǎng)站的seo優(yōu)化,微信公眾號數據采集會(huì )用到一些seo技術(shù),seo理念,seo策略,分離用戶(hù)體驗,用戶(hù)需求,網(wǎng)站建立,等。讓網(wǎng)站在搜索引擎中排名靠前,讓網(wǎng)站更有用,讓內容更適合用戶(hù)。SER 讀取。這就是主動(dòng)SEO,但是在有效SEO、被動(dòng)SEO背后總有一個(gè)黑暗的中心,也就是說(shuō)你的網(wǎng)站就是SEO,有光有影。
談到公司的網(wǎng)站優(yōu)化如何有效防止負面SEO干擾的話(huà)題,應該討論兩個(gè)概念:正面SEO和負面SEO。微信公眾號數據采集主動(dòng)搜索引擎優(yōu)化就是我們常說(shuō)的搜索引擎優(yōu)化,也就是讓網(wǎng)站在搜索引擎中排名。負搜索引擎優(yōu)化和積極搜索引擎優(yōu)化在運營(yíng)商和應用程序上是對立的。負面 SEO 是指其他人(惡意網(wǎng)站管理員、競爭對手等)在您的 網(wǎng)站 上施加一些負面 SEO 元素(搜索引擎知道阻止這些元素),從而使您的 網(wǎng)站 排名更低,甚至獲得嚴懲。
在整個(gè)SEO網(wǎng)站優(yōu)化過(guò)程中,難免會(huì )有一些針對負面信息的優(yōu)化技巧。負面信息是真實(shí)的。一般來(lái)說(shuō),它會(huì )基于一些故意的反向鏈接和草率的電子郵件破壞你的網(wǎng)站,這將極大地影響你的網(wǎng)站排名、總流量和權重值。冒險。一般來(lái)說(shuō),負面信息SEO是一種法律糾葛,很可能對搜索引擎的知名度和收益造成損害。微信公眾號數據采集但是,在整個(gè)優(yōu)化過(guò)程中,可以防止負面的SEO。如何預防?一般來(lái)說(shuō),SEO網(wǎng)站的負面信息都會(huì )被競爭對手阻止。這是在另一個(gè) 網(wǎng)站 上完成的黑帽 SEO 技術(shù)。通常來(lái)說(shuō),一般來(lái)說(shuō),競爭對手對降低 網(wǎng)站 排名的 SEO 攻擊不滿(mǎn)意。然而,在大多數情況下,很多SEO優(yōu)化網(wǎng)站站長(cháng)想要遵循SEO優(yōu)化規范,卻不得不傷人心,堵人心。
難免會(huì )有人羨慕你的網(wǎng)站排名,用幾百個(gè)渣滓封殺你的網(wǎng)站,用不正確的評論吞下你的網(wǎng)站,或者馬上破譯你的網(wǎng)站@ >。微信公眾號數據采集注意你的網(wǎng)站速度。網(wǎng)站速度是一個(gè)非常有害的排名。如果你的網(wǎng)站越來(lái)越慢,你就得開(kāi)機很久了。你永遠不知道如何使用爬行工具來(lái)找到一切都不起作用的項目。如果你找不到他們,他們仍然不是很好,受害者可能就是你。大量爬網(wǎng)導致的 Web 服務(wù)器負載過(guò)重意味著(zhù)您的 網(wǎng)站 會(huì )變慢并崩潰。如果您認為自己是網(wǎng)絡(luò )爬蟲(chóng)攻擊的受害者,可以聯(lián)系您的服務(wù)器公司或 網(wǎng)站 管理員了解負載的來(lái)源。如果你擅長(cháng)技術(shù),你可以找到自己惹麻煩的人。
關(guān)于網(wǎng)站的優(yōu)化,大家應該都遇到過(guò)這樣的事情。我們努力做了一個(gè)網(wǎng)站,終于做出了網(wǎng)站的排名,但是不知怎的,網(wǎng)站的排名過(guò)了一段時(shí)間就下降了,而且排名很不穩定。在了解搜索引擎自然排名機制的基礎上,對網(wǎng)站進(jìn)行內外調整優(yōu)化,提高網(wǎng)站在搜索引擎中的關(guān)鍵詞自然排名,獲得更多流量,從而達到網(wǎng)站銷(xiāo)售和品牌建設的預期目的。為了從搜索引擎獲得更多的免費流量,應該從網(wǎng)站結構、內容建立計劃、用戶(hù)交互傳播、頁(yè)面等角度進(jìn)行合理規劃,同時(shí)也會(huì )使網(wǎng)站 @網(wǎng)站 搜索引擎中顯示的相關(guān)信息。它對用戶(hù)更具吸引力。下面小編就告訴大家我們如何穩定網(wǎng)站和優(yōu)化排名?
網(wǎng)站排名上升后,我們每天抽時(shí)間查看收錄和網(wǎng)站的排名狀態(tài),以及查看搜索引擎來(lái)不來(lái),查看網(wǎng)站當天更新內容還沒(méi)有收錄。關(guān)注競爭對手的網(wǎng)站,看看對手的網(wǎng)站有什么好主意。網(wǎng)站 的內容會(huì )及時(shí)更新。這是為了吸引蜘蛛去爬網(wǎng)站,從而增加網(wǎng)站的收錄,同時(shí)也提高了快照的更新速度。如果網(wǎng)站長(cháng)時(shí)間不更新,搜索引擎會(huì )認為這是一場(chǎng)致命的戰斗,從而降低你的網(wǎng)站排名,嚴重的甚至會(huì )被降級。
網(wǎng)站 的外部鏈接也很重要。一個(gè)好的外鏈是你網(wǎng)站排名的背景,所以我們需要增加網(wǎng)站外鏈的數量。網(wǎng)站查看和好友鏈通訊,查看我通訊的好友鏈是否被刪除,對方的網(wǎng)站是否可以正常打開(kāi),是否可以降級或暫停,是否及時(shí)出現加工。 查看全部
解決方案:網(wǎng)絡(luò )爬蟲(chóng)實(shí)例系列 —— 搜狗微信文章采集方案
微信與搜狗合作推出微信搜索后,各媒體檢測平臺終于可以獲取微信文章的數據;但好景不長(cháng),因為大家基本只有這一個(gè)接口獲取微信的數據,這給搜狗帶來(lái)了成倍的壓力,減少了返回的搜索結果和爬蟲(chóng)輸入驗證碼,讓大家很難抓取微信數據;不過(guò),搜狗推出了針對登錄用戶(hù)的關(guān)鍵詞訂閱功能。針對這些情況,整理出以下兩種采集搜狗微信文章的解決方案,僅供參考。
方案一:使用搜狗微信文章搜索界面
調用以下網(wǎng)址訪(fǎng)問(wèn)搜狗微信關(guān)鍵字搜索結果文章,其中參數query為搜索關(guān)鍵字,值為UTF-8編碼字符串。URL返回文章的10條搜索結果,可以直接解析成搜索到的文章名稱(chēng)、文章 URL、公眾號和摘要。通過(guò)修改page參數的值,可以翻頁(yè),獲得更多的搜索結果。
%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&sut=13695&lkt=0%2C0%2C0&type=2&sst0=68&page=1&ie=utf8&w=01019900&dr=1
優(yōu)勢:
實(shí)現簡(jiǎn)單,搜索結果和關(guān)鍵詞匹配度比較高
缺點(diǎn):

最多只能翻10頁(yè),網(wǎng)站反爬蟲(chóng)導致嚴重屏蔽
方案二:使用搜狗微信提供的關(guān)鍵詞訂閱接口
在搜狗微信中,對于已登錄的用戶(hù),可以將搜索到的關(guān)鍵詞添加到訂閱列表中。下次,您可以直接查看與您的訂閱關(guān)鍵字相關(guān)的文章。此功能將每個(gè)登錄用戶(hù)限制為最多 20 個(gè)訂閱關(guān)鍵字。
A、以下網(wǎng)址是獲取登錄用戶(hù)已訂閱的關(guān)鍵字列表,包括關(guān)鍵字和對應的wordId,可用于后續訪(fǎng)問(wèn)訂閱中的文章相關(guān)關(guān)鍵字。登錄用戶(hù)的登錄為注冊賬號,傳入一個(gè)參數uid。
uid=永中15%&_=28
B、以下網(wǎng)址是給指定賬號添加訂閱關(guān)鍵詞的界面。通過(guò)該界面,您可以為賬戶(hù)訂閱添加關(guān)鍵字。
uid=yongzhong15%&word=%E5%9B%BE%E8%AE%BA&_=71
C、以下網(wǎng)址刪除指定賬號的指定關(guān)鍵字,其中關(guān)鍵字是指訂閱關(guān)鍵字列表中對應的wordId來(lái)指定

uid=永中15%&id=49529&_=72
D、下面的URL返回指定用戶(hù)訂閱的關(guān)鍵字之一的文章列表,其中文件列表根據start參數分頁(yè),關(guān)鍵字由wordid指定。
uid=yongzhong15%&start=0&num=10&wordid=49528&clear=1&_=41
根據以上A/B/C/D四個(gè)API接口,可以查詢(xún)注冊賬號下的訂閱關(guān)鍵字列表,添加和刪除賬號下的關(guān)鍵字,獲取文章信息。
優(yōu)勢:
訂閱API由搜狗免費提供,不會(huì )被屏蔽
缺點(diǎn):
每個(gè)賬號最多只能訂閱20個(gè)關(guān)鍵詞,使用不便;并且對于每個(gè)關(guān)鍵字,返回的文章的數量遠遠少于從搜索界面直接搜索到的相關(guān)文章的數量。也就是說(shuō),得到的數據是不完整的。
解決方案:智能微信公眾號數據采集-微信公眾號封面圖采集提取-批量文章導出
微信公眾號數據采集,公眾號封面圖片提取,公眾號文章提取。如何提取微信公眾號數據如:內容、封面圖,如何批量提取微信公眾號數據并保存在本地進(jìn)行修改。今天給大家分享一款免費的微信公眾號數據自動(dòng)提取軟件采集。輸入關(guān)鍵詞或者輸入域名自動(dòng)提取文章到本地,自動(dòng)解析文章核心很重要。
現在說(shuō)到網(wǎng)站的seo優(yōu)化,微信公眾號數據采集會(huì )用到一些seo技術(shù),seo理念,seo策略,分離用戶(hù)體驗,用戶(hù)需求,網(wǎng)站建立,等。讓網(wǎng)站在搜索引擎中排名靠前,讓網(wǎng)站更有用,讓內容更適合用戶(hù)。SER 讀取。這就是主動(dòng)SEO,但是在有效SEO、被動(dòng)SEO背后總有一個(gè)黑暗的中心,也就是說(shuō)你的網(wǎng)站就是SEO,有光有影。

談到公司的網(wǎng)站優(yōu)化如何有效防止負面SEO干擾的話(huà)題,應該討論兩個(gè)概念:正面SEO和負面SEO。微信公眾號數據采集主動(dòng)搜索引擎優(yōu)化就是我們常說(shuō)的搜索引擎優(yōu)化,也就是讓網(wǎng)站在搜索引擎中排名。負搜索引擎優(yōu)化和積極搜索引擎優(yōu)化在運營(yíng)商和應用程序上是對立的。負面 SEO 是指其他人(惡意網(wǎng)站管理員、競爭對手等)在您的 網(wǎng)站 上施加一些負面 SEO 元素(搜索引擎知道阻止這些元素),從而使您的 網(wǎng)站 排名更低,甚至獲得嚴懲。
在整個(gè)SEO網(wǎng)站優(yōu)化過(guò)程中,難免會(huì )有一些針對負面信息的優(yōu)化技巧。負面信息是真實(shí)的。一般來(lái)說(shuō),它會(huì )基于一些故意的反向鏈接和草率的電子郵件破壞你的網(wǎng)站,這將極大地影響你的網(wǎng)站排名、總流量和權重值。冒險。一般來(lái)說(shuō),負面信息SEO是一種法律糾葛,很可能對搜索引擎的知名度和收益造成損害。微信公眾號數據采集但是,在整個(gè)優(yōu)化過(guò)程中,可以防止負面的SEO。如何預防?一般來(lái)說(shuō),SEO網(wǎng)站的負面信息都會(huì )被競爭對手阻止。這是在另一個(gè) 網(wǎng)站 上完成的黑帽 SEO 技術(shù)。通常來(lái)說(shuō),一般來(lái)說(shuō),競爭對手對降低 網(wǎng)站 排名的 SEO 攻擊不滿(mǎn)意。然而,在大多數情況下,很多SEO優(yōu)化網(wǎng)站站長(cháng)想要遵循SEO優(yōu)化規范,卻不得不傷人心,堵人心。
難免會(huì )有人羨慕你的網(wǎng)站排名,用幾百個(gè)渣滓封殺你的網(wǎng)站,用不正確的評論吞下你的網(wǎng)站,或者馬上破譯你的網(wǎng)站@ >。微信公眾號數據采集注意你的網(wǎng)站速度。網(wǎng)站速度是一個(gè)非常有害的排名。如果你的網(wǎng)站越來(lái)越慢,你就得開(kāi)機很久了。你永遠不知道如何使用爬行工具來(lái)找到一切都不起作用的項目。如果你找不到他們,他們仍然不是很好,受害者可能就是你。大量爬網(wǎng)導致的 Web 服務(wù)器負載過(guò)重意味著(zhù)您的 網(wǎng)站 會(huì )變慢并崩潰。如果您認為自己是網(wǎng)絡(luò )爬蟲(chóng)攻擊的受害者,可以聯(lián)系您的服務(wù)器公司或 網(wǎng)站 管理員了解負載的來(lái)源。如果你擅長(cháng)技術(shù),你可以找到自己惹麻煩的人。

關(guān)于網(wǎng)站的優(yōu)化,大家應該都遇到過(guò)這樣的事情。我們努力做了一個(gè)網(wǎng)站,終于做出了網(wǎng)站的排名,但是不知怎的,網(wǎng)站的排名過(guò)了一段時(shí)間就下降了,而且排名很不穩定。在了解搜索引擎自然排名機制的基礎上,對網(wǎng)站進(jìn)行內外調整優(yōu)化,提高網(wǎng)站在搜索引擎中的關(guān)鍵詞自然排名,獲得更多流量,從而達到網(wǎng)站銷(xiāo)售和品牌建設的預期目的。為了從搜索引擎獲得更多的免費流量,應該從網(wǎng)站結構、內容建立計劃、用戶(hù)交互傳播、頁(yè)面等角度進(jìn)行合理規劃,同時(shí)也會(huì )使網(wǎng)站 @網(wǎng)站 搜索引擎中顯示的相關(guān)信息。它對用戶(hù)更具吸引力。下面小編就告訴大家我們如何穩定網(wǎng)站和優(yōu)化排名?
網(wǎng)站排名上升后,我們每天抽時(shí)間查看收錄和網(wǎng)站的排名狀態(tài),以及查看搜索引擎來(lái)不來(lái),查看網(wǎng)站當天更新內容還沒(méi)有收錄。關(guān)注競爭對手的網(wǎng)站,看看對手的網(wǎng)站有什么好主意。網(wǎng)站 的內容會(huì )及時(shí)更新。這是為了吸引蜘蛛去爬網(wǎng)站,從而增加網(wǎng)站的收錄,同時(shí)也提高了快照的更新速度。如果網(wǎng)站長(cháng)時(shí)間不更新,搜索引擎會(huì )認為這是一場(chǎng)致命的戰斗,從而降低你的網(wǎng)站排名,嚴重的甚至會(huì )被降級。
網(wǎng)站 的外部鏈接也很重要。一個(gè)好的外鏈是你網(wǎng)站排名的背景,所以我們需要增加網(wǎng)站外鏈的數量。網(wǎng)站查看和好友鏈通訊,查看我通訊的好友鏈是否被刪除,對方的網(wǎng)站是否可以正常打開(kāi),是否可以降級或暫停,是否及時(shí)出現加工。
解決方法:一文詳解JVM垃圾收集機制,動(dòng)圖幫你輕松理解大廠(chǎng)面試難點(diǎn)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 88 次瀏覽 ? 2022-10-03 07:18
前言
前面的文章介紹了 JVM 的體系結構和運行時(shí)數據區域(內存區域),本文章將介紹 JVM 的重點(diǎn) - 垃圾回收。眾所周知,相比C/C++等語(yǔ)言,Java可以省去手動(dòng)管理內存的繁瑣操作,極大地解放了Java程序員的工作效率,這是由于JVM的垃圾回收機制和內存分配策略。我們在編寫(xiě)程序時(shí)通常不會(huì )感覺(jué)到這一點(diǎn),但如果是在生產(chǎn)環(huán)境中,JVM的不同配置對服務(wù)器性能的影響非常大,因此掌握JVM調優(yōu)是高級Java工程師的必備技能。正如所謂的“基礎不扎實(shí),地在搖”,在此之前,我們先來(lái)了解一下底層的JVM垃圾回收機制。
由于您要介紹垃圾回收機制,因此需要澄清以下問(wèn)題:
哪些內存區域需要垃圾回收?
如何判斷物品是否可回收?
如何為新對象分配內存?
垃圾回收是如何完成的?
本文將通過(guò)以下結構進(jìn)行擴展,以逐一回答上述問(wèn)題。
需要垃圾回收的內存區域;
確定對象是否可恢復的方法;
主流垃圾回收算法介紹;
JVM 的內存分配和垃圾回收機制。
讓我們從正文開(kāi)始,或者用圖片和文字開(kāi)始舊食譜,然后走上去。
需要垃圾回收的一、內存區域
讓我們從回顧 JVM 的運行時(shí)數據區域開(kāi)始:
JVM 運行時(shí)數據范圍
其中,程序計數器、Java虛擬機棧和局部方法棧都是線(xiàn)程私有的,對應的線(xiàn)程是共生的,與線(xiàn)程同生,與線(xiàn)程同死,堆棧中的堆棧幀也隨著(zhù)方法的進(jìn)入和退出有序堆疊和輸出。因此,這些區域的內存分配和回收是非常確定的,并且在方法的末尾或線(xiàn)程的末尾,內存也會(huì )被釋放,因此無(wú)需考慮這些區域的內存回收問(wèn)題。
堆和方法區域為
不一樣,Java對象幾乎都是在堆上創(chuàng )建的,方法區存儲著(zhù)虛擬機加載的類(lèi)型信息、常量、靜態(tài)變量、編譯器編譯的代碼緩存等數據,而運行時(shí)常量池中的方法區存儲著(zhù)各種文字和符號引用,以上大部分數據都可以在運行時(shí)確定, 因此,需要動(dòng)態(tài)內存管理。
還應該注意的是,JVM中垃圾回收器的主要關(guān)注對象是Java堆,因為這里的垃圾回收的“性?xún)r(jià)比”最高,特別是在新一代(稍后在代際算法上描述)中,它可以一次回收70%-99%的內存。該方法區由于垃圾回收決策條件,特別是類(lèi)型卸載決策條件相當苛刻,其采集成本性能很低,所以一些垃圾采集器根本不支持或不完全支持垃圾采集的方法區域,如ZGC采集器在JDK 11中不支持類(lèi)型卸載。
二、確定對象是否可回收的方法2.1 引用計數
引用計數方法的實(shí)現很簡(jiǎn)單,向對象添加一個(gè)引用計數器,每次有對它的引用時(shí),計數器值就會(huì )遞增一個(gè);當引用失敗時(shí),計數器值減去1;任何具有零時(shí)間計數器的對象都不再可以使用。在大多數情況下,此方法有效,但在存在循環(huán)引用的情況下,引用計數是無(wú)能為力的。例如,在以下情況下:
public class Student {<br /> // friend 字段<br /> public Student friend = null;<br /> <br /> public static void test() {<br /> Student a = new Student();<br /> Student b = new Student();<br /> a.friend = b;<br /> b.friend = a;<br /> a = null;<br /> b = null;<br /> System.gc();<br /> }<br />}
上面的代碼創(chuàng )建了兩個(gè)a和b的Dentor實(shí)例,并將它們各自的友元字段分配給彼此,除此之外,這兩個(gè)對象沒(méi)有引用,然后將它們都分配給null,在這種情況下,這兩個(gè)對象不能再被訪(fǎng)問(wèn),但是因為它們相互引用,所以它們的引用計數不為零, 并且引用計數算法無(wú)法回收它們。如下圖所示:
循環(huán)引用
但是在Java程序中,a和b可以回收,因為JVM不使用引用計數來(lái)確定對象是否可回收,而是使用可訪(fǎng)問(wèn)性分析。
2.2 可達性分析
該算法的基本思想是使用一系列稱(chēng)為“GC Roots”的根對象作為起始節點(diǎn)集(GC Root Set),從這些節點(diǎn)開(kāi)始,根據參考關(guān)系向下搜索,搜索過(guò)程行進(jìn)的路徑稱(chēng)為“參考鏈”,如果對象和GC Roots之間沒(méi)有參考鏈, 這意味著(zhù)該物體不再使用,可以回收利用。要執行可訪(fǎng)問(wèn)性分析,您需要首先枚舉根節點(diǎn)(GC Roots),并且在枚舉根節點(diǎn)的過(guò)程中,為了防止對象的引用關(guān)系發(fā)生變化,需要暫停所有用戶(hù)線(xiàn)程(垃圾回收以外的線(xiàn)程),并調用暫停所有用戶(hù)線(xiàn)程的這種行為(停止世界)??蛇_性分析方法如下圖所示:
可達性分析
圖中的綠色是 GC 根集中的 GC 根,與它們關(guān)聯(lián)的所有對象都是可訪(fǎng)問(wèn)的并標記為藍色,而所有與它們沒(méi)有關(guān)聯(lián)的對象都是不可訪(fǎng)問(wèn)的,并標記為灰色。即使無(wú)法訪(fǎng)問(wèn)的對象也不一定被回收,如果對象同時(shí)滿(mǎn)足以下條件,則仍有可能“逃脫”:
對象具有重寫(xiě)的終止() 方法(Object 類(lèi)中的方法);
最終化()方法將自身鏈接到參考鏈;
合資管理公司
以前沒(méi)有調用對象的 finalizize() 方法(因為 JVM 在采集可回收對象時(shí)只調用對象的 finalizize() 方法一次)。
但是,由于 finalizize() 方法的運行成本高昂、不確定且不保證調用各個(gè)對象的順序,因此不建議使用此方法。那么,GC根在哪里是神圣的呢?在 Java 語(yǔ)言中,可用作 GC 根的固定對象包括:
虛擬機堆棧中引用的對象(堆棧幀中的局部變量表),例如每個(gè)被調用的線(xiàn)程在方法堆棧中使用的參數、局部變量、臨時(shí)變量等。
方法區域中類(lèi)的靜態(tài)屬性所引用的對象,例如 Java 類(lèi)的引用類(lèi)型的靜態(tài)變量。
由方法區域中的常量引用的對象,如字符串表中的引用。
本地方法堆棧中 JNI(通常稱(chēng)為本機方法)引用的對象。
Java 虛擬機內部的引用,例如與基元數據類(lèi)型對應的類(lèi)對象、一些常見(jiàn)的異常對象(例如
空點(diǎn)訪(fǎng)問(wèn)、內存輸出錯誤等,以及系統類(lèi)加載程序。
同步關(guān)鍵字保存的所有對象。
JM XBean、在 JVM TI 中注冊的回調、反映 Java 虛擬機內部條件的本地代碼高速緩存等。
三、垃圾回收算法引入了3.1 標記清除算法
標簽清除算法的思想很簡(jiǎn)單,顧名思義,該算法的過(guò)程分為兩個(gè)階段:首先標記出所有需要回收的對象,其中標記過(guò)程是使用可訪(fǎng)問(wèn)性分析來(lái)確定對象是否為垃圾的過(guò)程。標記完成后,所有標記的對象被統一回收,幸存的對象也可以反向標記,所有未標記的對象都被統一回收。原理圖如下:
標簽清除算法
雖然這種算法很簡(jiǎn)單,但它有兩個(gè)明顯的缺點(diǎn):
執行效率不穩定。如果Java堆收錄大量對象,并且大部分需要回收,則必須執行大量的標記和清除操作,導致標記和清除過(guò)程的執行效率隨著(zhù)對象數量的增加而降低;
導致內存空間碎片。標記和清理后,會(huì )出現大量不連續的內存碎片,過(guò)多的空間碎片可能導致將來(lái)在程序運行期間需要分配大對象時(shí)找不到足夠的連續內存,不得不提前觸發(fā)另一次垃圾回收操作,極大地影響了程序運行效率。
3.2 標簽復制算法
標簽復制算法,
通常被稱(chēng)為復制算法,解決了在面對大量可回收對象時(shí)標簽清除算法執行效率低下的問(wèn)題。實(shí)現也很容易理解:在可用內存中劃分兩個(gè)相同大小的區域,一次只使用其中一個(gè),另一個(gè)塊保持空閑狀態(tài),當第一個(gè)塊用完時(shí),所有幸存的對象都被復制到第二個(gè)區域,然后第一個(gè)塊全部清空。如下圖所示:
標記復制算法
此算法是
非常適合低對象生存,因為它只關(guān)注幸存的對象,而不關(guān)心可回收的對象,因此該算法用于JVM中的新一代垃圾回收。但是,它的缺點(diǎn)也很明顯,每次都浪費一半的內存太奢侈了,但是JVM中的新一代內存劃分更加精細,這更好地解決了這個(gè)問(wèn)題,見(jiàn)下文。
3.3 標簽組織算法
該算法完美地解決了標記清理算法的空間碎片化問(wèn)題,其標記過(guò)程與“標記干凈”算法相同,但下一步不是直接清理可回收對象,而是讓所有幸存的對象移動(dòng)到內存空間端,然后直接清理邊界外的內存。
標記排序規則算法
雖然這種算法可以很好地解決空間碎片的問(wèn)題,但每次垃圾回收都需要移動(dòng)幸存的對象,更新引用這些對象的地方,并且對象移動(dòng)的操作也需要在整個(gè)過(guò)程中暫停用戶(hù)線(xiàn)程(Stop The World)。
3.4 代際采集算法
與其說(shuō)它是一種算法,不如說(shuō)是一種理論。今天的大多數虛擬機實(shí)現都是根據“代際采集”理論設計的,這可以被視為經(jīng)驗性的,因為開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中發(fā)現,JVM中幸存對象的數量與其年齡之間存在一定的規律,如下所示
?。?br />
JVM 中幸存對象的數量與年齡之間的關(guān)系
在此基礎上,提出了以下假設:
絕大多數物體都是生死的。
一個(gè)物體在垃圾回收過(guò)程中存活的次數越多,它就越難死亡。
根據這兩個(gè)假設,JVM的堆內存大致可以分為新一代和舊時(shí)代,大多數新一代對象都有很短的生存時(shí)間,每次恢復只關(guān)心如何保留少量的生存,而不是標記大量將被回收的物體, 你可以以較低的成本回收到大量的空間,所以這個(gè)區域一般使用標記復制算法進(jìn)行垃圾回收,頻率比較高。過(guò)去是一些難以死亡的對象,垃圾采集可以使用標記清理和標記分類(lèi)算法進(jìn)行,并且頻率可以更低。
根據熱點(diǎn)虛擬機的實(shí)現情況,新一代和老一代的垃圾回收分為不同的類(lèi)型,并且有不同的術(shù)語(yǔ),如下所示:
部分 GC:指目標不是 完全采集的垃圾回收
整個(gè)Java堆,它分為:次要GC/年輕GC:指目標只是新一代的垃圾回收。主要GC/Old GC:指僅針對老年人的垃圾采集,目前只有cms采集器的并發(fā)采集階段是單獨采集老年人的行為?;旌螱C:目標是從整個(gè)新一代以及一些舊一代中采集垃圾回收,目前只有G1采集器才能實(shí)踐。
完整 GC:從整個(gè) Java 堆和方法區域采集垃圾回收。
人們經(jīng)?;煜齅ajor GC和全GC,但這也是可以理解的,因為這兩種GC行為都包括老年垃圾回收,而單獨的Major GC采集相對較少,在大多數情況下,只要收錄老年采集,就會(huì )是一個(gè)完整的GC,但最好區分一下。
四、 JVM 的內存分配和垃圾回收機制
在之前的準備之后,現在終于可以瞥見(jiàn)JVM的內存分配和垃圾回收機制。
4. 1 JVM 堆內存的劃分
JVM 堆內存分區,不再從 Java 8 開(kāi)始永久生成
Java 堆是由 JVM 管理的最大內存塊,也是垃圾回收器的管理區域。大多數垃圾采集器將堆內存劃分為上圖所示的幾個(gè)區域,整體分為新生代和舊,比例為1:2,新生代進(jìn)一步分為伊甸園,從幸存者和到幸存者,默認比例為8:1:1,請注意,您可以通過(guò)SvivorRatio參數進(jìn)行設置。請注意,從 JDK 8 開(kāi)始,JVM 中不再有永久世代的概念。無(wú)論 Java 堆上的區域如何,都只存儲對象的實(shí)例,而細分 Java 堆的目的只是為了更好地回收內存,或者更快地分配內存。
4.2 代際采集原理4.2.1 新生代物品的分配和采集
在大多數情況下,對象優(yōu)先分配在新生代伊甸園區域中,當 Eden 區域沒(méi)有足夠的空間進(jìn)行分配時(shí),虛擬機會(huì )啟動(dòng)次要 GC。伊甸園、從幸存者和幸存者的比例是8:1:1,這是因為絕大多數物體都在死亡,伊甸園在垃圾采集過(guò)程中幸存下來(lái)的物體數量不太大,幸存者空間也足夠小,每個(gè)新生代的可用記憶空間是整個(gè)新生代容量的90%(伊甸園的80%加上To的10%)。幸存者),只有來(lái)自幸存者的空間,或新一代的10%,被“浪費”。它不會(huì )像原創(chuàng )標記復制算法那樣浪費一半的內存空間?!靶掖嬲摺焙汀爸滦掖嬲摺敝械目崭癫皇枪潭ǖ?,而是在 S0 和 S1 之間動(dòng)態(tài)轉換的,第一個(gè)小 GC 選擇 S1 作為“到幸存者”,并將 Eden 中幸存的對象復制到其中,將對象的年齡增加 1,請注意,新一代使用的垃圾回收算法是標記復制算法的改進(jìn)版本。下面是一個(gè)示意圖,注意顏色變化的第一步是為了突出,虛擬機只做標記活體的操作。
第一個(gè)小氣相色譜的示意圖
在隨后的小指導性案例中,S0和S1交替轉換為“從幸存者”和“幸存者”,而《伊甸園》和“幸存者”中的幸存對象被復制到“幸存者”中,年齡增加1。如下圖所示:
后續次要 GC 原理圖
4.2.2 升入老年的物品
在這些情況下,受試者將被提升到老年。
長(cháng)期幸存者將進(jìn)入老年
每當一個(gè)物體在幸存者區域中的小GC中存活時(shí),它的年齡就會(huì )增加1年,當它的年齡增加到一定水平(默認為15)時(shí),它就會(huì )被提升到中年。對象前進(jìn)到老年的年齡閾值可以通過(guò)參數-XX:MaxTenuringThreshold設置,此參數的最大值為15,因為對象年齡信息存儲在對象頭中,占4位內存,最大可以表示的數量是15。
促進(jìn)長(cháng)期幸存者進(jìn)入老年的示意圖
2.大型物品可以直接進(jìn)入老年
對于大型對象,尤其是長(cháng)字符串,或具有大量元素的數組,如果在 Eden 中分配,很容易過(guò)早地填滿(mǎn) Eden 空間,從而導致次要 GC,并且還存在較大的內存復制開(kāi)銷(xiāo),用于在 Eden 和兩個(gè)幸存者之間來(lái)回復制。因此,我們可以通過(guò)設置虛擬機參數 -XX:預縮文件大小閾值來(lái)讓大型對象直接進(jìn)入舊時(shí)代。
3.動(dòng)態(tài)對象的時(shí)代
為了更好地適應不同程序的內存條件,熱點(diǎn)虛擬機并不總是要求物體的年齡必須達到-XX:MaxTenuringThreshold才能提升到老年,如果幸存者空間中所有相同年齡的對象大小之和大于幸存者空間的一半, 大于或等于年齡的對象可以直接進(jìn)入老年,而不必等到 -XX:最大收縮閾值中所需的年齡。
4.處理促銷(xiāo)
當幸存者空間不足以容納在次要GC之后存活的物體時(shí),它依靠其他內存區域(實(shí)際上,在大多數情況下,是老年)進(jìn)行分配保證。在次要GC發(fā)生之前,虛擬機必須首先檢查舊時(shí)代的最大可用連續空間是否大于新一代中所有對象的總空間,如果此條件為真,那么這次次要GC可以保證是安全的。如果沒(méi)有,虛擬機首先檢查-XX:處理升級失敗參數的設置值是否允許處理提升失敗;如果允許,它將繼續檢查老年人的最大可用連續空間是否大于過(guò)去晉升為老年的對象的平均大小,如果大于,將嘗試次要GC,盡管這次次要GC是有風(fēng)險的;如果小于或 -XX:處理升級失敗設置不允許冒險,則應改為執行完整 GC。
小技巧:掌握吸引蜘蛛的四大技巧,輕松增加SEO優(yōu)化的收錄量
SEO優(yōu)化作為一種實(shí)用的推廣手段,是近年來(lái)企業(yè)宣傳的必備條件。但是,即使你做SEO一樣,你也可能不一樣,有些人有更多的網(wǎng)站收錄,幾十萬(wàn),有些人收錄很少,甚至一頁(yè),后者顯然比前者遭受的損失更大。那么,如何提高網(wǎng)頁(yè)收錄呢?如何讓蜘蛛抓取更多網(wǎng)站頁(yè)面?以下是與您分享的四個(gè)技巧。
技能一、合理穩定地提高網(wǎng)站基本體重
高重量的蜘蛛經(jīng)常抓取,而低重量的蜘蛛以較低的速度爬行。如果想讓蜘蛛抓得更多,就得考慮增加網(wǎng)站的重量,新站的重量很容易達到1,只要網(wǎng)站質(zhì)量通過(guò),技術(shù)是有規律的,達到重量1的速度非???,至于從1到2, 它要慢得多。不過(guò),對于SEO網(wǎng)站管理員來(lái)說(shuō),這也足夠了。
提示二、網(wǎng)站內容更新頻率合理
蜘蛛總是喜歡更新頻率高的網(wǎng)站,因為它們每天都會(huì )來(lái)抓,如果你的更新頻率降低,蜘蛛會(huì )隨著(zhù)時(shí)間的推移而變得懶惰。當然,如果能每天更新定點(diǎn)就更好了,通過(guò)日志分析,你會(huì )發(fā)現蜘蛛會(huì )多次來(lái)到這個(gè)點(diǎn)。當然,如果您不知道蜘蛛何時(shí)會(huì )爬行,擔心您的更新無(wú)效,建議您通過(guò)日志分析獲取蜘蛛的抓取規則,這樣可以更方便蜘蛛抓取收錄頁(yè)面。當然,蜘蛛每次抓取頁(yè)面都會(huì )在數據庫中存在,下次抓取時(shí)會(huì )比較之前的數據,如果沒(méi)有更新,蜘蛛會(huì )降低抓取的頻率,甚至不抓取。隨著(zhù)時(shí)間的流逝,蜘蛛將不再光顧你的網(wǎng)站。如果你之前網(wǎng)站更新得很低,現在想提高收錄,讓蜘蛛抓得更多,建議在固定更新頻率的基礎上,給一些文章發(fā)送一些網(wǎng)站鏈接,這樣蜘蛛就可以被引到你的網(wǎng)站,增加爬行的機會(huì )。
提示三、朋友鏈和外部鏈接選擇最好的
很多SEO優(yōu)化者覺(jué)得做優(yōu)化就是做外部鏈接,所以不管站內,一味追求站外。這種發(fā)送大量反向鏈接的做法在開(kāi)始時(shí)確實(shí)產(chǎn)生了一定的效果,但是隨著(zhù)算法的變化,現在已經(jīng)沒(méi)有效果了。當然1,反向鏈接有利于網(wǎng)站排名和收錄,適當地添加反向鏈接對網(wǎng)站有好處。但是,做SEO并不像發(fā)送外部鏈接那么簡(jiǎn)單,有能力的SEO優(yōu)化器,即使不發(fā)送外部鏈接,也可以有很好的排名,這就是為什么一些網(wǎng)站優(yōu)化器覺(jué)得外部鏈接沒(méi)用的原因。如果你想讓蜘蛛知道你網(wǎng)站鏈接,你需要去一些蜘蛛經(jīng)常爬行的地方放網(wǎng)站鏈接,比如百度有專(zhuān)門(mén)的網(wǎng)站鏈接提交平臺,它提交網(wǎng)站鏈接,幫助蜘蛛抓取收錄。你也可以在貼吧和其他地方發(fā)布鏈接,至于你是否可以保留它取決于個(gè)人技能。至于好友鏈,它是一種外部鏈接,但實(shí)際效果比外部鏈接高,因為好友鏈往往是一些排名相似的相關(guān)鏈接,帶來(lái)更多的權重和好處。
技巧四、科學(xué)地控制對頁(yè)面的訪(fǎng)問(wèn)深度
一方面,深度越深,
對于用戶(hù)來(lái)說(shuō),搜索和點(diǎn)擊越困難,另一方面,蜘蛛爬行并不容易,更不用說(shuō)收錄了,所以通常,每個(gè)人都會(huì )控制目錄的第二和第三層的頁(yè)面深度,而不是沒(méi)有。當然,也有一些深度比較大的網(wǎng)站收錄,往往是行業(yè)網(wǎng)絡(luò )或者門(mén)戶(hù)網(wǎng)絡(luò ),單個(gè)企業(yè)站點(diǎn)能做的很少。
看完這四點(diǎn),不知道你有沒(méi)有掌握網(wǎng)站 收錄爬行的技巧?這里也提醒大家,蜘蛛喜歡高質(zhì)量的原創(chuàng )文章,盡量更新高質(zhì)量的原創(chuàng )文章,增加收錄好。 查看全部
解決方法:一文詳解JVM垃圾收集機制,動(dòng)圖幫你輕松理解大廠(chǎng)面試難點(diǎn)
前言
前面的文章介紹了 JVM 的體系結構和運行時(shí)數據區域(內存區域),本文章將介紹 JVM 的重點(diǎn) - 垃圾回收。眾所周知,相比C/C++等語(yǔ)言,Java可以省去手動(dòng)管理內存的繁瑣操作,極大地解放了Java程序員的工作效率,這是由于JVM的垃圾回收機制和內存分配策略。我們在編寫(xiě)程序時(shí)通常不會(huì )感覺(jué)到這一點(diǎn),但如果是在生產(chǎn)環(huán)境中,JVM的不同配置對服務(wù)器性能的影響非常大,因此掌握JVM調優(yōu)是高級Java工程師的必備技能。正如所謂的“基礎不扎實(shí),地在搖”,在此之前,我們先來(lái)了解一下底層的JVM垃圾回收機制。
由于您要介紹垃圾回收機制,因此需要澄清以下問(wèn)題:
哪些內存區域需要垃圾回收?
如何判斷物品是否可回收?
如何為新對象分配內存?
垃圾回收是如何完成的?
本文將通過(guò)以下結構進(jìn)行擴展,以逐一回答上述問(wèn)題。
需要垃圾回收的內存區域;
確定對象是否可恢復的方法;
主流垃圾回收算法介紹;
JVM 的內存分配和垃圾回收機制。
讓我們從正文開(kāi)始,或者用圖片和文字開(kāi)始舊食譜,然后走上去。
需要垃圾回收的一、內存區域
讓我們從回顧 JVM 的運行時(shí)數據區域開(kāi)始:
JVM 運行時(shí)數據范圍
其中,程序計數器、Java虛擬機棧和局部方法棧都是線(xiàn)程私有的,對應的線(xiàn)程是共生的,與線(xiàn)程同生,與線(xiàn)程同死,堆棧中的堆棧幀也隨著(zhù)方法的進(jìn)入和退出有序堆疊和輸出。因此,這些區域的內存分配和回收是非常確定的,并且在方法的末尾或線(xiàn)程的末尾,內存也會(huì )被釋放,因此無(wú)需考慮這些區域的內存回收問(wèn)題。
堆和方法區域為
不一樣,Java對象幾乎都是在堆上創(chuàng )建的,方法區存儲著(zhù)虛擬機加載的類(lèi)型信息、常量、靜態(tài)變量、編譯器編譯的代碼緩存等數據,而運行時(shí)常量池中的方法區存儲著(zhù)各種文字和符號引用,以上大部分數據都可以在運行時(shí)確定, 因此,需要動(dòng)態(tài)內存管理。
還應該注意的是,JVM中垃圾回收器的主要關(guān)注對象是Java堆,因為這里的垃圾回收的“性?xún)r(jià)比”最高,特別是在新一代(稍后在代際算法上描述)中,它可以一次回收70%-99%的內存。該方法區由于垃圾回收決策條件,特別是類(lèi)型卸載決策條件相當苛刻,其采集成本性能很低,所以一些垃圾采集器根本不支持或不完全支持垃圾采集的方法區域,如ZGC采集器在JDK 11中不支持類(lèi)型卸載。
二、確定對象是否可回收的方法2.1 引用計數
引用計數方法的實(shí)現很簡(jiǎn)單,向對象添加一個(gè)引用計數器,每次有對它的引用時(shí),計數器值就會(huì )遞增一個(gè);當引用失敗時(shí),計數器值減去1;任何具有零時(shí)間計數器的對象都不再可以使用。在大多數情況下,此方法有效,但在存在循環(huán)引用的情況下,引用計數是無(wú)能為力的。例如,在以下情況下:
public class Student {<br /> // friend 字段<br /> public Student friend = null;<br /> <br /> public static void test() {<br /> Student a = new Student();<br /> Student b = new Student();<br /> a.friend = b;<br /> b.friend = a;<br /> a = null;<br /> b = null;<br /> System.gc();<br /> }<br />}
上面的代碼創(chuàng )建了兩個(gè)a和b的Dentor實(shí)例,并將它們各自的友元字段分配給彼此,除此之外,這兩個(gè)對象沒(méi)有引用,然后將它們都分配給null,在這種情況下,這兩個(gè)對象不能再被訪(fǎng)問(wèn),但是因為它們相互引用,所以它們的引用計數不為零, 并且引用計數算法無(wú)法回收它們。如下圖所示:
循環(huán)引用
但是在Java程序中,a和b可以回收,因為JVM不使用引用計數來(lái)確定對象是否可回收,而是使用可訪(fǎng)問(wèn)性分析。
2.2 可達性分析
該算法的基本思想是使用一系列稱(chēng)為“GC Roots”的根對象作為起始節點(diǎn)集(GC Root Set),從這些節點(diǎn)開(kāi)始,根據參考關(guān)系向下搜索,搜索過(guò)程行進(jìn)的路徑稱(chēng)為“參考鏈”,如果對象和GC Roots之間沒(méi)有參考鏈, 這意味著(zhù)該物體不再使用,可以回收利用。要執行可訪(fǎng)問(wèn)性分析,您需要首先枚舉根節點(diǎn)(GC Roots),并且在枚舉根節點(diǎn)的過(guò)程中,為了防止對象的引用關(guān)系發(fā)生變化,需要暫停所有用戶(hù)線(xiàn)程(垃圾回收以外的線(xiàn)程),并調用暫停所有用戶(hù)線(xiàn)程的這種行為(停止世界)??蛇_性分析方法如下圖所示:
可達性分析
圖中的綠色是 GC 根集中的 GC 根,與它們關(guān)聯(lián)的所有對象都是可訪(fǎng)問(wèn)的并標記為藍色,而所有與它們沒(méi)有關(guān)聯(lián)的對象都是不可訪(fǎng)問(wèn)的,并標記為灰色。即使無(wú)法訪(fǎng)問(wèn)的對象也不一定被回收,如果對象同時(shí)滿(mǎn)足以下條件,則仍有可能“逃脫”:
對象具有重寫(xiě)的終止() 方法(Object 類(lèi)中的方法);

最終化()方法將自身鏈接到參考鏈;
合資管理公司
以前沒(méi)有調用對象的 finalizize() 方法(因為 JVM 在采集可回收對象時(shí)只調用對象的 finalizize() 方法一次)。
但是,由于 finalizize() 方法的運行成本高昂、不確定且不保證調用各個(gè)對象的順序,因此不建議使用此方法。那么,GC根在哪里是神圣的呢?在 Java 語(yǔ)言中,可用作 GC 根的固定對象包括:
虛擬機堆棧中引用的對象(堆棧幀中的局部變量表),例如每個(gè)被調用的線(xiàn)程在方法堆棧中使用的參數、局部變量、臨時(shí)變量等。
方法區域中類(lèi)的靜態(tài)屬性所引用的對象,例如 Java 類(lèi)的引用類(lèi)型的靜態(tài)變量。
由方法區域中的常量引用的對象,如字符串表中的引用。
本地方法堆棧中 JNI(通常稱(chēng)為本機方法)引用的對象。
Java 虛擬機內部的引用,例如與基元數據類(lèi)型對應的類(lèi)對象、一些常見(jiàn)的異常對象(例如
空點(diǎn)訪(fǎng)問(wèn)、內存輸出錯誤等,以及系統類(lèi)加載程序。
同步關(guān)鍵字保存的所有對象。
JM XBean、在 JVM TI 中注冊的回調、反映 Java 虛擬機內部條件的本地代碼高速緩存等。
三、垃圾回收算法引入了3.1 標記清除算法
標簽清除算法的思想很簡(jiǎn)單,顧名思義,該算法的過(guò)程分為兩個(gè)階段:首先標記出所有需要回收的對象,其中標記過(guò)程是使用可訪(fǎng)問(wèn)性分析來(lái)確定對象是否為垃圾的過(guò)程。標記完成后,所有標記的對象被統一回收,幸存的對象也可以反向標記,所有未標記的對象都被統一回收。原理圖如下:
標簽清除算法
雖然這種算法很簡(jiǎn)單,但它有兩個(gè)明顯的缺點(diǎn):
執行效率不穩定。如果Java堆收錄大量對象,并且大部分需要回收,則必須執行大量的標記和清除操作,導致標記和清除過(guò)程的執行效率隨著(zhù)對象數量的增加而降低;
導致內存空間碎片。標記和清理后,會(huì )出現大量不連續的內存碎片,過(guò)多的空間碎片可能導致將來(lái)在程序運行期間需要分配大對象時(shí)找不到足夠的連續內存,不得不提前觸發(fā)另一次垃圾回收操作,極大地影響了程序運行效率。
3.2 標簽復制算法
標簽復制算法,
通常被稱(chēng)為復制算法,解決了在面對大量可回收對象時(shí)標簽清除算法執行效率低下的問(wèn)題。實(shí)現也很容易理解:在可用內存中劃分兩個(gè)相同大小的區域,一次只使用其中一個(gè),另一個(gè)塊保持空閑狀態(tài),當第一個(gè)塊用完時(shí),所有幸存的對象都被復制到第二個(gè)區域,然后第一個(gè)塊全部清空。如下圖所示:
標記復制算法
此算法是
非常適合低對象生存,因為它只關(guān)注幸存的對象,而不關(guān)心可回收的對象,因此該算法用于JVM中的新一代垃圾回收。但是,它的缺點(diǎn)也很明顯,每次都浪費一半的內存太奢侈了,但是JVM中的新一代內存劃分更加精細,這更好地解決了這個(gè)問(wèn)題,見(jiàn)下文。
3.3 標簽組織算法
該算法完美地解決了標記清理算法的空間碎片化問(wèn)題,其標記過(guò)程與“標記干凈”算法相同,但下一步不是直接清理可回收對象,而是讓所有幸存的對象移動(dòng)到內存空間端,然后直接清理邊界外的內存。
標記排序規則算法
雖然這種算法可以很好地解決空間碎片的問(wèn)題,但每次垃圾回收都需要移動(dòng)幸存的對象,更新引用這些對象的地方,并且對象移動(dòng)的操作也需要在整個(gè)過(guò)程中暫停用戶(hù)線(xiàn)程(Stop The World)。
3.4 代際采集算法
與其說(shuō)它是一種算法,不如說(shuō)是一種理論。今天的大多數虛擬機實(shí)現都是根據“代際采集”理論設計的,這可以被視為經(jīng)驗性的,因為開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中發(fā)現,JVM中幸存對象的數量與其年齡之間存在一定的規律,如下所示
?。?br />

JVM 中幸存對象的數量與年齡之間的關(guān)系
在此基礎上,提出了以下假設:
絕大多數物體都是生死的。
一個(gè)物體在垃圾回收過(guò)程中存活的次數越多,它就越難死亡。
根據這兩個(gè)假設,JVM的堆內存大致可以分為新一代和舊時(shí)代,大多數新一代對象都有很短的生存時(shí)間,每次恢復只關(guān)心如何保留少量的生存,而不是標記大量將被回收的物體, 你可以以較低的成本回收到大量的空間,所以這個(gè)區域一般使用標記復制算法進(jìn)行垃圾回收,頻率比較高。過(guò)去是一些難以死亡的對象,垃圾采集可以使用標記清理和標記分類(lèi)算法進(jìn)行,并且頻率可以更低。
根據熱點(diǎn)虛擬機的實(shí)現情況,新一代和老一代的垃圾回收分為不同的類(lèi)型,并且有不同的術(shù)語(yǔ),如下所示:
部分 GC:指目標不是 完全采集的垃圾回收
整個(gè)Java堆,它分為:次要GC/年輕GC:指目標只是新一代的垃圾回收。主要GC/Old GC:指僅針對老年人的垃圾采集,目前只有cms采集器的并發(fā)采集階段是單獨采集老年人的行為?;旌螱C:目標是從整個(gè)新一代以及一些舊一代中采集垃圾回收,目前只有G1采集器才能實(shí)踐。
完整 GC:從整個(gè) Java 堆和方法區域采集垃圾回收。
人們經(jīng)?;煜齅ajor GC和全GC,但這也是可以理解的,因為這兩種GC行為都包括老年垃圾回收,而單獨的Major GC采集相對較少,在大多數情況下,只要收錄老年采集,就會(huì )是一個(gè)完整的GC,但最好區分一下。
四、 JVM 的內存分配和垃圾回收機制
在之前的準備之后,現在終于可以瞥見(jiàn)JVM的內存分配和垃圾回收機制。
4. 1 JVM 堆內存的劃分
JVM 堆內存分區,不再從 Java 8 開(kāi)始永久生成
Java 堆是由 JVM 管理的最大內存塊,也是垃圾回收器的管理區域。大多數垃圾采集器將堆內存劃分為上圖所示的幾個(gè)區域,整體分為新生代和舊,比例為1:2,新生代進(jìn)一步分為伊甸園,從幸存者和到幸存者,默認比例為8:1:1,請注意,您可以通過(guò)SvivorRatio參數進(jìn)行設置。請注意,從 JDK 8 開(kāi)始,JVM 中不再有永久世代的概念。無(wú)論 Java 堆上的區域如何,都只存儲對象的實(shí)例,而細分 Java 堆的目的只是為了更好地回收內存,或者更快地分配內存。
4.2 代際采集原理4.2.1 新生代物品的分配和采集
在大多數情況下,對象優(yōu)先分配在新生代伊甸園區域中,當 Eden 區域沒(méi)有足夠的空間進(jìn)行分配時(shí),虛擬機會(huì )啟動(dòng)次要 GC。伊甸園、從幸存者和幸存者的比例是8:1:1,這是因為絕大多數物體都在死亡,伊甸園在垃圾采集過(guò)程中幸存下來(lái)的物體數量不太大,幸存者空間也足夠小,每個(gè)新生代的可用記憶空間是整個(gè)新生代容量的90%(伊甸園的80%加上To的10%)。幸存者),只有來(lái)自幸存者的空間,或新一代的10%,被“浪費”。它不會(huì )像原創(chuàng )標記復制算法那樣浪費一半的內存空間?!靶掖嬲摺焙汀爸滦掖嬲摺敝械目崭癫皇枪潭ǖ?,而是在 S0 和 S1 之間動(dòng)態(tài)轉換的,第一個(gè)小 GC 選擇 S1 作為“到幸存者”,并將 Eden 中幸存的對象復制到其中,將對象的年齡增加 1,請注意,新一代使用的垃圾回收算法是標記復制算法的改進(jìn)版本。下面是一個(gè)示意圖,注意顏色變化的第一步是為了突出,虛擬機只做標記活體的操作。
第一個(gè)小氣相色譜的示意圖
在隨后的小指導性案例中,S0和S1交替轉換為“從幸存者”和“幸存者”,而《伊甸園》和“幸存者”中的幸存對象被復制到“幸存者”中,年齡增加1。如下圖所示:
后續次要 GC 原理圖
4.2.2 升入老年的物品
在這些情況下,受試者將被提升到老年。
長(cháng)期幸存者將進(jìn)入老年
每當一個(gè)物體在幸存者區域中的小GC中存活時(shí),它的年齡就會(huì )增加1年,當它的年齡增加到一定水平(默認為15)時(shí),它就會(huì )被提升到中年。對象前進(jìn)到老年的年齡閾值可以通過(guò)參數-XX:MaxTenuringThreshold設置,此參數的最大值為15,因為對象年齡信息存儲在對象頭中,占4位內存,最大可以表示的數量是15。
促進(jìn)長(cháng)期幸存者進(jìn)入老年的示意圖
2.大型物品可以直接進(jìn)入老年
對于大型對象,尤其是長(cháng)字符串,或具有大量元素的數組,如果在 Eden 中分配,很容易過(guò)早地填滿(mǎn) Eden 空間,從而導致次要 GC,并且還存在較大的內存復制開(kāi)銷(xiāo),用于在 Eden 和兩個(gè)幸存者之間來(lái)回復制。因此,我們可以通過(guò)設置虛擬機參數 -XX:預縮文件大小閾值來(lái)讓大型對象直接進(jìn)入舊時(shí)代。
3.動(dòng)態(tài)對象的時(shí)代
為了更好地適應不同程序的內存條件,熱點(diǎn)虛擬機并不總是要求物體的年齡必須達到-XX:MaxTenuringThreshold才能提升到老年,如果幸存者空間中所有相同年齡的對象大小之和大于幸存者空間的一半, 大于或等于年齡的對象可以直接進(jìn)入老年,而不必等到 -XX:最大收縮閾值中所需的年齡。
4.處理促銷(xiāo)
當幸存者空間不足以容納在次要GC之后存活的物體時(shí),它依靠其他內存區域(實(shí)際上,在大多數情況下,是老年)進(jìn)行分配保證。在次要GC發(fā)生之前,虛擬機必須首先檢查舊時(shí)代的最大可用連續空間是否大于新一代中所有對象的總空間,如果此條件為真,那么這次次要GC可以保證是安全的。如果沒(méi)有,虛擬機首先檢查-XX:處理升級失敗參數的設置值是否允許處理提升失敗;如果允許,它將繼續檢查老年人的最大可用連續空間是否大于過(guò)去晉升為老年的對象的平均大小,如果大于,將嘗試次要GC,盡管這次次要GC是有風(fēng)險的;如果小于或 -XX:處理升級失敗設置不允許冒險,則應改為執行完整 GC。
小技巧:掌握吸引蜘蛛的四大技巧,輕松增加SEO優(yōu)化的收錄量
SEO優(yōu)化作為一種實(shí)用的推廣手段,是近年來(lái)企業(yè)宣傳的必備條件。但是,即使你做SEO一樣,你也可能不一樣,有些人有更多的網(wǎng)站收錄,幾十萬(wàn),有些人收錄很少,甚至一頁(yè),后者顯然比前者遭受的損失更大。那么,如何提高網(wǎng)頁(yè)收錄呢?如何讓蜘蛛抓取更多網(wǎng)站頁(yè)面?以下是與您分享的四個(gè)技巧。
技能一、合理穩定地提高網(wǎng)站基本體重
高重量的蜘蛛經(jīng)常抓取,而低重量的蜘蛛以較低的速度爬行。如果想讓蜘蛛抓得更多,就得考慮增加網(wǎng)站的重量,新站的重量很容易達到1,只要網(wǎng)站質(zhì)量通過(guò),技術(shù)是有規律的,達到重量1的速度非???,至于從1到2, 它要慢得多。不過(guò),對于SEO網(wǎng)站管理員來(lái)說(shuō),這也足夠了。

提示二、網(wǎng)站內容更新頻率合理
蜘蛛總是喜歡更新頻率高的網(wǎng)站,因為它們每天都會(huì )來(lái)抓,如果你的更新頻率降低,蜘蛛會(huì )隨著(zhù)時(shí)間的推移而變得懶惰。當然,如果能每天更新定點(diǎn)就更好了,通過(guò)日志分析,你會(huì )發(fā)現蜘蛛會(huì )多次來(lái)到這個(gè)點(diǎn)。當然,如果您不知道蜘蛛何時(shí)會(huì )爬行,擔心您的更新無(wú)效,建議您通過(guò)日志分析獲取蜘蛛的抓取規則,這樣可以更方便蜘蛛抓取收錄頁(yè)面。當然,蜘蛛每次抓取頁(yè)面都會(huì )在數據庫中存在,下次抓取時(shí)會(huì )比較之前的數據,如果沒(méi)有更新,蜘蛛會(huì )降低抓取的頻率,甚至不抓取。隨著(zhù)時(shí)間的流逝,蜘蛛將不再光顧你的網(wǎng)站。如果你之前網(wǎng)站更新得很低,現在想提高收錄,讓蜘蛛抓得更多,建議在固定更新頻率的基礎上,給一些文章發(fā)送一些網(wǎng)站鏈接,這樣蜘蛛就可以被引到你的網(wǎng)站,增加爬行的機會(huì )。
提示三、朋友鏈和外部鏈接選擇最好的
很多SEO優(yōu)化者覺(jué)得做優(yōu)化就是做外部鏈接,所以不管站內,一味追求站外。這種發(fā)送大量反向鏈接的做法在開(kāi)始時(shí)確實(shí)產(chǎn)生了一定的效果,但是隨著(zhù)算法的變化,現在已經(jīng)沒(méi)有效果了。當然1,反向鏈接有利于網(wǎng)站排名和收錄,適當地添加反向鏈接對網(wǎng)站有好處。但是,做SEO并不像發(fā)送外部鏈接那么簡(jiǎn)單,有能力的SEO優(yōu)化器,即使不發(fā)送外部鏈接,也可以有很好的排名,這就是為什么一些網(wǎng)站優(yōu)化器覺(jué)得外部鏈接沒(méi)用的原因。如果你想讓蜘蛛知道你網(wǎng)站鏈接,你需要去一些蜘蛛經(jīng)常爬行的地方放網(wǎng)站鏈接,比如百度有專(zhuān)門(mén)的網(wǎng)站鏈接提交平臺,它提交網(wǎng)站鏈接,幫助蜘蛛抓取收錄。你也可以在貼吧和其他地方發(fā)布鏈接,至于你是否可以保留它取決于個(gè)人技能。至于好友鏈,它是一種外部鏈接,但實(shí)際效果比外部鏈接高,因為好友鏈往往是一些排名相似的相關(guān)鏈接,帶來(lái)更多的權重和好處。

技巧四、科學(xué)地控制對頁(yè)面的訪(fǎng)問(wèn)深度
一方面,深度越深,
對于用戶(hù)來(lái)說(shuō),搜索和點(diǎn)擊越困難,另一方面,蜘蛛爬行并不容易,更不用說(shuō)收錄了,所以通常,每個(gè)人都會(huì )控制目錄的第二和第三層的頁(yè)面深度,而不是沒(méi)有。當然,也有一些深度比較大的網(wǎng)站收錄,往往是行業(yè)網(wǎng)絡(luò )或者門(mén)戶(hù)網(wǎng)絡(luò ),單個(gè)企業(yè)站點(diǎn)能做的很少。
看完這四點(diǎn),不知道你有沒(méi)有掌握網(wǎng)站 收錄爬行的技巧?這里也提醒大家,蜘蛛喜歡高質(zhì)量的原創(chuàng )文章,盡量更新高質(zhì)量的原創(chuàng )文章,增加收錄好。
分享:【文末贈書(shū)】紅隊攻防之信息收集總結
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 95 次瀏覽 ? 2022-10-02 13:12
我之前也總結過(guò)類(lèi)似的信息采集相關(guān)文章,但是理解和方法會(huì )不時(shí)有所不同。本文從滲透測試的角度總結了自己的一些在hvv或授權但只提供公司名和域名的情況下。最近的信息采集過(guò)程例程。
信息采集一、初始已知信息
在前言中提到的兩種情況下,一般初始信息只有公司名稱(chēng)、個(gè)人官網(wǎng)域名、目標名稱(chēng)等信息,信息都是從這個(gè)起點(diǎn)采集的。
二、搜索根域名
這一步我個(gè)人的體會(huì )是,面對大公司,首選工信部備案。小公司以搜索引擎為起點(diǎn),然后可以通過(guò)幾種方法查漏補缺,盡量獲取最完整的信息。大多數公司的根域名并不多,也不會(huì )花費太多時(shí)間來(lái)瀏覽它們。
1.搜索引擎
搜索引擎直接搜索其公司名稱(chēng),獲取其相關(guān)根域名
2.天眼檢查、企業(yè)檢查
從天眼查、七查查等,輸入公司名稱(chēng)查詢(xún)其域名和全資子公司域名。
3.工信部備案
工信部記錄查詢(xún)域名/ip地址(需要詳細準確的公司名稱(chēng),結果會(huì )很全面)
#/綜合/記錄查詢(xún)
4.佛法
fofa查詢(xún)公司名稱(chēng),獲取相關(guān)域名
5.站長(cháng)之家
使用它的 icp 查詢(xún)功能來(lái)查詢(xún)記錄。當我們不知道公司全名的時(shí)候,我們也可以使用這個(gè)網(wǎng)站函數來(lái)查詢(xún)使用已知域名的完整記錄公司名
6.反向查找域名
使用一些已知的IP反向域名
三、子域
我一般不喜歡在子域集合中爆破的方法。子域的爆破更多地依賴(lài)字典。如果字典小,則集合不完整,如果字典大,則耗時(shí)。
1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
以bilibili為例:
類(lèi)似的網(wǎng)站還有很多,這兩個(gè)是免費的,但是第二個(gè)需要注冊登錄
2.子域爆破
相關(guān)工具很多,有些掃描儀也自帶子域爆破功能或者可以安裝相關(guān)插件。
subDomainsBrute
3.fofa, shodan
使用此類(lèi)工具查詢(xún)域名資產(chǎn),例如
fofa 語(yǔ)法域=””
4.OneForAll
該工具將整合各種采集子域的方法,包括dns查詢(xún)、證書(shū)查詢(xún)等,具體請參見(jiàn)其項目中的readme
安裝
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />3<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />4<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />5<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
git clone https://github.com/shmilylty/OneForAll.git<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />cd OneForAll/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --help<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
python3 oneforall.py --target example.com run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --targets ./example.txt run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
四、ip
IP列表并不完全來(lái)源于域名解析。有些IP直接使用IP地址提供服務(wù)。這部分信息需要提前采集,另一部分通過(guò)域名解析獲取。
1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
與子域查詢(xún)中的操作相同,但需要做的是導出ip列表
2.解析域名
調用 dig 或 nslookup 通過(guò)腳本將采集到的所有子域批量解析 IP
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
nslookup xxx.com<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />dig xxx.com @114.114.114.114<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
編寫(xiě)腳本批量調用dig命令并導出結果
或者將域名列表放在在線(xiàn)解析網(wǎng)站中,導出其解析結果
這一步需要特別注意cdn的情況,繞過(guò)cdn找到它的真實(shí)ip,可以參考這個(gè)文檔
3.c 段
將之前獲取的IP全部整理出來(lái),使用腳本進(jìn)行整理。如果懶得寫(xiě)腳本,也可以使用在線(xiàn)功能。
比如ip地址排序計算器
得到排序后的ip后,可以先判斷哪些c段可能屬于目標,然后進(jìn)行一些掃描和訪(fǎng)問(wèn),組織一個(gè)更全面的ip列表。
五、端口
使用masscan、nmap等工具采集端口信息
六、網(wǎng)絡(luò )服務(wù)
使用webfinder等工具掃描對ip列表進(jìn)行排序的常用web端口,以:port/和:port/的形式導出web服務(wù)列表
指紋識別
1.
2.
七、缺少掃描1.主機掃描
上面編譯的ip列表和域名列表可以扔進(jìn)主機掃描相關(guān)的掃描器中,比如goby、Nessus等。
2.網(wǎng)絡(luò )掃描
整理好web服務(wù)列表后,可以扔進(jìn)awvs等工具進(jìn)行掃描,也可以用xray批量掃描。
史上最強:最強黑科技合集!沒(méi)有之一??!
由于微信公眾號改版,當前公眾號新聞不再按時(shí)間順序排列。因此,朋友很容易錯過(guò)分享的內容。
喜歡貓哥的朋友可以把公眾號設為star,這樣就不會(huì )迷路了~操作方法:
大家好,說(shuō)到手機工具箱,大家可能會(huì )想到木信,酷炫的安全神器,它聚合了很多實(shí)用功能,不過(guò)今天推薦的比木信更強大。它被稱(chēng)為竹信。目前完全免費,無(wú)需任何GSM插入,功能還在不斷增加。目前,它只支持安卓。
竹信 (Android)
軟件只有4.3M,打開(kāi)軟件,功能盡顯,各個(gè)功能無(wú)需額外下載即可直接使用。
超強資源導航:這是一個(gè)網(wǎng)站資源導航,匯集了眾多精品網(wǎng)站,電影、動(dòng)漫、漫畫(huà)、小說(shuō)、直播一應俱全,還有大家最喜歡的香港和奧地利電視直播頻道。.
生活不容易。希望大家可以【點(diǎn)擊】下方的小卡片。您的流暢點(diǎn)擊將是我堅持的動(dòng)力。只需單擊它。非常感謝!
小霸王游戲機:打開(kāi)搜索想玩的游戲,比如《魂斗羅》直接打開(kāi)玩,也支持作弊工具。
逐圖搜索:這個(gè)功能大家都很熟悉,也很常用。您可以通過(guò)單個(gè)圖像找到其原創(chuàng )圖像或更多類(lèi)似圖像。
全網(wǎng)高級點(diǎn)播和VIP視頻分析工具,將VIP視頻連接粘貼到分析框中,點(diǎn)擊“分析”生成,進(jìn)入瀏覽器免費觀(guān)看。
以前非常流行的狗屎偽原創(chuàng )文章自動(dòng)生成器,舔狗日記生成工具,世界貨幣兌換工具,世界實(shí)時(shí)地震監測工具。
這些只是冰山一角,還有全網(wǎng)音樂(lè )下載、asmr助眠、ip地址查詢(xún)、視頻去水印、壁紙下載、語(yǔ)言翻譯等諸多實(shí)用功能。
總之,這款軟件集實(shí)用娛樂(lè )等諸多功能于一體。還可以避免手機因為安裝太多軟件而卡死,功能還在不斷增加??梢哉f(shuō)非常實(shí)用。有興趣的朋友趕緊起床??!
軟件獲取 查看全部
分享:【文末贈書(shū)】紅隊攻防之信息收集總結
我之前也總結過(guò)類(lèi)似的信息采集相關(guān)文章,但是理解和方法會(huì )不時(shí)有所不同。本文從滲透測試的角度總結了自己的一些在hvv或授權但只提供公司名和域名的情況下。最近的信息采集過(guò)程例程。
信息采集一、初始已知信息
在前言中提到的兩種情況下,一般初始信息只有公司名稱(chēng)、個(gè)人官網(wǎng)域名、目標名稱(chēng)等信息,信息都是從這個(gè)起點(diǎn)采集的。
二、搜索根域名
這一步我個(gè)人的體會(huì )是,面對大公司,首選工信部備案。小公司以搜索引擎為起點(diǎn),然后可以通過(guò)幾種方法查漏補缺,盡量獲取最完整的信息。大多數公司的根域名并不多,也不會(huì )花費太多時(shí)間來(lái)瀏覽它們。
1.搜索引擎
搜索引擎直接搜索其公司名稱(chēng),獲取其相關(guān)根域名
2.天眼檢查、企業(yè)檢查
從天眼查、七查查等,輸入公司名稱(chēng)查詢(xún)其域名和全資子公司域名。
3.工信部備案
工信部記錄查詢(xún)域名/ip地址(需要詳細準確的公司名稱(chēng),結果會(huì )很全面)
#/綜合/記錄查詢(xún)
4.佛法
fofa查詢(xún)公司名稱(chēng),獲取相關(guān)域名
5.站長(cháng)之家
使用它的 icp 查詢(xún)功能來(lái)查詢(xún)記錄。當我們不知道公司全名的時(shí)候,我們也可以使用這個(gè)網(wǎng)站函數來(lái)查詢(xún)使用已知域名的完整記錄公司名
6.反向查找域名
使用一些已知的IP反向域名
三、子域
我一般不喜歡在子域集合中爆破的方法。子域的爆破更多地依賴(lài)字典。如果字典小,則集合不完整,如果字典大,則耗時(shí)。

1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
以bilibili為例:
類(lèi)似的網(wǎng)站還有很多,這兩個(gè)是免費的,但是第二個(gè)需要注冊登錄
2.子域爆破
相關(guān)工具很多,有些掃描儀也自帶子域爆破功能或者可以安裝相關(guān)插件。
subDomainsBrute
3.fofa, shodan
使用此類(lèi)工具查詢(xún)域名資產(chǎn),例如
fofa 語(yǔ)法域=””
4.OneForAll
該工具將整合各種采集子域的方法,包括dns查詢(xún)、證書(shū)查詢(xún)等,具體請參見(jiàn)其項目中的readme
安裝
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />3<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />4<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />5<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
git clone https://github.com/shmilylty/OneForAll.git<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />cd OneForAll/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --help<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
python3 oneforall.py --target example.com run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --targets ./example.txt run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
四、ip
IP列表并不完全來(lái)源于域名解析。有些IP直接使用IP地址提供服務(wù)。這部分信息需要提前采集,另一部分通過(guò)域名解析獲取。
1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
與子域查詢(xún)中的操作相同,但需要做的是導出ip列表
2.解析域名

調用 dig 或 nslookup 通過(guò)腳本將采集到的所有子域批量解析 IP
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
nslookup xxx.com<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />dig xxx.com @114.114.114.114<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
編寫(xiě)腳本批量調用dig命令并導出結果
或者將域名列表放在在線(xiàn)解析網(wǎng)站中,導出其解析結果
這一步需要特別注意cdn的情況,繞過(guò)cdn找到它的真實(shí)ip,可以參考這個(gè)文檔
3.c 段
將之前獲取的IP全部整理出來(lái),使用腳本進(jìn)行整理。如果懶得寫(xiě)腳本,也可以使用在線(xiàn)功能。
比如ip地址排序計算器
得到排序后的ip后,可以先判斷哪些c段可能屬于目標,然后進(jìn)行一些掃描和訪(fǎng)問(wèn),組織一個(gè)更全面的ip列表。
五、端口
使用masscan、nmap等工具采集端口信息
六、網(wǎng)絡(luò )服務(wù)
使用webfinder等工具掃描對ip列表進(jìn)行排序的常用web端口,以:port/和:port/的形式導出web服務(wù)列表
指紋識別
1.
2.
七、缺少掃描1.主機掃描
上面編譯的ip列表和域名列表可以扔進(jìn)主機掃描相關(guān)的掃描器中,比如goby、Nessus等。
2.網(wǎng)絡(luò )掃描
整理好web服務(wù)列表后,可以扔進(jìn)awvs等工具進(jìn)行掃描,也可以用xray批量掃描。
史上最強:最強黑科技合集!沒(méi)有之一??!
由于微信公眾號改版,當前公眾號新聞不再按時(shí)間順序排列。因此,朋友很容易錯過(guò)分享的內容。
喜歡貓哥的朋友可以把公眾號設為star,這樣就不會(huì )迷路了~操作方法:
大家好,說(shuō)到手機工具箱,大家可能會(huì )想到木信,酷炫的安全神器,它聚合了很多實(shí)用功能,不過(guò)今天推薦的比木信更強大。它被稱(chēng)為竹信。目前完全免費,無(wú)需任何GSM插入,功能還在不斷增加。目前,它只支持安卓。
竹信 (Android)
軟件只有4.3M,打開(kāi)軟件,功能盡顯,各個(gè)功能無(wú)需額外下載即可直接使用。
超強資源導航:這是一個(gè)網(wǎng)站資源導航,匯集了眾多精品網(wǎng)站,電影、動(dòng)漫、漫畫(huà)、小說(shuō)、直播一應俱全,還有大家最喜歡的香港和奧地利電視直播頻道。.

生活不容易。希望大家可以【點(diǎn)擊】下方的小卡片。您的流暢點(diǎn)擊將是我堅持的動(dòng)力。只需單擊它。非常感謝!
小霸王游戲機:打開(kāi)搜索想玩的游戲,比如《魂斗羅》直接打開(kāi)玩,也支持作弊工具。
逐圖搜索:這個(gè)功能大家都很熟悉,也很常用。您可以通過(guò)單個(gè)圖像找到其原創(chuàng )圖像或更多類(lèi)似圖像。
全網(wǎng)高級點(diǎn)播和VIP視頻分析工具,將VIP視頻連接粘貼到分析框中,點(diǎn)擊“分析”生成,進(jìn)入瀏覽器免費觀(guān)看。

以前非常流行的狗屎偽原創(chuàng )文章自動(dòng)生成器,舔狗日記生成工具,世界貨幣兌換工具,世界實(shí)時(shí)地震監測工具。
這些只是冰山一角,還有全網(wǎng)音樂(lè )下載、asmr助眠、ip地址查詢(xún)、視頻去水印、壁紙下載、語(yǔ)言翻譯等諸多實(shí)用功能。
總之,這款軟件集實(shí)用娛樂(lè )等諸多功能于一體。還可以避免手機因為安裝太多軟件而卡死,功能還在不斷增加??梢哉f(shuō)非常實(shí)用。有興趣的朋友趕緊起床??!
軟件獲取
最新版:V8 中的垃圾收集(GC),圖文指南
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 96 次瀏覽 ? 2022-10-02 13:11
原標題:V8 中的垃圾采集,圖文并茂的指南 原文鏈接:@_lrlna/garbage-采集-in-v8-an-illustrated-guide-d24a952ee3b8
本指南不同于我迄今為止編寫(xiě)的任何其他指南,我在其中添加了一些草圖。我勾勒出垃圾采集 (GC) 的整個(gè)概念以及它是如何在 javascript 中處理的,更準確地說(shuō)是在運行 javascript 的引擎中。順便說(shuō)一句,本指南面向初學(xué)者,并未涵蓋 V8 內存管理的所有方面和 V8 的內部結構。我添加了一些資源來(lái)幫助您深入挖掘。本指南重點(diǎn)關(guān)注?javascript?,對于某些語(yǔ)言,垃圾回收是完全不同的,例如 C 語(yǔ)言。
好的,讓我們開(kāi)始吧。
什么是 v8?
V8 是 JavaScript 的運行時(shí)引擎,不要與你最喜歡的番茄汁混淆,它負責編譯和執行你喜歡的 JavaScript。V8 有一個(gè)分代垃圾采集器,我稍后會(huì )解釋。它與 Chrome 一起使用,而 SpiderMonkey 是 Mozilla 的引擎,而 Chakra 是 Microsoft 的?;旧显谶\行 javascript 時(shí),您需要一個(gè)引擎來(lái)處理它,而 V8 是您的選擇之一,無(wú)論是在瀏覽器中還是在 node.js 環(huán)境中。(PS V8 是?開(kāi)源?。)
什么是垃圾采集?
垃圾采集的重點(diǎn)是通過(guò)使用特定程序來(lái)管理內存使用情況。C等語(yǔ)言往往可以直接操作程序中的內存,并在程序的上下文中分配和釋放對象。另一方面,ECMAScript 缺少訪(fǎng)問(wèn)內存管理的特定接口(是的,這意味著(zhù)沒(méi)有 API)。這基本上意味著(zhù)程序中的所有內存管理權限都轉移到了V8。
由于我們無(wú)法訪(fǎng)問(wèn)無(wú)限量的內存,垃圾采集器的工作是查看內存中分配的對象以確定它們是死的還是活的。那些活著(zhù)的留在內存中,那些死的被刪除,內存被分配回堆。
什么是堆?堆是一個(gè)非結構化區域,堆中的對象占用分配的內存。這種分配是動(dòng)態(tài)的,因為對象的大小/生命周期/數量是未知的,需要在運行時(shí)分配和釋放。
如果我們看一下并發(fā)模型,堆直接與調用堆棧一起工作,因為堆棧上的對象需要進(jìn)行內存分配。它看起來(lái)像這樣:
死或生?
如何檢查一個(gè)對象的生死是客戶(hù)端或程序代碼是否可以到達該對象。您能想到的最可達的對象可能是在根范圍中定義的對象。
一些 C++ 綁定(或客戶(hù)端上的 Web API)也是根的一部分,因此您可以通過(guò)例如 setInterval 直接訪(fǎng)問(wèn)它。
可達性也可以這樣理解:其他對象或根是否可以獲取,如果可以,則保留該對象所需的內存。
那么我們如何進(jìn)行垃圾回收呢?(告訴我告訴我?。?br /> 當創(chuàng )建新對象或新“指針”時(shí),V8 會(huì )在堆上分配內存。(javascript沒(méi)有真正的指針,所以“指針”在技術(shù)上只是對原創(chuàng )對象的引用的副本)。堆中不同類(lèi)型的對象會(huì )占用不同的空間,其組織方式如下:
出于垃圾采集的目的,V8 將堆分為兩部分:新生區和陳舊區。當您執行需要 V8 分配內存的操作時(shí),V8 會(huì )在新區域中分配空間。當你不斷地添加到堆中時(shí),你最終會(huì )耗盡內存,所以 V8 將不得不運行一次 GC 來(lái)清理。新創(chuàng )建的對象在對象死亡時(shí)被快速分配和清理(更短和更快的采集)。一旦對象“存活”了一些(確切地說(shuō)是 2 個(gè)周期)采集掃描周期,它們就會(huì )被提升到父區,在一個(gè)單獨的周期中采集垃圾。
較舊的對象是那些在不止一次垃圾采集掃描中幸存下來(lái)的對象,這意味著(zhù)它們仍然被其他對象引用并且仍然需要占用該內存。它們通常不引用較年輕的對象,只引用較舊的對象。主要周期不經(jīng)常發(fā)生。在將足夠多的物體移動(dòng)到舊區域后,通常會(huì )發(fā)生一個(gè)大循環(huán)。
來(lái)源.js
本指南來(lái)自 lrlna 在 github 上的 sketchin 指南?。
最新版:ArchiveWebpage(網(wǎng)頁(yè)存檔) V0.8.1 官方版
ArchiveWebpage 是瀏覽器的網(wǎng)頁(yè)存檔和擴展類(lèi)型工具。該工具可以幫助您以擴展的方式歸檔網(wǎng)頁(yè)。它非常適合與客戶(hù)端一起使用。網(wǎng)頁(yè)內容會(huì )在您需要時(shí)保存和復制!
【軟件功能】
直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案
該擴展允許用戶(hù)直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案。
啟用后,擴展程序“記錄”特定選項卡上的網(wǎng)絡(luò )流量并將數據存儲在瀏覽器中。記錄頁(yè)面顯示所有存檔頁(yè)面的列表。
該擴展允許用戶(hù)重播存檔網(wǎng)頁(yè)(使用 replayweb.page 系統)并允許用戶(hù)以標準 WARC 和新 WACZ 格式導出存檔網(wǎng)頁(yè)。
【軟件特色】
直接記錄網(wǎng)頁(yè)上某段時(shí)間的數據
隨時(shí)保存網(wǎng)頁(yè)上的相關(guān)內容
以 WARC 和新的 WACZ 格式導出 查看全部
最新版:V8 中的垃圾收集(GC),圖文指南
原標題:V8 中的垃圾采集,圖文并茂的指南 原文鏈接:@_lrlna/garbage-采集-in-v8-an-illustrated-guide-d24a952ee3b8
本指南不同于我迄今為止編寫(xiě)的任何其他指南,我在其中添加了一些草圖。我勾勒出垃圾采集 (GC) 的整個(gè)概念以及它是如何在 javascript 中處理的,更準確地說(shuō)是在運行 javascript 的引擎中。順便說(shuō)一句,本指南面向初學(xué)者,并未涵蓋 V8 內存管理的所有方面和 V8 的內部結構。我添加了一些資源來(lái)幫助您深入挖掘。本指南重點(diǎn)關(guān)注?javascript?,對于某些語(yǔ)言,垃圾回收是完全不同的,例如 C 語(yǔ)言。
好的,讓我們開(kāi)始吧。
什么是 v8?
V8 是 JavaScript 的運行時(shí)引擎,不要與你最喜歡的番茄汁混淆,它負責編譯和執行你喜歡的 JavaScript。V8 有一個(gè)分代垃圾采集器,我稍后會(huì )解釋。它與 Chrome 一起使用,而 SpiderMonkey 是 Mozilla 的引擎,而 Chakra 是 Microsoft 的?;旧显谶\行 javascript 時(shí),您需要一個(gè)引擎來(lái)處理它,而 V8 是您的選擇之一,無(wú)論是在瀏覽器中還是在 node.js 環(huán)境中。(PS V8 是?開(kāi)源?。)
什么是垃圾采集?
垃圾采集的重點(diǎn)是通過(guò)使用特定程序來(lái)管理內存使用情況。C等語(yǔ)言往往可以直接操作程序中的內存,并在程序的上下文中分配和釋放對象。另一方面,ECMAScript 缺少訪(fǎng)問(wèn)內存管理的特定接口(是的,這意味著(zhù)沒(méi)有 API)。這基本上意味著(zhù)程序中的所有內存管理權限都轉移到了V8。

由于我們無(wú)法訪(fǎng)問(wèn)無(wú)限量的內存,垃圾采集器的工作是查看內存中分配的對象以確定它們是死的還是活的。那些活著(zhù)的留在內存中,那些死的被刪除,內存被分配回堆。
什么是堆?堆是一個(gè)非結構化區域,堆中的對象占用分配的內存。這種分配是動(dòng)態(tài)的,因為對象的大小/生命周期/數量是未知的,需要在運行時(shí)分配和釋放。
如果我們看一下并發(fā)模型,堆直接與調用堆棧一起工作,因為堆棧上的對象需要進(jìn)行內存分配。它看起來(lái)像這樣:
死或生?
如何檢查一個(gè)對象的生死是客戶(hù)端或程序代碼是否可以到達該對象。您能想到的最可達的對象可能是在根范圍中定義的對象。
一些 C++ 綁定(或客戶(hù)端上的 Web API)也是根的一部分,因此您可以通過(guò)例如 setInterval 直接訪(fǎng)問(wèn)它。
可達性也可以這樣理解:其他對象或根是否可以獲取,如果可以,則保留該對象所需的內存。

那么我們如何進(jìn)行垃圾回收呢?(告訴我告訴我?。?br /> 當創(chuàng )建新對象或新“指針”時(shí),V8 會(huì )在堆上分配內存。(javascript沒(méi)有真正的指針,所以“指針”在技術(shù)上只是對原創(chuàng )對象的引用的副本)。堆中不同類(lèi)型的對象會(huì )占用不同的空間,其組織方式如下:
出于垃圾采集的目的,V8 將堆分為兩部分:新生區和陳舊區。當您執行需要 V8 分配內存的操作時(shí),V8 會(huì )在新區域中分配空間。當你不斷地添加到堆中時(shí),你最終會(huì )耗盡內存,所以 V8 將不得不運行一次 GC 來(lái)清理。新創(chuàng )建的對象在對象死亡時(shí)被快速分配和清理(更短和更快的采集)。一旦對象“存活”了一些(確切地說(shuō)是 2 個(gè)周期)采集掃描周期,它們就會(huì )被提升到父區,在一個(gè)單獨的周期中采集垃圾。
較舊的對象是那些在不止一次垃圾采集掃描中幸存下來(lái)的對象,這意味著(zhù)它們仍然被其他對象引用并且仍然需要占用該內存。它們通常不引用較年輕的對象,只引用較舊的對象。主要周期不經(jīng)常發(fā)生。在將足夠多的物體移動(dòng)到舊區域后,通常會(huì )發(fā)生一個(gè)大循環(huán)。
來(lái)源.js
本指南來(lái)自 lrlna 在 github 上的 sketchin 指南?。
最新版:ArchiveWebpage(網(wǎng)頁(yè)存檔) V0.8.1 官方版
ArchiveWebpage 是瀏覽器的網(wǎng)頁(yè)存檔和擴展類(lèi)型工具。該工具可以幫助您以擴展的方式歸檔網(wǎng)頁(yè)。它非常適合與客戶(hù)端一起使用。網(wǎng)頁(yè)內容會(huì )在您需要時(shí)保存和復制!
【軟件功能】
直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案

該擴展允許用戶(hù)直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案。
啟用后,擴展程序“記錄”特定選項卡上的網(wǎng)絡(luò )流量并將數據存儲在瀏覽器中。記錄頁(yè)面顯示所有存檔頁(yè)面的列表。
該擴展允許用戶(hù)重播存檔網(wǎng)頁(yè)(使用 replayweb.page 系統)并允許用戶(hù)以標準 WARC 和新 WACZ 格式導出存檔網(wǎng)頁(yè)。

【軟件特色】
直接記錄網(wǎng)頁(yè)上某段時(shí)間的數據
隨時(shí)保存網(wǎng)頁(yè)上的相關(guān)內容
以 WARC 和新的 WACZ 格式導出
案例研究:帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 91 次瀏覽 ? 2022-10-01 05:09
老蔣今天上午在和朋友討論他的網(wǎng)站布局問(wèn)題,他是一個(gè)范文類(lèi)網(wǎng)站,采用的是帝國CMS,選擇的CMS是比較好的,畢竟大內容是需要帝國CMS或者織夢(mèng)這樣的靜態(tài)系統,而不是WP這種博客系統。但是有一個(gè)問(wèn)題,他告知帝國的系統問(wèn)題,無(wú)法設置TAG調用,這里簡(jiǎn)單先找找是不是有類(lèi)似的辦法。
第一步、帝國CMS TAG設置
1、登錄后臺,單擊【欄目】菜單【TAGS管理】【設置TAGS參數】子菜單,進(jìn)入設置TAGS參數界面。
2、進(jìn)入設置TAGS參數界面, 前臺開(kāi)啟TAGS:設置前臺/e/tags/頁(yè)面是否開(kāi)啟使用。
默認使用的模板:選擇tags的列表模板,這里建議選擇和文章一樣的列表模板; 每頁(yè)顯示信息:設置不指定line情況下默認的每頁(yè)顯示信息數。
第二步、帝國CMS TAGS標簽調用
1、用帝國cms自帶的自定義調用工具進(jìn)行調用:
[showtags]分類(lèi)ID,顯示數量,每行顯示數量,顯示排序,只顯示推薦,推薦TAGS屬性,顯示間隔符,是否顯示信息數,鏈接附加參數,鏈接使用變量[/showtags]
具體參考:模板==》自動(dòng)生成標簽===》調用tags標簽模板
2、帝國cms使用靈動(dòng)標簽調用當前文章內容tag標簽
[e:loop={"SELECT*FROMseo_ecms_newsWHEREid="".$navinfor[id].""LIMIT0,30",1,24,0}]
[/e:loop]
復制
3、帝國CMS靈動(dòng)標簽調用TAGS
[e:loop={"select * from [!db.pre!]enewstags order by num desc limit 10",0,24,0}]
</a>
[/e:loop]
復制
第三步、設置偽靜態(tài)規則
如果我們采用的偽靜態(tài),則需要添加偽靜態(tài)規則。
1、Apache
檢查.htaccess里是否有這個(gè)規則
#TAGS信息列表頁(yè)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tags-(.+?)-(.+?)\.html$ /e/tags/index.php?tagname=$1&page=$2
復制
2、Nginx
如果我們是Nginx,需要看下規則里是否有
rewrite ^/tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 last;
復制
以上是我們要對帝國CMS設置TAG靜態(tài)調用的方法。
本文出處:老蔣部落 ? 帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則 | 歡迎分享
解決方案:小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
自適應小說(shuō)自動(dòng)采集網(wǎng)站源碼
程序開(kāi)發(fā):PHP+mysql
程序演示: , 賬戶(hù) ,密碼
程序特色:
1、小說(shuō)自動(dòng)采集;
2、小說(shuō)章節實(shí)時(shí)更新;
3、采集的小說(shuō)入庫,不受源站影響;
4、高效儲存模式,節約服務(wù)器空間使用;
程序優(yōu)點(diǎn):
1、小說(shuō)自動(dòng)推送到百度搜索引擎,加快頁(yè)面收錄;
2、頁(yè)面深度優(yōu)化,合理部署,深受搜索引擎喜愛(ài);
3、pc端+獨立手機端自適應,全方位滿(mǎn)足搜索引擎需求;
安裝環(huán)境推薦:
1、空間、服務(wù)器均可
2、PHP:5.4+
3、數據庫:mysql5.6+
4.安裝前先設置thinkphp偽靜態(tài)
5.后臺點(diǎn)擊批量采集新書(shū),然后批量處理文章,后面都是自動(dòng)采集 查看全部
案例研究:帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則
老蔣今天上午在和朋友討論他的網(wǎng)站布局問(wèn)題,他是一個(gè)范文類(lèi)網(wǎng)站,采用的是帝國CMS,選擇的CMS是比較好的,畢竟大內容是需要帝國CMS或者織夢(mèng)這樣的靜態(tài)系統,而不是WP這種博客系統。但是有一個(gè)問(wèn)題,他告知帝國的系統問(wèn)題,無(wú)法設置TAG調用,這里簡(jiǎn)單先找找是不是有類(lèi)似的辦法。
第一步、帝國CMS TAG設置
1、登錄后臺,單擊【欄目】菜單【TAGS管理】【設置TAGS參數】子菜單,進(jìn)入設置TAGS參數界面。
2、進(jìn)入設置TAGS參數界面, 前臺開(kāi)啟TAGS:設置前臺/e/tags/頁(yè)面是否開(kāi)啟使用。
默認使用的模板:選擇tags的列表模板,這里建議選擇和文章一樣的列表模板; 每頁(yè)顯示信息:設置不指定line情況下默認的每頁(yè)顯示信息數。
第二步、帝國CMS TAGS標簽調用
1、用帝國cms自帶的自定義調用工具進(jìn)行調用:
[showtags]分類(lèi)ID,顯示數量,每行顯示數量,顯示排序,只顯示推薦,推薦TAGS屬性,顯示間隔符,是否顯示信息數,鏈接附加參數,鏈接使用變量[/showtags]
具體參考:模板==》自動(dòng)生成標簽===》調用tags標簽模板
2、帝國cms使用靈動(dòng)標簽調用當前文章內容tag標簽
[e:loop={"SELECT*FROMseo_ecms_newsWHEREid="".$navinfor[id].""LIMIT0,30",1,24,0}]
[/e:loop]
復制
3、帝國CMS靈動(dòng)標簽調用TAGS
[e:loop={"select * from [!db.pre!]enewstags order by num desc limit 10",0,24,0}]
</a>
[/e:loop]
復制
第三步、設置偽靜態(tài)規則
如果我們采用的偽靜態(tài),則需要添加偽靜態(tài)規則。
1、Apache
檢查.htaccess里是否有這個(gè)規則
#TAGS信息列表頁(yè)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tags-(.+?)-(.+?)\.html$ /e/tags/index.php?tagname=$1&page=$2
復制
2、Nginx
如果我們是Nginx,需要看下規則里是否有
rewrite ^/tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 last;
復制
以上是我們要對帝國CMS設置TAG靜態(tài)調用的方法。
本文出處:老蔣部落 ? 帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則 | 歡迎分享
解決方案:小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
自適應小說(shuō)自動(dòng)采集網(wǎng)站源碼
程序開(kāi)發(fā):PHP+mysql
程序演示: , 賬戶(hù) ,密碼
程序特色:
1、小說(shuō)自動(dòng)采集;

2、小說(shuō)章節實(shí)時(shí)更新;
3、采集的小說(shuō)入庫,不受源站影響;
4、高效儲存模式,節約服務(wù)器空間使用;
程序優(yōu)點(diǎn):
1、小說(shuō)自動(dòng)推送到百度搜索引擎,加快頁(yè)面收錄;
2、頁(yè)面深度優(yōu)化,合理部署,深受搜索引擎喜愛(ài);
3、pc端+獨立手機端自適應,全方位滿(mǎn)足搜索引擎需求;

安裝環(huán)境推薦:
1、空間、服務(wù)器均可
2、PHP:5.4+
3、數據庫:mysql5.6+
4.安裝前先設置thinkphp偽靜態(tài)
5.后臺點(diǎn)擊批量采集新書(shū),然后批量處理文章,后面都是自動(dòng)采集
解決方案:MATLAB調用采集卡實(shí)現數據采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 445 次瀏覽 ? 2022-10-01 00:29
NI 數據 采集 卡 入門(mén) 一、 安裝 和 配置: 1. 安裝 板 塊 前, 請 安裝 NI- DAQ 驅動(dòng) 軟件。您可以在卡附帶的光盤(pán)中找到此驅動(dòng)程序軟件。此外, NI 的 網(wǎng)站 還 提供免費 下載 了 該 驅動(dòng) 軟件: 89? 打開(kāi) 文檔&node=132070_US 如果 您 使用 LabVIEW 或 LabWindows/CVI 軟件 進(jìn)行 編 程, 則 需要 在 安裝 驅動(dòng) 軟件 之前 安裝 開(kāi)發(fā) 平臺 LabVIEW 或 LabWindows/CVI 軟件。在 安裝 過(guò)程中, 安裝 程序 會(huì ) 提醒 您 插入 DAQ 驅動(dòng) 程序 CD。2.正確安裝了NI-DAQ驅動(dòng)程序軟件,請關(guān)閉計算機,將數據插入采集板,啟動(dòng)計算機,然后就可以啟動(dòng)它了
秘密武器:自媒體運營(yíng)必備的6款輔助工具,讓運營(yíng)效率成倍提升
無(wú)論你是自媒體老鳥(niǎo)還是剛剛進(jìn)入自媒體行業(yè)的新手,在自媒體操作的過(guò)程中都需要使用一些輔助工具,今天小編會(huì )和大家分享一些網(wǎng)站操作中可能用到的輔助工具和自媒體,有了這些輔助工具,就可以讓運營(yíng)效率成倍增加。
1、操作輔助工具 - 易于編寫(xiě)
要做自媒體操作我們需要追熱點(diǎn)、找材料等,如果沒(méi)有好的輔助工具就會(huì )浪費時(shí)間,而且容易編寫(xiě)自媒體工具,基于數據挖掘技術(shù)來(lái)集成和分析各大自媒體平臺的內容,對于自媒體作者在操作過(guò)程中需要使用實(shí)時(shí)的熱點(diǎn)跟蹤, 爆文視頻批量采集下載、文章編輯器布局、標題生成和原創(chuàng )檢測等服務(wù)。
2、仔豬的GIF 查看全部
解決方案:MATLAB調用采集卡實(shí)現數據采集

NI 數據 采集 卡 入門(mén) 一、 安裝 和 配置: 1. 安裝 板 塊 前, 請 安裝 NI- DAQ 驅動(dòng) 軟件。您可以在卡附帶的光盤(pán)中找到此驅動(dòng)程序軟件。此外, NI 的 網(wǎng)站 還 提供免費 下載 了 該 驅動(dòng) 軟件: 89? 打開(kāi) 文檔&node=132070_US 如果 您 使用 LabVIEW 或 LabWindows/CVI 軟件 進(jìn)行 編 程, 則 需要 在 安裝 驅動(dòng) 軟件 之前 安裝 開(kāi)發(fā) 平臺 LabVIEW 或 LabWindows/CVI 軟件。在 安裝 過(guò)程中, 安裝 程序 會(huì ) 提醒 您 插入 DAQ 驅動(dòng) 程序 CD。2.正確安裝了NI-DAQ驅動(dòng)程序軟件,請關(guān)閉計算機,將數據插入采集板,啟動(dòng)計算機,然后就可以啟動(dòng)它了

秘密武器:自媒體運營(yíng)必備的6款輔助工具,讓運營(yíng)效率成倍提升
無(wú)論你是自媒體老鳥(niǎo)還是剛剛進(jìn)入自媒體行業(yè)的新手,在自媒體操作的過(guò)程中都需要使用一些輔助工具,今天小編會(huì )和大家分享一些網(wǎng)站操作中可能用到的輔助工具和自媒體,有了這些輔助工具,就可以讓運營(yíng)效率成倍增加。

1、操作輔助工具 - 易于編寫(xiě)
要做自媒體操作我們需要追熱點(diǎn)、找材料等,如果沒(méi)有好的輔助工具就會(huì )浪費時(shí)間,而且容易編寫(xiě)自媒體工具,基于數據挖掘技術(shù)來(lái)集成和分析各大自媒體平臺的內容,對于自媒體作者在操作過(guò)程中需要使用實(shí)時(shí)的熱點(diǎn)跟蹤, 爆文視頻批量采集下載、文章編輯器布局、標題生成和原創(chuàng )檢測等服務(wù)。

2、仔豬的GIF
精選文章:【織夢(mèng)/dedecms 當文章轉載時(shí)不需要設置圖片水印的設置
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 77 次瀏覽 ? 2022-09-29 14:13
織夢(mèng)dedecms縮寫(xiě)標題調用標簽使用指南
在使用織夢(mèng)DEDEcms建站的過(guò)程中,為了讓被調用的文章的標題簡(jiǎn)短而相對完整(原標題太長(cháng)),我們不得不使用調用縮寫(xiě)標題的方法,使標題顯示為短標題,指向標題時(shí)顯示完整標題。并得到文章的靜態(tài)地址鏈接我們來(lái)看看DEDE織夢(mèng)cms的簡(jiǎn)稱(chēng)調用方法: 使用的代碼如下: 復制代碼 代碼如下: {dede :arclist titlelen='60' orderby='pubdate' row='6' typeid='5'}
做好織夢(mèng)dedecms安全防護的所有方法
很多同學(xué)遇到網(wǎng)站被攻擊絞死,而且大部分都不是競爭對手做的。在大多數情況下,黑客使用工具對入侵進(jìn)行批量掃描。因此,安全防護非常重要??棄?mèng)安裝時(shí)注意:修改默認數據庫前綴:在安裝dedecms時(shí)修改數據庫的表前綴,盡量不要使用默認前綴dede_,改其他英文字母小寫(xiě)即可。防止黑客猜測。安裝完成后,去掉所有然后帶后門(mén)和漏洞1.修改默認后臺路徑: 功能:是為了防止黑客猜測你的后臺,進(jìn)行其他操作。進(jìn)入網(wǎng)站的根目錄,可以看到dede文件夾,重命名為But。比如改成禮三寶,
織夢(mèng)dedecms獲取當前頁(yè)面URL地址的調用方法
織夢(mèng)內容頁(yè)面如何調用當前頁(yè)面url?相信很多對織夢(mèng)感興趣的朋友都會(huì )考慮這個(gè)問(wèn)題:在文章的內容中加入本文的鏈接,除了保護自己的版權,還可以增加外鏈網(wǎng)站收錄。網(wǎng)上有很多帖子,但是大部分只能調用相對地址,還得在前面加一個(gè)網(wǎng)站域名,這個(gè)方法還可以,但是這個(gè)模板會(huì )鬧是用來(lái)建其他網(wǎng)站的,所以不可行??棄?mèng)dedecms獲取當前頁(yè)面URL地址的正確方法:在調用相對地址前添加網(wǎng)站根地址標簽{dede:global.cfg_basehost/}標簽。
織夢(mèng)dedecms數據庫結構字段說(shuō)明-簡(jiǎn)要說(shuō)明
dede_addonarticle 附加文章表格輔助 int(11) 文章編號 typeid int(11) 類(lèi)別列號正文 mediumtext 文章內容 dede_addonflash 附加 Flash 表格輔助 int( 11) FLASH number typeid int(11) Category column number filesize varchar(10) File size playtime varchar(10) Playing duration flashtype varchar(10)@ > 工作類(lèi)型 flashrank smallint(6) 工作排名 wid...
織夢(mèng)Dedecms主文件夾目錄及模板文件說(shuō)明
雖然織夢(mèng)Dedecms曾因為安全問(wèn)題飽受詬病,但漏洞并不能掩蓋漏洞。在用戶(hù)數量和時(shí)間方面,織夢(mèng)Dedecms是國內排名第一的幾款cms建站程序。想要學(xué)習cms的二次開(kāi)發(fā),必須學(xué)習織夢(mèng)Dedecms。對于織夢(mèng)Dede。以下是默認的織夢(mèng)Dedecms程序根目錄。
如何判斷網(wǎng)站織夢(mèng)Dedecms的版本
該方法可以確定目標網(wǎng)站使用的是哪個(gè)版本的織夢(mèng)Dedecms,以及應用補丁的日期。在官方版本的 URL 路徑后添加 /data/admin/ver.txt 附加歷史更新:2010-08-18 安全更新 2010-08-03 安全更新 20100708 是最新版本 5.6 20100324 是5.5 20100429及以后都是5.6版本,對應的日期就是補丁日期,可以知道哪些漏洞沒(méi)有修復5.6版本更新……
織夢(mèng)德德cms網(wǎng)站內部SEO詳解
一.確定網(wǎng)站關(guān)鍵詞的目標最重要的方面,一般網(wǎng)站首頁(yè)目標關(guān)鍵詞建議1-3個(gè)目標。對于目標關(guān)鍵詞@的選擇有幾個(gè)建議1.定位:網(wǎng)站內容和業(yè)務(wù)相關(guān)2.分析:用戶(hù)體驗和競爭對手的分析網(wǎng)站@ >3. 篩選:為了優(yōu)化,如果目標關(guān)鍵詞在前三個(gè)建議中都達不到,最好不要做,用戶(hù)目標不強,最好不要做它,并避免行業(yè)領(lǐng)導者的目標 網(wǎng)站關(guān)鍵詞 。二.寫(xiě)3個(gè)標簽1.標題標簽:2.關(guān)鍵詞標簽:3.描述標簽:關(guān)鍵詞2@>子導航網(wǎng)站二級導航就是加一行target<
織夢(mèng)德德cms技術(shù)資料
dedecms調用文章方法發(fā)布時(shí)間11-20 style([field:pubdate function='strftime("%m-%d",@me)'/]) 2009年5月15日 style ([field:pubdate function='strftime("%b %d, %Y",@me)'/]) 2009-12-27 18:30:02 style [field:pubdate function="GetDateTimeMK(@me) "/] 200…
織夢(mèng)Dedecms模板防盜的四種方法
織夢(mèng)(Dedecms) 模板也是一種財富。如果你不希望自己辛辛苦苦的模板被盜,如果網(wǎng)上有一些和自己一模一樣的網(wǎng)站,那就需要做好模板了。防小偷。本文采集自網(wǎng)上,但網(wǎng)絡(luò )版沒(méi)有提供通過(guò)Nginx 301重定向實(shí)現dedecms模板防盜和403文件禁止實(shí)現織夢(mèng)模板防盜的方法。以下是織夢(mèng)模板防盜的四種方法,希望對大家有所幫助。1.系統文件修復方法 系統文件修復方法 這個(gè)方法好像比較麻煩一點(diǎn)。也需要對織夢(mèng)(Dedecms)系統有一定的熟悉度,才建議這樣做……
熱點(diǎn)話(huà)題
SpringMVC上傳csv文件
使用 while 語(yǔ)句求 1 100 的累積和
如何檢索 git 已刪除工作區的內容
網(wǎng)易 duilib 運行 vs
2015無(wú)法卸載,提示安裝包丟失或損壞
grafana api獲取監視器圖像
Android googlemap 搜索附近
Android仿生開(kāi)源
ubuntu usb驅動(dòng)沒(méi)有權限
特征計數的注釋文件
ssh 連接到 linux
WPF序列化控制xaml
mssql 調試觸發(fā)器
如何解決source insight中文評論顯示亂碼
thinkphp5.1 加載資源文件常量
github android發(fā)光動(dòng)畫(huà)
DESTOON在后臺取shell
python中類(lèi)繼承對象和不繼承的區別
c# Lucene全文搜索
先docker mount再下載
推薦文章:紅隊信息搜集工具(附下載地址)
ratel(獾) 是一個(gè)由rust開(kāi)發(fā)的信息搜集工具,專(zhuān)注web資產(chǎn)發(fā)現,支持從fofa,zoomeye API查詢(xún),提供詳細的配置參數,可靠,可以從錯誤中恢復查詢(xún),自動(dòng)去重。
同時(shí)也支持主動(dòng)掃描端口,探測http,提取https證書(shū)中域名。
ratel 提供細粒度的http poc探測模塊,支持多請求的poc,利用自定義正則表達式提取響應內容并作為后續請求的變量。ratel輸出格式為csv。
下載及詳細用法地址:
好文推薦
歡迎關(guān)注 系統安全運維 查看全部
精選文章:【織夢(mèng)/dedecms 當文章轉載時(shí)不需要設置圖片水印的設置
織夢(mèng)dedecms縮寫(xiě)標題調用標簽使用指南
在使用織夢(mèng)DEDEcms建站的過(guò)程中,為了讓被調用的文章的標題簡(jiǎn)短而相對完整(原標題太長(cháng)),我們不得不使用調用縮寫(xiě)標題的方法,使標題顯示為短標題,指向標題時(shí)顯示完整標題。并得到文章的靜態(tài)地址鏈接我們來(lái)看看DEDE織夢(mèng)cms的簡(jiǎn)稱(chēng)調用方法: 使用的代碼如下: 復制代碼 代碼如下: {dede :arclist titlelen='60' orderby='pubdate' row='6' typeid='5'}
做好織夢(mèng)dedecms安全防護的所有方法
很多同學(xué)遇到網(wǎng)站被攻擊絞死,而且大部分都不是競爭對手做的。在大多數情況下,黑客使用工具對入侵進(jìn)行批量掃描。因此,安全防護非常重要??棄?mèng)安裝時(shí)注意:修改默認數據庫前綴:在安裝dedecms時(shí)修改數據庫的表前綴,盡量不要使用默認前綴dede_,改其他英文字母小寫(xiě)即可。防止黑客猜測。安裝完成后,去掉所有然后帶后門(mén)和漏洞1.修改默認后臺路徑: 功能:是為了防止黑客猜測你的后臺,進(jìn)行其他操作。進(jìn)入網(wǎng)站的根目錄,可以看到dede文件夾,重命名為But。比如改成禮三寶,
織夢(mèng)dedecms獲取當前頁(yè)面URL地址的調用方法
織夢(mèng)內容頁(yè)面如何調用當前頁(yè)面url?相信很多對織夢(mèng)感興趣的朋友都會(huì )考慮這個(gè)問(wèn)題:在文章的內容中加入本文的鏈接,除了保護自己的版權,還可以增加外鏈網(wǎng)站收錄。網(wǎng)上有很多帖子,但是大部分只能調用相對地址,還得在前面加一個(gè)網(wǎng)站域名,這個(gè)方法還可以,但是這個(gè)模板會(huì )鬧是用來(lái)建其他網(wǎng)站的,所以不可行??棄?mèng)dedecms獲取當前頁(yè)面URL地址的正確方法:在調用相對地址前添加網(wǎng)站根地址標簽{dede:global.cfg_basehost/}標簽。
織夢(mèng)dedecms數據庫結構字段說(shuō)明-簡(jiǎn)要說(shuō)明
dede_addonarticle 附加文章表格輔助 int(11) 文章編號 typeid int(11) 類(lèi)別列號正文 mediumtext 文章內容 dede_addonflash 附加 Flash 表格輔助 int( 11) FLASH number typeid int(11) Category column number filesize varchar(10) File size playtime varchar(10) Playing duration flashtype varchar(10)@ > 工作類(lèi)型 flashrank smallint(6) 工作排名 wid...
織夢(mèng)Dedecms主文件夾目錄及模板文件說(shuō)明
雖然織夢(mèng)Dedecms曾因為安全問(wèn)題飽受詬病,但漏洞并不能掩蓋漏洞。在用戶(hù)數量和時(shí)間方面,織夢(mèng)Dedecms是國內排名第一的幾款cms建站程序。想要學(xué)習cms的二次開(kāi)發(fā),必須學(xué)習織夢(mèng)Dedecms。對于織夢(mèng)Dede。以下是默認的織夢(mèng)Dedecms程序根目錄。
如何判斷網(wǎng)站織夢(mèng)Dedecms的版本
該方法可以確定目標網(wǎng)站使用的是哪個(gè)版本的織夢(mèng)Dedecms,以及應用補丁的日期。在官方版本的 URL 路徑后添加 /data/admin/ver.txt 附加歷史更新:2010-08-18 安全更新 2010-08-03 安全更新 20100708 是最新版本 5.6 20100324 是5.5 20100429及以后都是5.6版本,對應的日期就是補丁日期,可以知道哪些漏洞沒(méi)有修復5.6版本更新……
織夢(mèng)德德cms網(wǎng)站內部SEO詳解

一.確定網(wǎng)站關(guān)鍵詞的目標最重要的方面,一般網(wǎng)站首頁(yè)目標關(guān)鍵詞建議1-3個(gè)目標。對于目標關(guān)鍵詞@的選擇有幾個(gè)建議1.定位:網(wǎng)站內容和業(yè)務(wù)相關(guān)2.分析:用戶(hù)體驗和競爭對手的分析網(wǎng)站@ >3. 篩選:為了優(yōu)化,如果目標關(guān)鍵詞在前三個(gè)建議中都達不到,最好不要做,用戶(hù)目標不強,最好不要做它,并避免行業(yè)領(lǐng)導者的目標 網(wǎng)站關(guān)鍵詞 。二.寫(xiě)3個(gè)標簽1.標題標簽:2.關(guān)鍵詞標簽:3.描述標簽:關(guān)鍵詞2@>子導航網(wǎng)站二級導航就是加一行target<
織夢(mèng)德德cms技術(shù)資料
dedecms調用文章方法發(fā)布時(shí)間11-20 style([field:pubdate function='strftime("%m-%d",@me)'/]) 2009年5月15日 style ([field:pubdate function='strftime("%b %d, %Y",@me)'/]) 2009-12-27 18:30:02 style [field:pubdate function="GetDateTimeMK(@me) "/] 200…
織夢(mèng)Dedecms模板防盜的四種方法
織夢(mèng)(Dedecms) 模板也是一種財富。如果你不希望自己辛辛苦苦的模板被盜,如果網(wǎng)上有一些和自己一模一樣的網(wǎng)站,那就需要做好模板了。防小偷。本文采集自網(wǎng)上,但網(wǎng)絡(luò )版沒(méi)有提供通過(guò)Nginx 301重定向實(shí)現dedecms模板防盜和403文件禁止實(shí)現織夢(mèng)模板防盜的方法。以下是織夢(mèng)模板防盜的四種方法,希望對大家有所幫助。1.系統文件修復方法 系統文件修復方法 這個(gè)方法好像比較麻煩一點(diǎn)。也需要對織夢(mèng)(Dedecms)系統有一定的熟悉度,才建議這樣做……
熱點(diǎn)話(huà)題
SpringMVC上傳csv文件
使用 while 語(yǔ)句求 1 100 的累積和
如何檢索 git 已刪除工作區的內容
網(wǎng)易 duilib 運行 vs
2015無(wú)法卸載,提示安裝包丟失或損壞
grafana api獲取監視器圖像
Android googlemap 搜索附近

Android仿生開(kāi)源
ubuntu usb驅動(dòng)沒(méi)有權限
特征計數的注釋文件
ssh 連接到 linux
WPF序列化控制xaml
mssql 調試觸發(fā)器
如何解決source insight中文評論顯示亂碼
thinkphp5.1 加載資源文件常量
github android發(fā)光動(dòng)畫(huà)
DESTOON在后臺取shell
python中類(lèi)繼承對象和不繼承的區別
c# Lucene全文搜索
先docker mount再下載
推薦文章:紅隊信息搜集工具(附下載地址)
ratel(獾) 是一個(gè)由rust開(kāi)發(fā)的信息搜集工具,專(zhuān)注web資產(chǎn)發(fā)現,支持從fofa,zoomeye API查詢(xún),提供詳細的配置參數,可靠,可以從錯誤中恢復查詢(xún),自動(dòng)去重。
同時(shí)也支持主動(dòng)掃描端口,探測http,提取https證書(shū)中域名。

ratel 提供細粒度的http poc探測模塊,支持多請求的poc,利用自定義正則表達式提取響應內容并作為后續請求的變量。ratel輸出格式為csv。
下載及詳細用法地址:

好文推薦
歡迎關(guān)注 系統安全運維
解決方案:抖音數據采集教程,Android群控黑盒調用,Sekiro使用手冊
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 244 次瀏覽 ? 2022-09-27 17:15
抖音資料采集教程,Android群控黑盒調用,Sekiro手冊0x0前言
之前試過(guò)用virjar的hermesagent,后來(lái)老大基于長(cháng)鏈接迭代了一個(gè)新的只狼。我一直想看它,但被推遲了。今天正好抽空試了一下,順便寫(xiě)了個(gè)筆記。有錯誤。各位大俠請指正
0x1只狼簡(jiǎn)介
SEKIRO是android下的API服務(wù)暴露框架,可用于app反向、app數據抓取、android群控等場(chǎng)景
與其他群控框架相比,特點(diǎn)如下:
只狼架構
server:
暴露一個(gè)TCP端口和兩個(gè)HTTP端口
管理通過(guò)TCP連接的client和user發(fā)來(lái)的http 請求
client:
通過(guò)TCP和server連接,響應server發(fā)來(lái)的請求
工作流程是這樣的:
1. client通過(guò)TCP和server建立長(cháng)連接
2. user發(fā)送http請求給server
3. server根據用戶(hù)發(fā)來(lái)的http請求的參數,通過(guò)TCP將請求轉發(fā)給client
4. client收到請求并響應server
5. server將從client收到的請求返回給user
具體可以看項目的readme,很詳細:項目傳送門(mén)
0x2 服務(wù)器部署
server端在`sekiro-server/src/main/resources/appliation.properties`中可以配置三個(gè)服務(wù)端端口, 主要服務(wù)端安全策略的出入口需要開(kāi)放這個(gè)三個(gè)端口
#tomcat 占用端口
server.port=5602
#長(cháng)鏈接服務(wù)占用端口
natServerPort=5600
# 異步http占用端口
natHttpServerPort=5601
# websocket占用端口
webSocketServerPort=5603
如果自定義端口,client需要調用SekiroClient.start(String serverHost, int serverPort, final String clientID, String group)中去連接server
執行命令:./gradlew sekiro-server:bootJar 在 sekiro-server/build/libs/sekiro-server-0.0.1-SNAPSHOT.jar 中查找 all-in-one jar包
0x3 客戶(hù)端
public class MainActivity extends AppCompatActivity {
public static int Add(int n1, int n2)
{
return n1 + n2;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(MainActivity.this, "3 + 2 = " + Add(3, 2), Toast.LENGTH_LONG).show();
}
}
Log.i(TAG, "connect server....");
//服務(wù)端host
String testHost = "your_host";
//客戶(hù)端標識
String clientId = UUID.randomUUID().toString();
//接口組名稱(chēng)
String groupName = "addDemoTest2";
//暴露的接口名稱(chēng)
String actionName = "myAdd";
//拿classloader
clzLoader = lpparam.classLoader;
//連接服務(wù)端并且注冊處理的handler
SekiroClient.start(testHost, clientId, groupName)
.registerHandler(actionName, new SekiroRequestHandler(){
@Override
<p>
public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse){
//當服務(wù)端分配任務(wù)時(shí), 這里處理邏輯, 并把結果返回給服務(wù)端, 服務(wù)端再返回給調用者
Class clz = XposedHelpers.findClass("com.example.administrator.adddemo.MainActivity", clzLoader);
int arg1 = sekiroRequest.getInt("arg1");
int arg2 = sekiroRequest.getInt("arg2");
Log.i(TAG, String.format("arg1 : %d, arg2 : %d", arg1, arg2));
Object result = XposedHelpers.callStaticMethod(clz, "Add", arg1, arg2);
Log.i(TAG, "result : " + result);
sekiroResponse.success(result);
}
});</p>
//build.gradle里android{}添加錯誤的path
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/INDEX.LIST'
exclude ('META-INF/io.netty.versions.properties')
}
0x4 嘗試調用
格式: your_server_ip:[natHttpServerPort]/[invoke_type]?group=[group_id]&action=[action_name]¶m1=[arg]
例子: https://x.x.x.x:5602/asyncInvo ... 3D300
感謝和參考
只狼練習
更多短視頻數據實(shí)時(shí)采集接口請查看文檔:TiToData
免責聲明:本文檔僅供學(xué)習參考,請勿用于非法用途!否則后果自負。
程序員信標
轉載請注明原文鏈接:抖音資料采集教程、Android群控黑盒調用、Sekiro用戶(hù)手冊
教程:抖音采集工具更新了
我幾天前發(fā)布了這個(gè)工具,但是有人說(shuō)它不起作用,有人說(shuō)它不起作用。我今天查了一下。作者更新了,更新的工具更好用。作者軟件更新地址:,訪(fǎng)問(wèn)密碼:52pj
該軟件非常易于使用:
先復制抖音鏈接,然后點(diǎn)擊“添加采集”,將抖音鏈接復制進(jìn)去,點(diǎn)擊“保存”。
然后點(diǎn)擊“開(kāi)始采集”,軟件會(huì )自動(dòng)啟動(dòng)到采集,采集下載完成后會(huì )彈出完成對話(huà)框。
請說(shuō)明,我不是軟件作者,如果您對使用該軟件有任何疑問(wèn),請不要問(wèn)我。本軟件移至我愛(ài)論壇()。您可以在五愛(ài)論壇搜索“抖音采集tools”找到軟件作者。 查看全部
解決方案:抖音數據采集教程,Android群控黑盒調用,Sekiro使用手冊
抖音資料采集教程,Android群控黑盒調用,Sekiro手冊0x0前言
之前試過(guò)用virjar的hermesagent,后來(lái)老大基于長(cháng)鏈接迭代了一個(gè)新的只狼。我一直想看它,但被推遲了。今天正好抽空試了一下,順便寫(xiě)了個(gè)筆記。有錯誤。各位大俠請指正
0x1只狼簡(jiǎn)介
SEKIRO是android下的API服務(wù)暴露框架,可用于app反向、app數據抓取、android群控等場(chǎng)景
與其他群控框架相比,特點(diǎn)如下:
只狼架構
server:
暴露一個(gè)TCP端口和兩個(gè)HTTP端口
管理通過(guò)TCP連接的client和user發(fā)來(lái)的http 請求
client:
通過(guò)TCP和server連接,響應server發(fā)來(lái)的請求
工作流程是這樣的:
1. client通過(guò)TCP和server建立長(cháng)連接
2. user發(fā)送http請求給server
3. server根據用戶(hù)發(fā)來(lái)的http請求的參數,通過(guò)TCP將請求轉發(fā)給client
4. client收到請求并響應server
5. server將從client收到的請求返回給user
具體可以看項目的readme,很詳細:項目傳送門(mén)
0x2 服務(wù)器部署
server端在`sekiro-server/src/main/resources/appliation.properties`中可以配置三個(gè)服務(wù)端端口, 主要服務(wù)端安全策略的出入口需要開(kāi)放這個(gè)三個(gè)端口
#tomcat 占用端口
server.port=5602
#長(cháng)鏈接服務(wù)占用端口
natServerPort=5600
# 異步http占用端口
natHttpServerPort=5601
# websocket占用端口
webSocketServerPort=5603
如果自定義端口,client需要調用SekiroClient.start(String serverHost, int serverPort, final String clientID, String group)中去連接server
執行命令:./gradlew sekiro-server:bootJar 在 sekiro-server/build/libs/sekiro-server-0.0.1-SNAPSHOT.jar 中查找 all-in-one jar包

0x3 客戶(hù)端
public class MainActivity extends AppCompatActivity {
public static int Add(int n1, int n2)
{
return n1 + n2;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(MainActivity.this, "3 + 2 = " + Add(3, 2), Toast.LENGTH_LONG).show();
}
}
Log.i(TAG, "connect server....");
//服務(wù)端host
String testHost = "your_host";
//客戶(hù)端標識
String clientId = UUID.randomUUID().toString();
//接口組名稱(chēng)
String groupName = "addDemoTest2";
//暴露的接口名稱(chēng)
String actionName = "myAdd";
//拿classloader
clzLoader = lpparam.classLoader;
//連接服務(wù)端并且注冊處理的handler
SekiroClient.start(testHost, clientId, groupName)
.registerHandler(actionName, new SekiroRequestHandler(){
@Override
<p>

public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse){
//當服務(wù)端分配任務(wù)時(shí), 這里處理邏輯, 并把結果返回給服務(wù)端, 服務(wù)端再返回給調用者
Class clz = XposedHelpers.findClass("com.example.administrator.adddemo.MainActivity", clzLoader);
int arg1 = sekiroRequest.getInt("arg1");
int arg2 = sekiroRequest.getInt("arg2");
Log.i(TAG, String.format("arg1 : %d, arg2 : %d", arg1, arg2));
Object result = XposedHelpers.callStaticMethod(clz, "Add", arg1, arg2);
Log.i(TAG, "result : " + result);
sekiroResponse.success(result);
}
});</p>
//build.gradle里android{}添加錯誤的path
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/INDEX.LIST'
exclude ('META-INF/io.netty.versions.properties')
}
0x4 嘗試調用
格式: your_server_ip:[natHttpServerPort]/[invoke_type]?group=[group_id]&action=[action_name]¶m1=[arg]
例子: https://x.x.x.x:5602/asyncInvo ... 3D300
感謝和參考
只狼練習
更多短視頻數據實(shí)時(shí)采集接口請查看文檔:TiToData
免責聲明:本文檔僅供學(xué)習參考,請勿用于非法用途!否則后果自負。
程序員信標
轉載請注明原文鏈接:抖音資料采集教程、Android群控黑盒調用、Sekiro用戶(hù)手冊
教程:抖音采集工具更新了
我幾天前發(fā)布了這個(gè)工具,但是有人說(shuō)它不起作用,有人說(shuō)它不起作用。我今天查了一下。作者更新了,更新的工具更好用。作者軟件更新地址:,訪(fǎng)問(wèn)密碼:52pj

該軟件非常易于使用:
先復制抖音鏈接,然后點(diǎn)擊“添加采集”,將抖音鏈接復制進(jìn)去,點(diǎn)擊“保存”。

然后點(diǎn)擊“開(kāi)始采集”,軟件會(huì )自動(dòng)啟動(dòng)到采集,采集下載完成后會(huì )彈出完成對話(huà)框。
請說(shuō)明,我不是軟件作者,如果您對使用該軟件有任何疑問(wèn),請不要問(wèn)我。本軟件移至我愛(ài)論壇()。您可以在五愛(ài)論壇搜索“抖音采集tools”找到軟件作者。
技巧:Java性能分析神器-JProfiler詳解
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 165 次瀏覽 ? 2022-09-27 12:19
偶然在云棲社區發(fā)現有人推薦Jprofiler,我就安裝了版本使用。首先聲明本軟件為商用,不建議大家使用破解版!
讓我們開(kāi)始我們的 Jprofiler 之旅吧。
一.什么是JProfiler
JProfiler 是由 ej-technologies GmbH 開(kāi)發(fā)的性能瓶頸分析工具(該公司還開(kāi)發(fā)部署工具)。
特點(diǎn):
二.數據采集
Q1.既然JProfiler是一個(gè)性能瓶頸分析工具,那么這些分析的相關(guān)數據是從哪里來(lái)的呢?
Q2. JProfiler 如何采集和呈現這些數據?
A1.分析的數據主要來(lái)自以下兩部分
1.部分分析接口來(lái)自jvm **JVMTI**(JVM Tool Interface),JDK必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理函數。然后它可以啟用或禁用選定的事件
例如:對象生命周期、線(xiàn)程生命周期等信息
2.部分來(lái)自instruments類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計函數)
例如:方法執行時(shí)間、次數、方法棧等信息
A2.數據采集原理如圖2所示
1. 用戶(hù)在 JProfiler GUI 中發(fā)出監控命令(通常通過(guò)單擊按鈕)
2. JProfiler GUI JVM 通過(guò) socket(默認端口 8849).
向被分析 jvm 中的 JProfile Agent 發(fā)送指令
3. JProfiler Agent(如果對Agent不清楚,請看文章Part 3“啟動(dòng)模式”) 收到指令后,將指令轉換成相關(guān)事件或需要執行的指令被監聽(tīng)注冊去JVMTI或者直接讓JVMTI執行一個(gè)功能(比如dump jvm內存)
4. JVMTI 根據注冊的事件采集當前 jvm 的信息。例如:線(xiàn)程的生命周期; jvm的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;堆內存等實(shí)時(shí)信息。
5. JProfiler Agent 將 采集 好的信息保存在**內存**中,并按照一定的規則進(jìn)行統計(如果所有數據都發(fā)送到 JProfiler GUI 中,它會(huì )比較分析的應用網(wǎng)絡(luò )大影響)
6. 返回 JProfiler GUI Socket。
7. JProfiler GUI Socket 將接收到的信息返回給 JProfiler GUI Render
8. JProfiler GUI Render 渲染最終顯示效果
三.數據采集模式和啟動(dòng)模式
A1.JProfier采集有兩種方式:采樣(Sampling采集)和Instrumentation
注意:JProfiler 本身并不表示 采集 類(lèi)型的數據,這里的 采集 類(lèi)型是 采集 類(lèi)型用于方法調用。因為JProfiler的大部分核心功能都依賴(lài)于方法調用采集的數據,所以可以直接認為是JProfiler的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
四. JProfiler核心概念Filter:需要分析什么類(lèi)。收錄和不收錄兩種類(lèi)型的過(guò)濾器。
Profiling Settings: Receipt 采集 strategy: Sampling and Instrumentation, 部分數據采集細節可定制。
觸發(fā)器:一般在**離線(xiàn)**模式下使用,告訴JProfiler Agent什么時(shí)候觸發(fā)什么行為來(lái)采集指定信息。
Live memory:關(guān)于類(lèi)/類(lèi)實(shí)例的信息。比如對象的個(gè)數和大小,對象創(chuàng )建的方法執行棧,對象創(chuàng )建的熱點(diǎn)。
Heap walker:靜態(tài)分析一定時(shí)間內采集到的內存對象信息,功能強大,好用。收錄對象的傳出引用、傳入引用、最大對象等
CPU視圖:CPU消耗分布和時(shí)間(cpu時(shí)間或運行時(shí)間);方法執行圖;方法執行統計(最大值、最小值、平均運行時(shí)間等)
Thread:當前jvm所有線(xiàn)程的運行狀態(tài),持有鎖的線(xiàn)程的狀態(tài),可以dump線(xiàn)程。
監視器和鎖:所有線(xiàn)程都持有鎖和鎖信息
Telemetries:趨勢圖(遙測視圖),包括堆、線(xiàn)程、gc、類(lèi)等。
空間有限。我將在這里介紹jprofiler。以后會(huì )分享更多的工作內容。有興趣的朋友可以關(guān)注! !
技巧:如何寫(xiě)一篇高質(zhì)量有利于SEO優(yōu)化的文章?
做SEO不僅需要分析網(wǎng)站的結構、流量、關(guān)鍵詞、搜索引擎爬取等數據,SEO人經(jīng)常做的一件事就是定期發(fā)布和更新文章的內容。做SEO的都知道,發(fā)布的內容文章不能過(guò)多的復制粘貼別人的文章內容,這樣會(huì )讓搜索引擎覺(jué)得本站的內容已經(jīng)是別人的了,所以它不會(huì )訪(fǎng)問(wèn)該網(wǎng)站,該網(wǎng)站的內容也不會(huì )被抓取。如果過(guò)于頻繁地復制別人的信息,對SEO優(yōu)化是最不利的。所以,想要網(wǎng)站排名高且穩定,發(fā)布的文章肯定比原創(chuàng )文章好,偶爾有的偽原創(chuàng )也可以。
原創(chuàng )文章 夠用了,但是不明顯,如何快速寫(xiě)出有利于SEO的優(yōu)質(zhì)文章?寫(xiě)一個(gè) 文章 并不難,寫(xiě)一個(gè) 文章 既浪費時(shí)間又無(wú)聊,所以很多 SEO 很難堅持 原創(chuàng ) 的內容。但是,如果掌握好方法,對行業(yè)有深入的了解,參考一些好的同行網(wǎng)站文章,借鑒別人的寫(xiě)法,還是可以寫(xiě)出高質(zhì)量的對 SEO 有益的文章 文章 。跟著(zhù)雙思網(wǎng)小編一起來(lái)學(xué)習如何寫(xiě)出高質(zhì)量的SEO文章。
一、什么文章對SEO優(yōu)化好
1、段落清晰,文字間距合理,圖文協(xié)調。
2、文章邏輯清晰,對用戶(hù)有一定的價(jià)值,吸引用戶(hù)閱讀。
3、文章原創(chuàng ),有圖有文,有自己的看法。
4、主體清晰,關(guān)鍵詞合理部署文章。
5、文章清晰易讀。
如果你寫(xiě)SEO文章并按照上面的要求進(jìn)行編輯,對SEO優(yōu)化是非常有利的。文章原創(chuàng )、文章有價(jià)值,可以吸引用戶(hù)閱讀。這篇文章是 SEO文章 的核心。當然,如果想讓這個(gè)文章被搜索引擎抓取,有圖有文,合理的分布也是必不可少的。
二、如何快速寫(xiě)一篇SEO文章文章
1、了解行業(yè)
要想寫(xiě)出好的文章,就必須做市場(chǎng)調研,而好的SEO文章也離不開(kāi)對行業(yè)的了解。如果一個(gè)人連行業(yè)都不了解,很難寫(xiě)出適合這個(gè)行業(yè)的文章。而如果你不了解這個(gè)行業(yè),你就不知道用戶(hù)的需求在哪里。寫(xiě)文章就是為用戶(hù)寫(xiě),根據用戶(hù)的需要寫(xiě),讓文章能提升網(wǎng)站的質(zhì)量。
2、分析對等站點(diǎn)
寫(xiě)出高質(zhì)量的文章,離不開(kāi)分析同行的高質(zhì)量文章。我們可以分析同行文章的優(yōu)質(zhì)站點(diǎn),找到更多的同行文章進(jìn)行分析,整理成自己的想法,隨著(zhù)時(shí)間的推移形成自己的特色,這樣就可以快速寫(xiě)出優(yōu)質(zhì)文章文章。
3、文章標題
作為一名SEO文章,不僅內容精彩,標題也很重要。一個(gè)好的標題在SEO優(yōu)化中起著(zhù)至關(guān)重要的作用。對于用戶(hù)來(lái)說(shuō),一個(gè)好的文章標題可以吸引用戶(hù)閱讀。對于搜索引擎來(lái)說(shuō),一個(gè)好的標題對于搜索爬取排名至關(guān)重要,而關(guān)鍵詞布局至關(guān)重要。
4、段落清晰,邏輯清晰
一個(gè)好的文章必須有清晰的段落和邏輯思維。這樣,寫(xiě)一篇文章文章就變得簡(jiǎn)單了。如果你遵循邏輯思維,思維就會(huì )清晰,寫(xiě)文章的時(shí)間會(huì )變得更快。
5、關(guān)鍵詞布局
一個(gè)好的seo文章不同于平時(shí)的文章,seo文章要能夠被搜索引擎抓取,并給出排名來(lái)提高整體網(wǎng)站質(zhì)量,為此,寫(xiě)出來(lái)的文章也需要合理分配文章topics關(guān)鍵詞,這個(gè)關(guān)鍵詞可以告訴搜索引擎這個(gè)文章@的核心> 是什么。
6、插圖和文字
一個(gè)好的文章不可能全是文字,需要一張合理的圖片才能讓整個(gè)文章更加生動(dòng)。這樣的一段內容可以吸引用戶(hù)留下腳步和瀏覽。文章,可以證明用戶(hù)喜歡,用戶(hù)喜歡,搜索引擎喜歡,搜索引擎喜歡,自然排名還不錯,目的是提升網(wǎng)站@的整體排名> 可以實(shí)現。
綜上所述,通過(guò)這種方法,何愁寫(xiě)不出高質(zhì)量的SEO文章。簡(jiǎn)單來(lái)說(shuō),寫(xiě)一篇高質(zhì)量的文章文章需要符合用戶(hù)體驗,這樣文章才能吸引用戶(hù)閱讀,而了解用戶(hù)需求是seo的核心。 查看全部
技巧:Java性能分析神器-JProfiler詳解
偶然在云棲社區發(fā)現有人推薦Jprofiler,我就安裝了版本使用。首先聲明本軟件為商用,不建議大家使用破解版!
讓我們開(kāi)始我們的 Jprofiler 之旅吧。
一.什么是JProfiler
JProfiler 是由 ej-technologies GmbH 開(kāi)發(fā)的性能瓶頸分析工具(該公司還開(kāi)發(fā)部署工具)。
特點(diǎn):
二.數據采集
Q1.既然JProfiler是一個(gè)性能瓶頸分析工具,那么這些分析的相關(guān)數據是從哪里來(lái)的呢?
Q2. JProfiler 如何采集和呈現這些數據?
A1.分析的數據主要來(lái)自以下兩部分
1.部分分析接口來(lái)自jvm **JVMTI**(JVM Tool Interface),JDK必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理函數。然后它可以啟用或禁用選定的事件
例如:對象生命周期、線(xiàn)程生命周期等信息
2.部分來(lái)自instruments類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計函數)
例如:方法執行時(shí)間、次數、方法棧等信息
A2.數據采集原理如圖2所示

1. 用戶(hù)在 JProfiler GUI 中發(fā)出監控命令(通常通過(guò)單擊按鈕)
2. JProfiler GUI JVM 通過(guò) socket(默認端口 8849).
向被分析 jvm 中的 JProfile Agent 發(fā)送指令
3. JProfiler Agent(如果對Agent不清楚,請看文章Part 3“啟動(dòng)模式”) 收到指令后,將指令轉換成相關(guān)事件或需要執行的指令被監聽(tīng)注冊去JVMTI或者直接讓JVMTI執行一個(gè)功能(比如dump jvm內存)
4. JVMTI 根據注冊的事件采集當前 jvm 的信息。例如:線(xiàn)程的生命周期; jvm的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;堆內存等實(shí)時(shí)信息。
5. JProfiler Agent 將 采集 好的信息保存在**內存**中,并按照一定的規則進(jìn)行統計(如果所有數據都發(fā)送到 JProfiler GUI 中,它會(huì )比較分析的應用網(wǎng)絡(luò )大影響)
6. 返回 JProfiler GUI Socket。
7. JProfiler GUI Socket 將接收到的信息返回給 JProfiler GUI Render
8. JProfiler GUI Render 渲染最終顯示效果
三.數據采集模式和啟動(dòng)模式
A1.JProfier采集有兩種方式:采樣(Sampling采集)和Instrumentation
注意:JProfiler 本身并不表示 采集 類(lèi)型的數據,這里的 采集 類(lèi)型是 采集 類(lèi)型用于方法調用。因為JProfiler的大部分核心功能都依賴(lài)于方法調用采集的數據,所以可以直接認為是JProfiler的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
四. JProfiler核心概念Filter:需要分析什么類(lèi)。收錄和不收錄兩種類(lèi)型的過(guò)濾器。

Profiling Settings: Receipt 采集 strategy: Sampling and Instrumentation, 部分數據采集細節可定制。
觸發(fā)器:一般在**離線(xiàn)**模式下使用,告訴JProfiler Agent什么時(shí)候觸發(fā)什么行為來(lái)采集指定信息。
Live memory:關(guān)于類(lèi)/類(lèi)實(shí)例的信息。比如對象的個(gè)數和大小,對象創(chuàng )建的方法執行棧,對象創(chuàng )建的熱點(diǎn)。
Heap walker:靜態(tài)分析一定時(shí)間內采集到的內存對象信息,功能強大,好用。收錄對象的傳出引用、傳入引用、最大對象等
CPU視圖:CPU消耗分布和時(shí)間(cpu時(shí)間或運行時(shí)間);方法執行圖;方法執行統計(最大值、最小值、平均運行時(shí)間等)
Thread:當前jvm所有線(xiàn)程的運行狀態(tài),持有鎖的線(xiàn)程的狀態(tài),可以dump線(xiàn)程。
監視器和鎖:所有線(xiàn)程都持有鎖和鎖信息
Telemetries:趨勢圖(遙測視圖),包括堆、線(xiàn)程、gc、類(lèi)等。
空間有限。我將在這里介紹jprofiler。以后會(huì )分享更多的工作內容。有興趣的朋友可以關(guān)注! !
技巧:如何寫(xiě)一篇高質(zhì)量有利于SEO優(yōu)化的文章?
做SEO不僅需要分析網(wǎng)站的結構、流量、關(guān)鍵詞、搜索引擎爬取等數據,SEO人經(jīng)常做的一件事就是定期發(fā)布和更新文章的內容。做SEO的都知道,發(fā)布的內容文章不能過(guò)多的復制粘貼別人的文章內容,這樣會(huì )讓搜索引擎覺(jué)得本站的內容已經(jīng)是別人的了,所以它不會(huì )訪(fǎng)問(wèn)該網(wǎng)站,該網(wǎng)站的內容也不會(huì )被抓取。如果過(guò)于頻繁地復制別人的信息,對SEO優(yōu)化是最不利的。所以,想要網(wǎng)站排名高且穩定,發(fā)布的文章肯定比原創(chuàng )文章好,偶爾有的偽原創(chuàng )也可以。
原創(chuàng )文章 夠用了,但是不明顯,如何快速寫(xiě)出有利于SEO的優(yōu)質(zhì)文章?寫(xiě)一個(gè) 文章 并不難,寫(xiě)一個(gè) 文章 既浪費時(shí)間又無(wú)聊,所以很多 SEO 很難堅持 原創(chuàng ) 的內容。但是,如果掌握好方法,對行業(yè)有深入的了解,參考一些好的同行網(wǎng)站文章,借鑒別人的寫(xiě)法,還是可以寫(xiě)出高質(zhì)量的對 SEO 有益的文章 文章 。跟著(zhù)雙思網(wǎng)小編一起來(lái)學(xué)習如何寫(xiě)出高質(zhì)量的SEO文章。
一、什么文章對SEO優(yōu)化好
1、段落清晰,文字間距合理,圖文協(xié)調。
2、文章邏輯清晰,對用戶(hù)有一定的價(jià)值,吸引用戶(hù)閱讀。
3、文章原創(chuàng ),有圖有文,有自己的看法。
4、主體清晰,關(guān)鍵詞合理部署文章。
5、文章清晰易讀。

如果你寫(xiě)SEO文章并按照上面的要求進(jìn)行編輯,對SEO優(yōu)化是非常有利的。文章原創(chuàng )、文章有價(jià)值,可以吸引用戶(hù)閱讀。這篇文章是 SEO文章 的核心。當然,如果想讓這個(gè)文章被搜索引擎抓取,有圖有文,合理的分布也是必不可少的。
二、如何快速寫(xiě)一篇SEO文章文章
1、了解行業(yè)
要想寫(xiě)出好的文章,就必須做市場(chǎng)調研,而好的SEO文章也離不開(kāi)對行業(yè)的了解。如果一個(gè)人連行業(yè)都不了解,很難寫(xiě)出適合這個(gè)行業(yè)的文章。而如果你不了解這個(gè)行業(yè),你就不知道用戶(hù)的需求在哪里。寫(xiě)文章就是為用戶(hù)寫(xiě),根據用戶(hù)的需要寫(xiě),讓文章能提升網(wǎng)站的質(zhì)量。
2、分析對等站點(diǎn)
寫(xiě)出高質(zhì)量的文章,離不開(kāi)分析同行的高質(zhì)量文章。我們可以分析同行文章的優(yōu)質(zhì)站點(diǎn),找到更多的同行文章進(jìn)行分析,整理成自己的想法,隨著(zhù)時(shí)間的推移形成自己的特色,這樣就可以快速寫(xiě)出優(yōu)質(zhì)文章文章。
3、文章標題
作為一名SEO文章,不僅內容精彩,標題也很重要。一個(gè)好的標題在SEO優(yōu)化中起著(zhù)至關(guān)重要的作用。對于用戶(hù)來(lái)說(shuō),一個(gè)好的文章標題可以吸引用戶(hù)閱讀。對于搜索引擎來(lái)說(shuō),一個(gè)好的標題對于搜索爬取排名至關(guān)重要,而關(guān)鍵詞布局至關(guān)重要。

4、段落清晰,邏輯清晰
一個(gè)好的文章必須有清晰的段落和邏輯思維。這樣,寫(xiě)一篇文章文章就變得簡(jiǎn)單了。如果你遵循邏輯思維,思維就會(huì )清晰,寫(xiě)文章的時(shí)間會(huì )變得更快。
5、關(guān)鍵詞布局
一個(gè)好的seo文章不同于平時(shí)的文章,seo文章要能夠被搜索引擎抓取,并給出排名來(lái)提高整體網(wǎng)站質(zhì)量,為此,寫(xiě)出來(lái)的文章也需要合理分配文章topics關(guān)鍵詞,這個(gè)關(guān)鍵詞可以告訴搜索引擎這個(gè)文章@的核心> 是什么。
6、插圖和文字
一個(gè)好的文章不可能全是文字,需要一張合理的圖片才能讓整個(gè)文章更加生動(dòng)。這樣的一段內容可以吸引用戶(hù)留下腳步和瀏覽。文章,可以證明用戶(hù)喜歡,用戶(hù)喜歡,搜索引擎喜歡,搜索引擎喜歡,自然排名還不錯,目的是提升網(wǎng)站@的整體排名> 可以實(shí)現。
綜上所述,通過(guò)這種方法,何愁寫(xiě)不出高質(zhì)量的SEO文章。簡(jiǎn)單來(lái)說(shuō),寫(xiě)一篇高質(zhì)量的文章文章需要符合用戶(hù)體驗,這樣文章才能吸引用戶(hù)閱讀,而了解用戶(hù)需求是seo的核心。
文章采集調用 深圳品牌推廣哪家好深圳品牌推廣哪里找
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 114 次瀏覽 ? 2022-09-20 21:39
隨著(zhù)百度的算法不斷更新,SEO站長(cháng)工具也對詞庫算法進(jìn)行了升級,細心的人們可能會(huì )發(fā)現,現在很多站點(diǎn)的詞庫都得到了大幅提升,并且排名也更加精準了,能給優(yōu)化人員們提供更精準的參考依據,那么在現今的優(yōu)化過(guò)程中,深圳網(wǎng)絡(luò )推廣又該如何通過(guò)堅持新的文章生成方法來(lái)讓流量暴漲呢?
1、自動(dòng)生成文章程序和樣板
通過(guò)自己寫(xiě)了個(gè)php自動(dòng)處理文章的程序,其原理就是自己動(dòng)手采集一些與關(guān)鍵詞相關(guān)的文章,然后通過(guò)PHP程序進(jìn)行以分號,句號等來(lái)分割成一句句話(huà),然后輸出到一個(gè)文本里面。然后通過(guò)另外一個(gè)php程序進(jìn)行隨機調用,形成每篇文章3個(gè)段落的模板。
2、大量拓展相關(guān)長(cháng)尾詞,堅持每日發(fā)布
深圳網(wǎng)絡(luò )推廣表示可以根據網(wǎng)站以及采集文章的主要核心內容,進(jìn)行挖掘相關(guān)關(guān)鍵詞,并進(jìn)行更合理的拓展,然后每天就堅持按照相關(guān)的關(guān)鍵詞長(cháng)尾詞做標題進(jìn)行更新網(wǎng)站,但也要注意進(jìn)行語(yǔ)句的檢查通順等。
現在做網(wǎng)站SEO優(yōu)化越來(lái)越不容易,競爭力也越來(lái)越大,深圳網(wǎng)絡(luò )推廣的優(yōu)化人員們也要不斷地學(xué)習和探索新的優(yōu)化方法,來(lái)對優(yōu)化進(jìn)行不斷地調整,幫助網(wǎng)站排名越來(lái)越好。 查看全部
文章采集調用 深圳品牌推廣哪家好深圳品牌推廣哪里找
隨著(zhù)百度的算法不斷更新,SEO站長(cháng)工具也對詞庫算法進(jìn)行了升級,細心的人們可能會(huì )發(fā)現,現在很多站點(diǎn)的詞庫都得到了大幅提升,并且排名也更加精準了,能給優(yōu)化人員們提供更精準的參考依據,那么在現今的優(yōu)化過(guò)程中,深圳網(wǎng)絡(luò )推廣又該如何通過(guò)堅持新的文章生成方法來(lái)讓流量暴漲呢?

1、自動(dòng)生成文章程序和樣板
通過(guò)自己寫(xiě)了個(gè)php自動(dòng)處理文章的程序,其原理就是自己動(dòng)手采集一些與關(guān)鍵詞相關(guān)的文章,然后通過(guò)PHP程序進(jìn)行以分號,句號等來(lái)分割成一句句話(huà),然后輸出到一個(gè)文本里面。然后通過(guò)另外一個(gè)php程序進(jìn)行隨機調用,形成每篇文章3個(gè)段落的模板。

2、大量拓展相關(guān)長(cháng)尾詞,堅持每日發(fā)布
深圳網(wǎng)絡(luò )推廣表示可以根據網(wǎng)站以及采集文章的主要核心內容,進(jìn)行挖掘相關(guān)關(guān)鍵詞,并進(jìn)行更合理的拓展,然后每天就堅持按照相關(guān)的關(guān)鍵詞長(cháng)尾詞做標題進(jìn)行更新網(wǎng)站,但也要注意進(jìn)行語(yǔ)句的檢查通順等。
現在做網(wǎng)站SEO優(yōu)化越來(lái)越不容易,競爭力也越來(lái)越大,深圳網(wǎng)絡(luò )推廣的優(yōu)化人員們也要不斷地學(xué)習和探索新的優(yōu)化方法,來(lái)對優(yōu)化進(jìn)行不斷地調整,幫助網(wǎng)站排名越來(lái)越好。
python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2022-09-17 09:01
文章采集調用十多個(gè)網(wǎng)站(包括個(gè)人博客)采集的內容,內容包括wp-cruiser爬蟲(chóng)基礎算法與深度學(xué)習+tensorflow機器學(xué)習。這里關(guān)于wp-cruiser安裝,這篇已經(jīng)有詳細介紹,網(wǎng)上有具體的安裝教程,可以搜索了解下。主要的原理是基于wp-cruiser算法實(shí)現的。我們更關(guān)心的是最終效果如何?源代碼和相關(guān)解釋在cookiefailures.py文件,放在我的github地址。
這個(gè)文件源碼,之前已經(jīng)放到github上,代碼打算公開(kāi),并統一按照doc格式提交。github地址:yaw-zhang/wp-cruiser項目部署請參考鏈接。
被采集對象(即知乎)采用多站點(diǎn)-多觸點(diǎn)方式進(jìn)行采集。本文已獲得作者授權,希望對學(xué)習python爬蟲(chóng)或者python爬蟲(chóng)開(kāi)發(fā)感興趣的朋友,能夠認真閱讀本文,在這里把本人的總結提煉下,分享給大家。python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰。整理與實(shí)戰可以加入爬蟲(chóng)開(kāi)發(fā)從0到1的實(shí)戰訓練營(yíng),有興趣的同學(xué),可以加入。
一.思維導圖本項目整體結構為:urllib/requests庫獲取登錄頁(yè)面的url,利用beautifulsoup庫解析頁(yè)面獲取行政區劃信息gb/tm字段解析與組合批量采集行政區劃信息selenium庫用于模擬登錄抓取頁(yè)面bs4解析頁(yè)面頁(yè)面vs.post請求,爬蟲(chóng)的正確姿勢及爬蟲(chóng)開(kāi)發(fā)框架與任務(wù)分配。二.本文主要解決幾個(gè)問(wèn)題1.爬蟲(chóng)采集哪些網(wǎng)站?2.爬蟲(chóng)如何解析頁(yè)面?3.如何將爬取到的網(wǎng)站頁(yè)面在requests中封裝為field?三.實(shí)現結構1.urllib庫登錄/授權/登錄方式(ssl,和session,cookie)2.beautifulsoup庫爬取/解析請求相關(guān)頁(yè)面3.爬蟲(chóng)解析爬取頁(yè)面4.抓取登錄頁(yè)面5.獲取授權登錄頁(yè)面6.獲取行政區劃信息/local_map頁(yè)面7.抓取獲取group_name頁(yè)面8.抓取獲取指定區劃頁(yè)面9.爬取post請求信息的信息。
5.有幾個(gè)請求?分別包括哪些參數,請求會(huì )不會(huì )被封ip?6.請求參數中傳遞了哪些參數?請求間有什么聯(lián)系?7.登錄登錄成功返回url請求后還是不能登錄或者登錄成功后不能解析頁(yè)面.登錄成功后會(huì )不會(huì )成功授權獲取登錄相關(guān)信息然后就不能登錄,或者授權獲取之后又不能抓取相關(guān)信息等問(wèn)題.1.用登錄登錄看似簡(jiǎn)單,但是爬蟲(chóng)未必好爬取,畢竟不是全自動(dòng)登錄。
一般采用幾種:初始化自動(dòng)登錄;二次登錄第三方登錄;手動(dòng)登錄+授權登錄。2.獲取登錄頁(yè)面,一般根據瀏覽器實(shí)現,分為基于get請求登錄和post請求登錄。舉個(gè)例子:requests請求登錄,要做的事情,比如設置頭、響應驗證碼、驗證碼破解等,數據格式是xml,所以需要轉成json。并且會(huì )生成封裝的x。 查看全部
python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰
文章采集調用十多個(gè)網(wǎng)站(包括個(gè)人博客)采集的內容,內容包括wp-cruiser爬蟲(chóng)基礎算法與深度學(xué)習+tensorflow機器學(xué)習。這里關(guān)于wp-cruiser安裝,這篇已經(jīng)有詳細介紹,網(wǎng)上有具體的安裝教程,可以搜索了解下。主要的原理是基于wp-cruiser算法實(shí)現的。我們更關(guān)心的是最終效果如何?源代碼和相關(guān)解釋在cookiefailures.py文件,放在我的github地址。

這個(gè)文件源碼,之前已經(jīng)放到github上,代碼打算公開(kāi),并統一按照doc格式提交。github地址:yaw-zhang/wp-cruiser項目部署請參考鏈接。
被采集對象(即知乎)采用多站點(diǎn)-多觸點(diǎn)方式進(jìn)行采集。本文已獲得作者授權,希望對學(xué)習python爬蟲(chóng)或者python爬蟲(chóng)開(kāi)發(fā)感興趣的朋友,能夠認真閱讀本文,在這里把本人的總結提煉下,分享給大家。python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰。整理與實(shí)戰可以加入爬蟲(chóng)開(kāi)發(fā)從0到1的實(shí)戰訓練營(yíng),有興趣的同學(xué),可以加入。

一.思維導圖本項目整體結構為:urllib/requests庫獲取登錄頁(yè)面的url,利用beautifulsoup庫解析頁(yè)面獲取行政區劃信息gb/tm字段解析與組合批量采集行政區劃信息selenium庫用于模擬登錄抓取頁(yè)面bs4解析頁(yè)面頁(yè)面vs.post請求,爬蟲(chóng)的正確姿勢及爬蟲(chóng)開(kāi)發(fā)框架與任務(wù)分配。二.本文主要解決幾個(gè)問(wèn)題1.爬蟲(chóng)采集哪些網(wǎng)站?2.爬蟲(chóng)如何解析頁(yè)面?3.如何將爬取到的網(wǎng)站頁(yè)面在requests中封裝為field?三.實(shí)現結構1.urllib庫登錄/授權/登錄方式(ssl,和session,cookie)2.beautifulsoup庫爬取/解析請求相關(guān)頁(yè)面3.爬蟲(chóng)解析爬取頁(yè)面4.抓取登錄頁(yè)面5.獲取授權登錄頁(yè)面6.獲取行政區劃信息/local_map頁(yè)面7.抓取獲取group_name頁(yè)面8.抓取獲取指定區劃頁(yè)面9.爬取post請求信息的信息。
5.有幾個(gè)請求?分別包括哪些參數,請求會(huì )不會(huì )被封ip?6.請求參數中傳遞了哪些參數?請求間有什么聯(lián)系?7.登錄登錄成功返回url請求后還是不能登錄或者登錄成功后不能解析頁(yè)面.登錄成功后會(huì )不會(huì )成功授權獲取登錄相關(guān)信息然后就不能登錄,或者授權獲取之后又不能抓取相關(guān)信息等問(wèn)題.1.用登錄登錄看似簡(jiǎn)單,但是爬蟲(chóng)未必好爬取,畢竟不是全自動(dòng)登錄。
一般采用幾種:初始化自動(dòng)登錄;二次登錄第三方登錄;手動(dòng)登錄+授權登錄。2.獲取登錄頁(yè)面,一般根據瀏覽器實(shí)現,分為基于get請求登錄和post請求登錄。舉個(gè)例子:requests請求登錄,要做的事情,比如設置頭、響應驗證碼、驗證碼破解等,數據格式是xml,所以需要轉成json。并且會(huì )生成封裝的x。
文章采集調用 外貿b2b海外采購退稅c2c收款行香港對公賬戶(hù)提現
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2022-09-16 14:04
文章采集調用固定ip,但是不能采集國內外的信息,需要采集國外的信息是因為,開(kāi)通外貿b2b海外采購退稅提供中國的站點(diǎn),能實(shí)現支付寶跨境收款,將國外收取到的款項通過(guò)支付寶轉到國內賬戶(hù),實(shí)現c2c收款方式,那么,
1、在產(chǎn)品詳情頁(yè)面,
2、填寫(xiě)收款公司,
3、填寫(xiě)收款金額
4、填寫(xiě)收款賬號信息
5、填寫(xiě)收款公司郵箱,請告知對方郵箱地址,
6、確認后,即可收款國外網(wǎng)站的款項,并且無(wú)法將款項退回國內對賬戶(hù)。
需要謹慎操作,
1、國外收款公司是否與amazon、亞馬遜,
2、國外收款公司提供的銀行賬號信息,
3、國外收款公司提供的收款賬號,是否為visa、mastercard等國際收單公司,
4、國外收款公司的提現賬號信息是否一致
5、國外收款公司是否支持中國賣(mài)家賬號提現
6、國外收款公司的官網(wǎng)有無(wú)支付寶收款二維碼
我們是可以支持香港云平臺收款的。收款行香港對公賬戶(hù),云平臺會(huì )給推薦多家香港銀行機構的合作資格。國內支付平臺收款也支持香港對公賬戶(hù)提現到公司賬戶(hù),國內不支持跨境支付。 查看全部
文章采集調用 外貿b2b海外采購退稅c2c收款行香港對公賬戶(hù)提現
文章采集調用固定ip,但是不能采集國內外的信息,需要采集國外的信息是因為,開(kāi)通外貿b2b海外采購退稅提供中國的站點(diǎn),能實(shí)現支付寶跨境收款,將國外收取到的款項通過(guò)支付寶轉到國內賬戶(hù),實(shí)現c2c收款方式,那么,
1、在產(chǎn)品詳情頁(yè)面,
2、填寫(xiě)收款公司,
3、填寫(xiě)收款金額

4、填寫(xiě)收款賬號信息
5、填寫(xiě)收款公司郵箱,請告知對方郵箱地址,
6、確認后,即可收款國外網(wǎng)站的款項,并且無(wú)法將款項退回國內對賬戶(hù)。
需要謹慎操作,
1、國外收款公司是否與amazon、亞馬遜,

2、國外收款公司提供的銀行賬號信息,
3、國外收款公司提供的收款賬號,是否為visa、mastercard等國際收單公司,
4、國外收款公司的提現賬號信息是否一致
5、國外收款公司是否支持中國賣(mài)家賬號提現
6、國外收款公司的官網(wǎng)有無(wú)支付寶收款二維碼
我們是可以支持香港云平臺收款的。收款行香港對公賬戶(hù),云平臺會(huì )給推薦多家香港銀行機構的合作資格。國內支付平臺收款也支持香港對公賬戶(hù)提現到公司賬戶(hù),國內不支持跨境支付。
Golang性能分析工具pprof使用總結
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 105 次瀏覽 ? 2022-08-31 10:01
pprof是Golang自帶的一款開(kāi)箱即用的性能監控和分析工具, 使用非常簡(jiǎn)單方便。
1. pprof使用
pprof使用主要有兩種方式,一種是在項目中導入runtime/pprof,另一種是導入net/http/pprof, 兩者的差異如下:
使用示例如下:
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />
package main<br /><br />import (<br /> "fmt"<br /> "os"<br /> "runtime/pprof"<br /> "time"<br />)<br /><br />func main() {<br /> // 創(chuàng )建分析文件<br /> file, err := os.Create("./cpu.prof")<br /> if err != nil {<br /> fmt.Printf("創(chuàng )建采集文件失敗, err:%v\n", err)<br /> return<br /> }<br /><br /> // 進(jìn)行cpu數據的獲取<br /> pprof.StartCPUProfile(file)<br /> defer pprof.StopCPUProfile()<br /><br /> time.Sleep(10 * time.Second)<br />}<br /><br />
之后通過(guò)命令行分析cpu.prof文件進(jìn)行性能分析,由于該方式使用不多,這里不進(jìn)行深度總結,感興趣可以查閱相關(guān)文章,這次我們重點(diǎn)總結http形式采集數據。
http形式使用十分簡(jiǎn)單,importnet/http/pprof即可,會(huì )自動(dòng)調用package里面的init方法,進(jìn)行初始化,如下:
1<br />2<br />3<br />4<br />5<br />
import _ "net/http/pprof"<br /><br />go func() {<br /> http.ListenAndServe("localhost:8080", nil)<br />}()
之后就可以通過(guò):8080/debug/pprof/[類(lèi)型]獲取對應的采樣數據。支持的”[類(lèi)型]”有:
類(lèi)型描述
allocs
內存分配情況的采樣信息
blocks
阻塞操作情況的采樣信息
cmdline
顯示程序啟動(dòng)命令參數及其參數
goroutine
顯示當前所有協(xié)程的堆棧信息
heap
堆上的內存分配情況的采樣信息
mutex
鎖競爭情況的采樣信息
profile
cpu占用情況的采樣信息,點(diǎn)擊會(huì )下載文件
threadcreate
系統線(xiàn)程創(chuàng )建情況的采樣信息
trace
程序運行跟蹤信息
重點(diǎn)我們關(guān)注以下幾種類(lèi)型:
2. 分析實(shí)踐2.1 CPU使用分析
通過(guò)以下命令分析CPU使用情況。
1<br />
go tool pprof http://localhost:8080/debug/pprof/profile
等待30秒后,執行top命令可以看到如下結果:
先簡(jiǎn)單了解一下結果中flat,sum,cum的含義:
類(lèi)型描述舉例
flat
該函數占用CPU的耗時(shí)
selectnbrecv占用CPU的耗時(shí)是12.29s
flat%
該函數占用CPU的耗時(shí)的百分比
selectnbrecv耗時(shí):12.29s,cpu總耗時(shí):29.14,12.29/29.14=42.18
sum%
top命令中排在它上面的函數以及本函數flat%之和
chanrecv:42.18%+30.47% = 72.65%
cum
當前函數加上該函數調用之前的累計CPU耗時(shí)
chanrecv:8.88+0.54=9.42
cum%
當前函數加上該函數調用之前的累計CPU耗時(shí)的百分比
9.42/29.14=32.33%
通過(guò)以上結果,我們可以看到占用CPU比較高的方法,接下來(lái)可以通過(guò)list WirteString(list+方法名)查看占用CPU最高的方法代碼明細:
通過(guò)代碼明細我們可以看到,字符串拼接占用的CPU資源最多,可以針對這行代碼進(jìn)行優(yōu)化。
2.2 內存使用分析
內存使用分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊heap標簽進(jìn)行查看,如下:
直接在網(wǎng)頁(yè)上查看并不是特別便利,一般情況下我們采用go tool pprof命令下載Profile采樣文件進(jìn)行可視化分析, 可采用如下命令:
1<br />
go tool pprof --http=:1234 go tool pprof http://localhost:8080/debug/pprof/heap<br />
以上命令會(huì )打開(kāi)一個(gè)網(wǎng)頁(yè),頁(yè)面效果如下:
左上的下拉條可以選擇不同的可視化方式查看不同的數據:
選項卡SAMPLE中space相關(guān)是展示內存大小,單位是Byte;而objects相關(guān)展示的對象,單位是個(gè),是有差異的。例如inuse_space展示的是現在正在使用的內存,被分配但是還沒(méi)有被釋放,alloc_space展示的是程序啟動(dòng)到現在的分配內存,包括那些已經(jīng)被釋放的內存,我們一般用這個(gè)來(lái)定位代碼中創(chuàng )建臨時(shí)變量的大戶(hù);
通過(guò)VIEW選項卡,我們可以切換不同的視圖形式來(lái)查看分析結果。
Top
源碼形式
火焰圖形式
2.3 協(xié)程分析
協(xié)程分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊goroutine標簽進(jìn)行查看, 也可以采用go tool pprof命令下載采樣文件進(jìn)行可視化分析。
在goroutine分析頁(yè)面我們可以看到協(xié)程數量和每個(gè)方法產(chǎn)生的協(xié)程數量。
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />
goroutine profile: total 108<br />83 @ 0x438196 0x40666c 0x406098 0xc10cbd 0x4687c1<br /># 0xc10cbc jzserver/core/os/gtimer.(*Timer).loop.func1+0x7c /Documents/gotest/core/os/gtimer/gtimer_timer_loop.go:15<br /><br />11 @ 0x438196 0x447f32 0x91ac0c 0x4687c1<br /># 0x91ac0b jzserver/core/net/gnet.(*MsgHandler).startOneWorker+0xab /Documents/gotest/core/net/gnet/gnet_msg_handler.go:76<br /><br />1 @ 0x40bb54 0x464f18 0xc13279 0x4687c1<br /># 0x464f17 os/signal.signal_recv+0x97 /go/go1.17.6/src/runtime/sigqueue.go:169<br /># 0xc13278 os/signal.loop+0x18 /go/go1.17.6/src/os/signal/signal_unix.go:24<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1509c 0xd8a1a5 0x437dc7 0x4687c1<br /># 0xc1509b jzserver/main/internal.WaitStopSignal+0xbb /Documents/gotest/main/internal/signal.go:15<br /># 0xd8a1a4 main.main+0x144 /Documents/gotest/main/game_server.go:75<br /># 0x437dc6 runtime.main+0x226 /go/go1.17.6/src/runtime/proc.go:255<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1536c 0x4687c1<br /># 0xc1536b jzserver/main/internal.WaitReloadConfigSignal.func1+0x2b /Documents/gotest/main/internal/signal.go:47<br /><br />1 @ 0x438196 0x40666c 0x4060d8 0xc45431 0x4687c1<br /># 0xc45430 jzserver/core/net/gwebsocket.(*Server).Run+0x30 /Documents/gotest/core/net/gwebsocket/gwebsocket_server.go:152<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x4abb3a 0xc0c1d3 0xc0c1ae 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x4abb39 io.ReadAtLeast+0x99 /go/go1.17.6/src/io/io.go:328<br /># 0xc0c1d2 io.ReadFull+0x132 /go/go1.17.6/src/io/io.go:347<br /># 0xc0c1ad jzserver/core/net/gtcp.(*Connection).StartReader+0x10d /Documents/gotest/core/net/gtcp/gtcp_connection.go:100<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x6c57df 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x6c57de net/http.(*connReader).backgroundRead+0x3e /go/go1.17.6/src/net/http/server.go:672<br /><br />
我們將鏈接后面的debug=1改為debug=2(以unrecovered panic的格式打印堆棧,可讀性更高),可以見(jiàn)到各協(xié)程等待時(shí)長(cháng),可用于分析goroutine泄漏
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />
goroutine 57914819 [running]:<br />runtime/pprof.writeGoroutineStacks({0x10a4760, 0xc000990fc0})<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:693 +0x70<br />runtime/pprof.writeGoroutine({0x10a4760, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:682 +0x2b<br />runtime/pprof.(*Profile).WriteTo(0xeadca0, {0x10a4760, 0xc000990fc0}, 0xc)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:331 +0x14b<br />net/http/pprof.handler.ServeHTTP({0xc000952191, 0x1822580}, {0x10bd528, 0xc000990fc0}, 0xc000952184)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:253 +0x49a<br />net/http/pprof.Index({0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:371 +0x12e<br />net/http.HandlerFunc.ServeHTTP(0x0, {0x10bd528, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/net/http/server.go:2047 +0x2f<br />net/http.(*ServeMux).ServeHTTP(0xc00095219b, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2425 +0x149<br />net/http.serverHandler.ServeHTTP({0xc00168d800}, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2879 +0x43b<br />net/http.(*conn).serve(0xc0015f5220, {0x10c06c0, 0xc000472210})<br /> /gotest/go1.17.6/src/net/http/server.go:1930 +0xb08<br />created by net/http.(*Server).Serve<br /> /gotest/go1.17.6/src/net/http/server.go:3034 +0x4e8<br /><br />goroutine 1 [chan receive, 7547 minutes]:<br />jzserver/main/internal.WaitStopSignal()<br /> /gotest/main/internal/signal.go:15 +0xbc<br />main.main()<br /> /gotest/main/game_server.go:75 +0x145<br /><br />goroutine 50 [select, 48 minutes]:<br />database/sql.(*DB).connectionCleaner(0xc0000a24e0, 0xc0001ca8d0)<br /> /gotest/go1.17.6/src/database/sql/sql.go:1068 +0xbd<br />created by database/sql.(*DB).startCleanerLocked<br /> /gotest/go1.17.6/src/database/sql/sql.go:1055 +0x105<br /><br />goroutine 49 [chan receive]:<br />jzserver/core/os/gtimer.(*Timer).loop.func1()<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:15 +0x7d<br />created by jzserver/core/os/gtimer.(*Timer).loop<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:7 +0x5b<br /><br />goroutine 6 [select, 7547 minutes]:<br />database/sql.(*DB).connectionOpener(0xc0000a24e0, {0x10c0618, 0xc00021c440})<br /> /gotest/go1.17.6/src/database/sql/sql.go:1196 +0x93<br />created by database/sql.OpenDB<br /> /gotest/go1.17.6/src/database/sql/sql.go:794 +0x188
3. 其他總結
1<br />
brew install graphviz<br />
其他系統安裝參考Graphviz Download。 查看全部
Golang性能分析工具pprof使用總結
pprof是Golang自帶的一款開(kāi)箱即用的性能監控和分析工具, 使用非常簡(jiǎn)單方便。
1. pprof使用
pprof使用主要有兩種方式,一種是在項目中導入runtime/pprof,另一種是導入net/http/pprof, 兩者的差異如下:
使用示例如下:
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />
package main<br /><br />import (<br /> "fmt"<br /> "os"<br /> "runtime/pprof"<br /> "time"<br />)<br /><br />func main() {<br /> // 創(chuàng )建分析文件<br /> file, err := os.Create("./cpu.prof")<br /> if err != nil {<br /> fmt.Printf("創(chuàng )建采集文件失敗, err:%v\n", err)<br /> return<br /> }<br /><br /> // 進(jìn)行cpu數據的獲取<br /> pprof.StartCPUProfile(file)<br /> defer pprof.StopCPUProfile()<br /><br /> time.Sleep(10 * time.Second)<br />}<br /><br />
之后通過(guò)命令行分析cpu.prof文件進(jìn)行性能分析,由于該方式使用不多,這里不進(jìn)行深度總結,感興趣可以查閱相關(guān)文章,這次我們重點(diǎn)總結http形式采集數據。
http形式使用十分簡(jiǎn)單,importnet/http/pprof即可,會(huì )自動(dòng)調用package里面的init方法,進(jìn)行初始化,如下:
1<br />2<br />3<br />4<br />5<br />
import _ "net/http/pprof"<br /><br />go func() {<br /> http.ListenAndServe("localhost:8080", nil)<br />}()
之后就可以通過(guò):8080/debug/pprof/[類(lèi)型]獲取對應的采樣數據。支持的”[類(lèi)型]”有:
類(lèi)型描述
allocs
內存分配情況的采樣信息
blocks
阻塞操作情況的采樣信息
cmdline
顯示程序啟動(dòng)命令參數及其參數
goroutine
顯示當前所有協(xié)程的堆棧信息
heap
堆上的內存分配情況的采樣信息
mutex
鎖競爭情況的采樣信息
profile
cpu占用情況的采樣信息,點(diǎn)擊會(huì )下載文件
threadcreate
系統線(xiàn)程創(chuàng )建情況的采樣信息
trace
程序運行跟蹤信息

重點(diǎn)我們關(guān)注以下幾種類(lèi)型:
2. 分析實(shí)踐2.1 CPU使用分析
通過(guò)以下命令分析CPU使用情況。
1<br />
go tool pprof http://localhost:8080/debug/pprof/profile
等待30秒后,執行top命令可以看到如下結果:
先簡(jiǎn)單了解一下結果中flat,sum,cum的含義:
類(lèi)型描述舉例
flat
該函數占用CPU的耗時(shí)
selectnbrecv占用CPU的耗時(shí)是12.29s
flat%
該函數占用CPU的耗時(shí)的百分比
selectnbrecv耗時(shí):12.29s,cpu總耗時(shí):29.14,12.29/29.14=42.18
sum%
top命令中排在它上面的函數以及本函數flat%之和
chanrecv:42.18%+30.47% = 72.65%
cum
當前函數加上該函數調用之前的累計CPU耗時(shí)
chanrecv:8.88+0.54=9.42
cum%
當前函數加上該函數調用之前的累計CPU耗時(shí)的百分比
9.42/29.14=32.33%
通過(guò)以上結果,我們可以看到占用CPU比較高的方法,接下來(lái)可以通過(guò)list WirteString(list+方法名)查看占用CPU最高的方法代碼明細:
通過(guò)代碼明細我們可以看到,字符串拼接占用的CPU資源最多,可以針對這行代碼進(jìn)行優(yōu)化。
2.2 內存使用分析
內存使用分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊heap標簽進(jìn)行查看,如下:

直接在網(wǎng)頁(yè)上查看并不是特別便利,一般情況下我們采用go tool pprof命令下載Profile采樣文件進(jìn)行可視化分析, 可采用如下命令:
1<br />
go tool pprof --http=:1234 go tool pprof http://localhost:8080/debug/pprof/heap<br />
以上命令會(huì )打開(kāi)一個(gè)網(wǎng)頁(yè),頁(yè)面效果如下:
左上的下拉條可以選擇不同的可視化方式查看不同的數據:
選項卡SAMPLE中space相關(guān)是展示內存大小,單位是Byte;而objects相關(guān)展示的對象,單位是個(gè),是有差異的。例如inuse_space展示的是現在正在使用的內存,被分配但是還沒(méi)有被釋放,alloc_space展示的是程序啟動(dòng)到現在的分配內存,包括那些已經(jīng)被釋放的內存,我們一般用這個(gè)來(lái)定位代碼中創(chuàng )建臨時(shí)變量的大戶(hù);
通過(guò)VIEW選項卡,我們可以切換不同的視圖形式來(lái)查看分析結果。
Top
源碼形式
火焰圖形式
2.3 協(xié)程分析
協(xié)程分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊goroutine標簽進(jìn)行查看, 也可以采用go tool pprof命令下載采樣文件進(jìn)行可視化分析。
在goroutine分析頁(yè)面我們可以看到協(xié)程數量和每個(gè)方法產(chǎn)生的協(xié)程數量。
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />
goroutine profile: total 108<br />83 @ 0x438196 0x40666c 0x406098 0xc10cbd 0x4687c1<br /># 0xc10cbc jzserver/core/os/gtimer.(*Timer).loop.func1+0x7c /Documents/gotest/core/os/gtimer/gtimer_timer_loop.go:15<br /><br />11 @ 0x438196 0x447f32 0x91ac0c 0x4687c1<br /># 0x91ac0b jzserver/core/net/gnet.(*MsgHandler).startOneWorker+0xab /Documents/gotest/core/net/gnet/gnet_msg_handler.go:76<br /><br />1 @ 0x40bb54 0x464f18 0xc13279 0x4687c1<br /># 0x464f17 os/signal.signal_recv+0x97 /go/go1.17.6/src/runtime/sigqueue.go:169<br /># 0xc13278 os/signal.loop+0x18 /go/go1.17.6/src/os/signal/signal_unix.go:24<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1509c 0xd8a1a5 0x437dc7 0x4687c1<br /># 0xc1509b jzserver/main/internal.WaitStopSignal+0xbb /Documents/gotest/main/internal/signal.go:15<br /># 0xd8a1a4 main.main+0x144 /Documents/gotest/main/game_server.go:75<br /># 0x437dc6 runtime.main+0x226 /go/go1.17.6/src/runtime/proc.go:255<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1536c 0x4687c1<br /># 0xc1536b jzserver/main/internal.WaitReloadConfigSignal.func1+0x2b /Documents/gotest/main/internal/signal.go:47<br /><br />1 @ 0x438196 0x40666c 0x4060d8 0xc45431 0x4687c1<br /># 0xc45430 jzserver/core/net/gwebsocket.(*Server).Run+0x30 /Documents/gotest/core/net/gwebsocket/gwebsocket_server.go:152<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x4abb3a 0xc0c1d3 0xc0c1ae 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x4abb39 io.ReadAtLeast+0x99 /go/go1.17.6/src/io/io.go:328<br /># 0xc0c1d2 io.ReadFull+0x132 /go/go1.17.6/src/io/io.go:347<br /># 0xc0c1ad jzserver/core/net/gtcp.(*Connection).StartReader+0x10d /Documents/gotest/core/net/gtcp/gtcp_connection.go:100<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x6c57df 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x6c57de net/http.(*connReader).backgroundRead+0x3e /go/go1.17.6/src/net/http/server.go:672<br /><br />
我們將鏈接后面的debug=1改為debug=2(以unrecovered panic的格式打印堆棧,可讀性更高),可以見(jiàn)到各協(xié)程等待時(shí)長(cháng),可用于分析goroutine泄漏
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />
goroutine 57914819 [running]:<br />runtime/pprof.writeGoroutineStacks({0x10a4760, 0xc000990fc0})<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:693 +0x70<br />runtime/pprof.writeGoroutine({0x10a4760, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:682 +0x2b<br />runtime/pprof.(*Profile).WriteTo(0xeadca0, {0x10a4760, 0xc000990fc0}, 0xc)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:331 +0x14b<br />net/http/pprof.handler.ServeHTTP({0xc000952191, 0x1822580}, {0x10bd528, 0xc000990fc0}, 0xc000952184)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:253 +0x49a<br />net/http/pprof.Index({0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:371 +0x12e<br />net/http.HandlerFunc.ServeHTTP(0x0, {0x10bd528, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/net/http/server.go:2047 +0x2f<br />net/http.(*ServeMux).ServeHTTP(0xc00095219b, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2425 +0x149<br />net/http.serverHandler.ServeHTTP({0xc00168d800}, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2879 +0x43b<br />net/http.(*conn).serve(0xc0015f5220, {0x10c06c0, 0xc000472210})<br /> /gotest/go1.17.6/src/net/http/server.go:1930 +0xb08<br />created by net/http.(*Server).Serve<br /> /gotest/go1.17.6/src/net/http/server.go:3034 +0x4e8<br /><br />goroutine 1 [chan receive, 7547 minutes]:<br />jzserver/main/internal.WaitStopSignal()<br /> /gotest/main/internal/signal.go:15 +0xbc<br />main.main()<br /> /gotest/main/game_server.go:75 +0x145<br /><br />goroutine 50 [select, 48 minutes]:<br />database/sql.(*DB).connectionCleaner(0xc0000a24e0, 0xc0001ca8d0)<br /> /gotest/go1.17.6/src/database/sql/sql.go:1068 +0xbd<br />created by database/sql.(*DB).startCleanerLocked<br /> /gotest/go1.17.6/src/database/sql/sql.go:1055 +0x105<br /><br />goroutine 49 [chan receive]:<br />jzserver/core/os/gtimer.(*Timer).loop.func1()<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:15 +0x7d<br />created by jzserver/core/os/gtimer.(*Timer).loop<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:7 +0x5b<br /><br />goroutine 6 [select, 7547 minutes]:<br />database/sql.(*DB).connectionOpener(0xc0000a24e0, {0x10c0618, 0xc00021c440})<br /> /gotest/go1.17.6/src/database/sql/sql.go:1196 +0x93<br />created by database/sql.OpenDB<br /> /gotest/go1.17.6/src/database/sql/sql.go:794 +0x188
3. 其他總結
1<br />
brew install graphviz<br />
其他系統安裝參考Graphviz Download。
你有真正了解過(guò)國產(chǎn)開(kāi)源框架APM工具——SkyWalking技術(shù)有多牛嗎
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 139 次瀏覽 ? 2022-08-31 09:56
◆SkyWalking技術(shù)
SkyWalking是國內一個(gè)開(kāi)源并提交到Apache孵化器的產(chǎn)品,是用于收集、分析、聚合、可視化來(lái)自不同服務(wù)和本地基礎服務(wù)的數據的可視化的平臺。SkyWalking提供了一個(gè)可以對分布式系統甚至是跨云服務(wù)有清晰了解的簡(jiǎn)單方法。SkyWalking符合OpenTracing規范,同時(shí)提供更加現代化、炫酷的UI,可以更加直觀(guān)地監控應用。SkyWalking的官方架構如下圖所示。
整個(gè)系統分為三部分。
SkyWalking符合OpenTracing規范,調用鏈采集數據格式如下。
◆SkyWalking接入介紹
Idea本地啟動(dòng):
使用jar方式啟動(dòng):
SkyWalking的TraceID與日志組件(Log4j、Logback、ELK等)的集成:
SkyWalking的頁(yè)面展示,以及整體服務(wù)調用情況統計DashBoard,如下圖所示。
調用鏈詳細信息展示,如下圖所示。
監 控 系 統 按 照 原 理 和 作 用 大 致 可 以 分 為 三 類(lèi) :度 量 類(lèi)(Metrics)、日志類(lèi)(Log)、調用鏈類(lèi)(Tracing)。對于不同的監控對象和監控數據類(lèi)型,需要采用對應的技術(shù)棧和監控手段。對于Spring Boot微服務(wù)架構,除了開(kāi)發(fā)框架自帶的生產(chǎn)就緒組件能夠支持服務(wù)的健康狀態(tài)指標查詢(xún),我們還需要引入第三方ELK框架作為日志監控組件,與Zipkin和SkyWalking等組件共同實(shí)現調用鏈監控。 查看全部
你有真正了解過(guò)國產(chǎn)開(kāi)源框架APM工具——SkyWalking技術(shù)有多牛嗎
◆SkyWalking技術(shù)
SkyWalking是國內一個(gè)開(kāi)源并提交到Apache孵化器的產(chǎn)品,是用于收集、分析、聚合、可視化來(lái)自不同服務(wù)和本地基礎服務(wù)的數據的可視化的平臺。SkyWalking提供了一個(gè)可以對分布式系統甚至是跨云服務(wù)有清晰了解的簡(jiǎn)單方法。SkyWalking符合OpenTracing規范,同時(shí)提供更加現代化、炫酷的UI,可以更加直觀(guān)地監控應用。SkyWalking的官方架構如下圖所示。
整個(gè)系統分為三部分。
SkyWalking符合OpenTracing規范,調用鏈采集數據格式如下。

◆SkyWalking接入介紹
Idea本地啟動(dòng):
使用jar方式啟動(dòng):

SkyWalking的TraceID與日志組件(Log4j、Logback、ELK等)的集成:
SkyWalking的頁(yè)面展示,以及整體服務(wù)調用情況統計DashBoard,如下圖所示。
調用鏈詳細信息展示,如下圖所示。
監 控 系 統 按 照 原 理 和 作 用 大 致 可 以 分 為 三 類(lèi) :度 量 類(lèi)(Metrics)、日志類(lèi)(Log)、調用鏈類(lèi)(Tracing)。對于不同的監控對象和監控數據類(lèi)型,需要采用對應的技術(shù)棧和監控手段。對于Spring Boot微服務(wù)架構,除了開(kāi)發(fā)框架自帶的生產(chǎn)就緒組件能夠支持服務(wù)的健康狀態(tài)指標查詢(xún),我們還需要引入第三方ELK框架作為日志監控組件,與Zipkin和SkyWalking等組件共同實(shí)現調用鏈監控。
【實(shí)務(wù)操作】外部數據:用信息不對稱(chēng)解決審計信息不對稱(chēng)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-08-23 13:40
導讀
數字化審計的基石
數據是數字化審計的基石,思路實(shí)現、模型訓練、結果驗證、問(wèn)題支撐等都離不開(kāi)數據。
數據都是從具體的活動(dòng)或場(chǎng)景中產(chǎn)生后,通過(guò)各種技術(shù)抽取、存儲下來(lái)的。
數據抽取過(guò)程是降維的過(guò)程,剝離了場(chǎng)景的細節,而審計人員分析和應用數據的過(guò)程是個(gè)升維的過(guò)程,基于個(gè)人能力、判斷和模型假設等進(jìn)行場(chǎng)景還原。這個(gè)還原過(guò)程,很容易受到審計人員個(gè)人主觀(guān)經(jīng)驗和經(jīng)歷的影響。
正確認識數據、準確判斷數據來(lái)源、客觀(guān)評價(jià)數據價(jià)值,對數字化審計工作很重要。
是否具有對數據所在場(chǎng)景的認知,數據的來(lái)源是否可靠等等,對審計分析或風(fēng)險判斷的全面性、準確性影響很大。
從內部審計的角度,數據按照來(lái)源的不同可以分為內部數據和外部數據。
1內部數據
內部數據是公司內部的經(jīng)營(yíng)管理過(guò)程中生成的數據,一般來(lái)自于業(yè)務(wù)系統、數據倉庫、被審計對象提供的數據包等。
在數字化審計過(guò)程中,內部數據面臨的最大難點(diǎn)是如何克服“數據孤島”,進(jìn)行字段映射,多源數據融合。
2外部數據
外部數據是公司經(jīng)營(yíng)管理之外及所處環(huán)境中相關(guān)的數據。
外部數據主要來(lái)源有互聯(lián)網(wǎng)上的以網(wǎng)頁(yè)形式展現的公開(kāi)信息、開(kāi)源數據集、商業(yè)付費數據和政府開(kāi)放共享的數據。
利用信息不對稱(chēng)
由于行為主體根據不同的目的,總是會(huì )選擇不同的信息展現方式,不同的方式和內容間存在的差異就是矛盾所在,也就是審計可以關(guān)注的觸點(diǎn)。
在數字化審計過(guò)程中,外部數據可以幫助審計人員擴展信息的邊界。
很多時(shí)候利用行為主體在內外部數據中表現出來(lái)的不對稱(chēng),通過(guò)外部數據和內部數據的交叉驗證、“碰庫”,往往會(huì )有很多重要發(fā)現。
舉個(gè)例子,倉庫的保管員在從倉庫中順出重要零配件或成品時(shí),會(huì )最大程度掩蓋信息,不讓人知道其拿出的產(chǎn)品名稱(chēng)、規格型號等。但其順出成品的目的是為了出售獲利,在閑魚(yú)等二手交易平臺上,其會(huì )選擇最大程度展現信息,吸引更多的賣(mài)家。
注意到這個(gè)信息不對稱(chēng)的情況,就可以使用網(wǎng)頁(yè)數據采集工具從二手交易平臺上獲得相關(guān)公司產(chǎn)品的交易情況,內外部數據相結合,反向進(jìn)行追蹤。
網(wǎng)頁(yè)背后的“交互”
1所見(jiàn)
當我們在瀏覽器(Edge、Firefox、Chrome、Safari等)地址欄中輸入一個(gè)網(wǎng)址后,瀏覽器就向目標網(wǎng)站的Web服務(wù)器發(fā)出一個(gè)HTTP報文請求(Request),目標網(wǎng)站的Web服務(wù)器經(jīng)過(guò)校驗確認是一個(gè)正常的請求后,將請求的頁(yè)面文件(包含圖片、鏈接等資源)返回給瀏覽器(Response),瀏覽器收到返回的數據后,調用網(wǎng)頁(yè)文件解析內核進(jìn)行渲染,顯示在瀏覽器窗口中。
?。▓D源:wiki)
打開(kāi)瀏覽器如Edge,按F12鍵(其他瀏覽器也是這個(gè)快捷鍵),進(jìn)入瀏覽器的“開(kāi)發(fā)人員工具”界面。
在瀏覽器窗口的右側就會(huì )出現“開(kāi)發(fā)人員工具”操作區域,在這個(gè)區域中可以瀏覽、跟蹤、調試、分析瀏覽器和Web服務(wù)器的HTTP報文交互。
HTTP報文一般可以分為報文首部(Header)和報文主體(Body)兩塊。報文首部包含Web服務(wù)器或瀏覽器需處理的請求或響應的內容及屬性。
2所得
瀏覽器返回的是一個(gè)超文本標記語(yǔ)言(HyperText Markup Language,HTML)文件(或動(dòng)態(tài)頁(yè)面文件),實(shí)際是文本型的文件。
瀏覽器頁(yè)面右鍵“查看頁(yè)面源代碼”,可以看到文本形式展現的信息。如下圖所示:
?。▓D源:《數字化審計實(shí)務(wù)指南》)
如何從網(wǎng)站返回的各類(lèi)文件中(HTML、PDF、Word等)獲取信息記錄,可參見(jiàn)“看得到,取得到,才是數據”系列推文。
如何獲取外部數據
理論上,在符合數據安全保護等法律法規的前提下,所有在瀏覽器中看到的信息都可以自動(dòng)采集下來(lái)。
但網(wǎng)站的web服務(wù)器技術(shù)千變萬(wàn)化,大多數網(wǎng)站都不是靜態(tài)網(wǎng)頁(yè),信息的采集也需要平衡工具采購、代碼開(kāi)發(fā)需要的時(shí)間和對數據分析的價(jià)值。
外部數據的獲取,根據來(lái)源的不同有信息采集、API接口調用、離線(xiàn)下載和付費購買(mǎi)。
無(wú)論哪一種形式,在獲取過(guò)程中都需要注意遵守《數據安全管理辦法》等相關(guān)的法律法規,需要注意涉及個(gè)人信息的隱私安全保護。
1使用信息采集工具
網(wǎng)頁(yè)信息采集工具非常豐富,各有各的特色。對于比較規范、常規的網(wǎng)頁(yè),信息采集工具是個(gè)時(shí)效比非常高的選擇。
開(kāi)源的網(wǎng)頁(yè)信息采集工具有Heritrix、Hawk( Advanced Crawler& ETL tool written in C#/WPF )等。在線(xiàn)的網(wǎng)頁(yè)信息采集工具有ParseHub等。
可以免費使用部分功能的商業(yè)網(wǎng)頁(yè)信息采集工具有優(yōu)采云、優(yōu)采云、集搜客(GooSeeker)、優(yōu)采云采集等等。
以下的介紹僅僅是個(gè)人使用操作描述,不涉及商業(yè)推廣,不構成推薦建議。
作為后起之秀,優(yōu)采云采集號稱(chēng)“小白神器!”、“前谷歌技術(shù)團隊傾力打造,基于人工智能技術(shù),只需輸入網(wǎng)址就能自動(dòng)識別采集內容”。
?。▓D源:)
優(yōu)采云采集器提供智能模式和流程圖模式兩種操作模式。
智能模式下,只需要輸入首頁(yè)網(wǎng)址,軟件就能智能識別網(wǎng)頁(yè)上的列表(li)、表格(table)、鏈接(a)、圖片(img)等元素,實(shí)現一鍵采集,對常見(jiàn)的網(wǎng)站信息采集比較方便。
流程圖模式下,按照人為瀏覽網(wǎng)頁(yè)的操作方式,通過(guò)軟件自動(dòng)識別和操作提示選擇的方式,自動(dòng)生成采集規則。
如,設置優(yōu)采云采集器打開(kāi)一個(gè)行政處罰公告列表頁(yè)面,軟件會(huì )自動(dòng)識別頁(yè)面上的列表鏈接、翻頁(yè)鏈接,提示選擇是否循環(huán)點(diǎn)擊列表、是否自動(dòng)翻頁(yè),點(diǎn)擊列表鏈接后,自動(dòng)打開(kāi)處罰公告的詳細內容頁(yè)面,然后根據要素點(diǎn)擊選擇需要提取的信息。做完這幾步,就可以生成當前網(wǎng)站的采集規則。
流程圖模式下,軟件還可以模擬人瀏覽網(wǎng)頁(yè)的動(dòng)作,比如輸入文本、點(diǎn)擊按鈕、滾動(dòng)頁(yè)面、等待加載等。
優(yōu)采云采集器目前也支持免費導出全量采集結果。采集結果可以以TXT、EXCEL、CSV和HTML等文件格式導出到本地,也可以直接發(fā)布到MySQL、MongoDB、SQL Server等數據庫中。 查看全部
【實(shí)務(wù)操作】外部數據:用信息不對稱(chēng)解決審計信息不對稱(chēng)
導讀
數字化審計的基石
數據是數字化審計的基石,思路實(shí)現、模型訓練、結果驗證、問(wèn)題支撐等都離不開(kāi)數據。
數據都是從具體的活動(dòng)或場(chǎng)景中產(chǎn)生后,通過(guò)各種技術(shù)抽取、存儲下來(lái)的。
數據抽取過(guò)程是降維的過(guò)程,剝離了場(chǎng)景的細節,而審計人員分析和應用數據的過(guò)程是個(gè)升維的過(guò)程,基于個(gè)人能力、判斷和模型假設等進(jìn)行場(chǎng)景還原。這個(gè)還原過(guò)程,很容易受到審計人員個(gè)人主觀(guān)經(jīng)驗和經(jīng)歷的影響。
正確認識數據、準確判斷數據來(lái)源、客觀(guān)評價(jià)數據價(jià)值,對數字化審計工作很重要。
是否具有對數據所在場(chǎng)景的認知,數據的來(lái)源是否可靠等等,對審計分析或風(fēng)險判斷的全面性、準確性影響很大。
從內部審計的角度,數據按照來(lái)源的不同可以分為內部數據和外部數據。
1內部數據
內部數據是公司內部的經(jīng)營(yíng)管理過(guò)程中生成的數據,一般來(lái)自于業(yè)務(wù)系統、數據倉庫、被審計對象提供的數據包等。
在數字化審計過(guò)程中,內部數據面臨的最大難點(diǎn)是如何克服“數據孤島”,進(jìn)行字段映射,多源數據融合。
2外部數據
外部數據是公司經(jīng)營(yíng)管理之外及所處環(huán)境中相關(guān)的數據。
外部數據主要來(lái)源有互聯(lián)網(wǎng)上的以網(wǎng)頁(yè)形式展現的公開(kāi)信息、開(kāi)源數據集、商業(yè)付費數據和政府開(kāi)放共享的數據。
利用信息不對稱(chēng)

由于行為主體根據不同的目的,總是會(huì )選擇不同的信息展現方式,不同的方式和內容間存在的差異就是矛盾所在,也就是審計可以關(guān)注的觸點(diǎn)。
在數字化審計過(guò)程中,外部數據可以幫助審計人員擴展信息的邊界。
很多時(shí)候利用行為主體在內外部數據中表現出來(lái)的不對稱(chēng),通過(guò)外部數據和內部數據的交叉驗證、“碰庫”,往往會(huì )有很多重要發(fā)現。
舉個(gè)例子,倉庫的保管員在從倉庫中順出重要零配件或成品時(shí),會(huì )最大程度掩蓋信息,不讓人知道其拿出的產(chǎn)品名稱(chēng)、規格型號等。但其順出成品的目的是為了出售獲利,在閑魚(yú)等二手交易平臺上,其會(huì )選擇最大程度展現信息,吸引更多的賣(mài)家。
注意到這個(gè)信息不對稱(chēng)的情況,就可以使用網(wǎng)頁(yè)數據采集工具從二手交易平臺上獲得相關(guān)公司產(chǎn)品的交易情況,內外部數據相結合,反向進(jìn)行追蹤。
網(wǎng)頁(yè)背后的“交互”
1所見(jiàn)
當我們在瀏覽器(Edge、Firefox、Chrome、Safari等)地址欄中輸入一個(gè)網(wǎng)址后,瀏覽器就向目標網(wǎng)站的Web服務(wù)器發(fā)出一個(gè)HTTP報文請求(Request),目標網(wǎng)站的Web服務(wù)器經(jīng)過(guò)校驗確認是一個(gè)正常的請求后,將請求的頁(yè)面文件(包含圖片、鏈接等資源)返回給瀏覽器(Response),瀏覽器收到返回的數據后,調用網(wǎng)頁(yè)文件解析內核進(jìn)行渲染,顯示在瀏覽器窗口中。
?。▓D源:wiki)
打開(kāi)瀏覽器如Edge,按F12鍵(其他瀏覽器也是這個(gè)快捷鍵),進(jìn)入瀏覽器的“開(kāi)發(fā)人員工具”界面。
在瀏覽器窗口的右側就會(huì )出現“開(kāi)發(fā)人員工具”操作區域,在這個(gè)區域中可以瀏覽、跟蹤、調試、分析瀏覽器和Web服務(wù)器的HTTP報文交互。
HTTP報文一般可以分為報文首部(Header)和報文主體(Body)兩塊。報文首部包含Web服務(wù)器或瀏覽器需處理的請求或響應的內容及屬性。
2所得
瀏覽器返回的是一個(gè)超文本標記語(yǔ)言(HyperText Markup Language,HTML)文件(或動(dòng)態(tài)頁(yè)面文件),實(shí)際是文本型的文件。
瀏覽器頁(yè)面右鍵“查看頁(yè)面源代碼”,可以看到文本形式展現的信息。如下圖所示:
?。▓D源:《數字化審計實(shí)務(wù)指南》)
如何從網(wǎng)站返回的各類(lèi)文件中(HTML、PDF、Word等)獲取信息記錄,可參見(jiàn)“看得到,取得到,才是數據”系列推文。

如何獲取外部數據
理論上,在符合數據安全保護等法律法規的前提下,所有在瀏覽器中看到的信息都可以自動(dòng)采集下來(lái)。
但網(wǎng)站的web服務(wù)器技術(shù)千變萬(wàn)化,大多數網(wǎng)站都不是靜態(tài)網(wǎng)頁(yè),信息的采集也需要平衡工具采購、代碼開(kāi)發(fā)需要的時(shí)間和對數據分析的價(jià)值。
外部數據的獲取,根據來(lái)源的不同有信息采集、API接口調用、離線(xiàn)下載和付費購買(mǎi)。
無(wú)論哪一種形式,在獲取過(guò)程中都需要注意遵守《數據安全管理辦法》等相關(guān)的法律法規,需要注意涉及個(gè)人信息的隱私安全保護。
1使用信息采集工具
網(wǎng)頁(yè)信息采集工具非常豐富,各有各的特色。對于比較規范、常規的網(wǎng)頁(yè),信息采集工具是個(gè)時(shí)效比非常高的選擇。
開(kāi)源的網(wǎng)頁(yè)信息采集工具有Heritrix、Hawk( Advanced Crawler& ETL tool written in C#/WPF )等。在線(xiàn)的網(wǎng)頁(yè)信息采集工具有ParseHub等。
可以免費使用部分功能的商業(yè)網(wǎng)頁(yè)信息采集工具有優(yōu)采云、優(yōu)采云、集搜客(GooSeeker)、優(yōu)采云采集等等。
以下的介紹僅僅是個(gè)人使用操作描述,不涉及商業(yè)推廣,不構成推薦建議。
作為后起之秀,優(yōu)采云采集號稱(chēng)“小白神器!”、“前谷歌技術(shù)團隊傾力打造,基于人工智能技術(shù),只需輸入網(wǎng)址就能自動(dòng)識別采集內容”。
?。▓D源:)
優(yōu)采云采集器提供智能模式和流程圖模式兩種操作模式。
智能模式下,只需要輸入首頁(yè)網(wǎng)址,軟件就能智能識別網(wǎng)頁(yè)上的列表(li)、表格(table)、鏈接(a)、圖片(img)等元素,實(shí)現一鍵采集,對常見(jiàn)的網(wǎng)站信息采集比較方便。
流程圖模式下,按照人為瀏覽網(wǎng)頁(yè)的操作方式,通過(guò)軟件自動(dòng)識別和操作提示選擇的方式,自動(dòng)生成采集規則。
如,設置優(yōu)采云采集器打開(kāi)一個(gè)行政處罰公告列表頁(yè)面,軟件會(huì )自動(dòng)識別頁(yè)面上的列表鏈接、翻頁(yè)鏈接,提示選擇是否循環(huán)點(diǎn)擊列表、是否自動(dòng)翻頁(yè),點(diǎn)擊列表鏈接后,自動(dòng)打開(kāi)處罰公告的詳細內容頁(yè)面,然后根據要素點(diǎn)擊選擇需要提取的信息。做完這幾步,就可以生成當前網(wǎng)站的采集規則。
流程圖模式下,軟件還可以模擬人瀏覽網(wǎng)頁(yè)的動(dòng)作,比如輸入文本、點(diǎn)擊按鈕、滾動(dòng)頁(yè)面、等待加載等。
優(yōu)采云采集器目前也支持免費導出全量采集結果。采集結果可以以TXT、EXCEL、CSV和HTML等文件格式導出到本地,也可以直接發(fā)布到MySQL、MongoDB、SQL Server等數據庫中。
文章采集調用的主要有以下四種:apidebugremoteformgov包完成簡(jiǎn)單的文章抓取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 116 次瀏覽 ? 2022-08-21 12:02
文章采集調用的api主要有以下四種:apidebugremoteformgov開(kāi)發(fā)時(shí),一般建議這四種api都先完整的實(shí)現一下。本文就使用apidebug包完成簡(jiǎn)單的文章抓取。效果如下:基于apidebug包,目前已經(jīng)實(shí)現了:最新tip文章抓取結果-tips注:tips包是更新版本,抓取時(shí)需要更新包,具體更新方法網(wǎng)上很多,我這里就不贅述了。
<p>2.建立抓取文章的表格,即“//content”表,并給出主要的文章id、string、書(shū)籍id、手機號碼,這個(gè)代碼網(wǎng)上已經(jīng)有不少人實(shí)現過(guò)了。3.本文中,這個(gè)表格只用到了apidebug包中的api函數,即getunspiderinstance(),具體對應的api函數如下:voidgetunspiderinstance(contextcontext){longstirrate=(long)getunspider.run(context);if(stirrate 查看全部
文章采集調用的主要有以下四種:apidebugremoteformgov包完成簡(jiǎn)單的文章抓取

文章采集調用的api主要有以下四種:apidebugremoteformgov開(kāi)發(fā)時(shí),一般建議這四種api都先完整的實(shí)現一下。本文就使用apidebug包完成簡(jiǎn)單的文章抓取。效果如下:基于apidebug包,目前已經(jīng)實(shí)現了:最新tip文章抓取結果-tips注:tips包是更新版本,抓取時(shí)需要更新包,具體更新方法網(wǎng)上很多,我這里就不贅述了。

<p>2.建立抓取文章的表格,即“//content”表,并給出主要的文章id、string、書(shū)籍id、手機號碼,這個(gè)代碼網(wǎng)上已經(jīng)有不少人實(shí)現過(guò)了。3.本文中,這個(gè)表格只用到了apidebug包中的api函數,即getunspiderinstance(),具體對應的api函數如下:voidgetunspiderinstance(contextcontext){longstirrate=(long)getunspider.run(context);if(stirrate
優(yōu)化的解決方案:Sleuth+zipkin, 鏈路追蹤SpringCloud微服務(wù)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-10-07 19:08
為了實(shí)現請求鏈路跟蹤,當一個(gè)請求被發(fā)送到分布式系統的入口時(shí),只需要在服務(wù)跟蹤框架中為該請求創(chuàng )建一個(gè)唯一的跟蹤標識,并保證該標識在分布式系統內循環(huán)直到請求返回。標識為traceId,通過(guò)它可以串聯(lián)不同服務(wù)調用的日志??傊?,在整個(gè) Http 調用(FeignClient 或 RestTemplate)中,我們可以識別出一條 TraceId 記錄,并在 Http Request 過(guò)程中,將 TraceID 傳遞給提供服務(wù)的服務(wù)器,而提供服務(wù)的服務(wù)器在 Reuqest 中同理,將整個(gè) TraceId 傳遞給他的服務(wù)提供者,這樣整個(gè)自上而下的調用鏈路都具有相同的 TraceId,每個(gè)鏈路中服務(wù)的日志通過(guò) TraceId 進(jìn)行分組。并且,這樣就得到了一個(gè)不同TraceId的調用鏈路,這就是鏈路跟蹤的主要原理。還有一個(gè)國產(chǎn)產(chǎn)品,Skywalking,已經(jīng)成為Apache的頂級開(kāi)源項目。具體實(shí)現與Sleuth不同,但使用的原理是一樣的。
MDC(映射診斷上下文)
通過(guò)上面的方法,我們就有了鏈路跟蹤的實(shí)現方法。MDC((映射的診斷上下文))轉換為映射的診斷上下文。含義:在日志(映射)的請求ID(requestId)中,可以作為關(guān)鍵字(context)供我們定位(診斷)問(wèn)題。這不是一個(gè)新產(chǎn)品。MDC類(lèi)的基本原理其實(shí)很簡(jiǎn)單。它在內部擁有一個(gè) ThreadLocal 實(shí)例以保存上下文數據。MDC提供了put/get/clear等幾個(gè)核心接口,用于在Data中操作ThreadLocal;ThreadLocal中的KV可以在logback.xml中聲明,即通過(guò)在layout中聲明%X{Key},在日志中打印MDC中保存的這個(gè)key對應的值。MDC的具體信息可以單獨去百度的文章關(guān)于MDC,Http鏈接跟蹤traceId是一個(gè)標識符,即,
偵探
sleuth 在 SpringCloud 分布式系統中提供了跟蹤解決方案。通過(guò)Sleuth可以記錄鏈接跟蹤的相關(guān)信息,并將相關(guān)鏈接調用信息發(fā)送到指定的統計終端和顯示終端,如Zipkin
Spring Cloud Sleuth關(guān)鍵詞(基于 Google Dapper)
齊金
Zipkin 是 Twitter 的一個(gè)開(kāi)源項目,基于 Google Dapper??捎糜诓杉鞣?wù)器上請求鏈接的trace數據,并通過(guò)其提供的REST API接口輔助我們查詢(xún)trace數據,實(shí)現分布式系統的監控程序,及時(shí)發(fā)現增量分析系統延遲問(wèn)題并找出系統性能瓶頸的根源。除了面向開(kāi)發(fā)的API接口外,還提供了便捷的UI組件,幫助我們直觀(guān)地搜索跟蹤信息,分析請求鏈接詳情,例如查詢(xún)某段時(shí)間內每個(gè)用戶(hù)請求的處理時(shí)間。
簡(jiǎn)而言之,Zipkin采集 sleuth sleuth 在客戶(hù)端并提供了一個(gè)可視化的界面進(jìn)行查詢(xún)展示。
Docker 啟動(dòng) Zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
訪(fǎng)問(wèn) Zipkin 的圖形頁(yè)面
點(diǎn)擊一個(gè)請求后,你會(huì )看到詳細的調用鏈請求信息:
SpringCloud 使用 Sleuth
在 SpringCloud 項目中使用 Sleuth 進(jìn)行鏈接跟蹤非常方便。您只需要將 Sleuth 的 Starter 映射到項目中。如果需要將 Sleuth 的 采集 鏈接跟蹤的信息推送到 Zipkin,那么引入 Zipkin 的 Starter。并配置Zipkin Server的服務(wù)地址。
引入相關(guān)依賴(lài)包并開(kāi)始
org.springframework.cloud
spring-cloud-sleuth-zipkin
org.springframework.cloud
spring-cloud-starter-sleuth
上面的 pom.xml 文件添加了對 Sleuth 的 starter 和 Zipkin 的支持。FeignClient 和 RestTemplate 會(huì )被 Sleuth 記錄在 SpringCloud 的微服務(wù)的 Restful 調用中,并發(fā)送到 Zipkin 的服務(wù)地址。
配置Zipkin的服務(wù)地址
spring:
zipkin:
base-url: http://localhost:9411/
sender:
type: web
sleuth:
sampler:
#抽樣百分比,默認10%的數據發(fā)到zipkin,1為100%
probability: 1
通過(guò)以上方法,在我們的SpringCloud微服務(wù)云系統中,我們的每一個(gè)微服務(wù)云服務(wù)調用都會(huì )進(jìn)入調用trace的trace范圍,然后通過(guò)Zipkin提供的圖形展示工具,可以一目了然的知道鏈接追蹤我們每一次服務(wù)調用的情況,通過(guò)鏈路跟蹤解決方案,當整個(gè)請求變慢或者不可用的時(shí)候,我們可以知道這個(gè)請求是由一個(gè)或者一些后端服務(wù)引起的 是的,快讀定位服務(wù)故障點(diǎn)并規定對的藥。
使用MQ推送信息
通過(guò)上述方法,每個(gè)微服務(wù)的調用跟蹤都會(huì )向 Zipkin Server 發(fā)送一個(gè) Http 請求。當內網(wǎng)阻塞時(shí),可能會(huì )導致主要業(yè)務(wù)調用的阻塞,從而導致更嚴重的后果,所以這個(gè)時(shí)候我們可以考慮使用 Stream 或者使用 MQ 來(lái)異步處理來(lái)自 Sleuth 的請求;
我們的 SpringCloud 微服務(wù)器只需要引入一個(gè)支持 Stream 和 MQ 的 starter
org.springframework.cloud
spring-cloud-sleuth-zipkin-stream
org.springframework.cloud
spring-cloud-starter-stream-rabbit
org.springframework.cloud
spring-cloud-starter-sleuth
Zipkin Server 的配置也相應調整;
Zipkin 高級使用持久性
Zipkin默認將Sleuth的日志信息保存在內存中,所以每次重啟Zipkin都會(huì )丟失之前的日志信息。您可以修改 Zipkin 的配置以允許 Zipkin Server 將所有日志持久化到數據庫中。關(guān)于持久化以及 Zipkin 支持 MQ 的方式,我們以后會(huì )介紹文章。
結束語(yǔ)
每次服務(wù)調用的鏈路跟蹤情況,通過(guò)鏈路跟蹤的解決方案,當整個(gè)請求變慢或不可用時(shí),我們可以知道該請求是由一個(gè)或部分后端服務(wù)引起的,快速閱讀定位服務(wù)故障點(diǎn)并規定對的藥。本文主要介紹通過(guò)Sleuth+Zipking實(shí)現SpringCloud的微服務(wù)云鏈路追蹤。文章中我們提到了Zipkin的MQ接收sleuth日志信息以及日志信息持久化的使用。我們以后會(huì )討論in文章,我們以后會(huì )在特別的文章中單獨介紹Skywalking。也希望大家繼續關(guān)注作者的每一個(gè)文章,關(guān)注作者,不要錯過(guò)精彩。
感謝您一直以來(lái)的關(guān)注。
干貨教程:wordpress網(wǎng)站搭建教程詳細-覆蓋SEO方案搭建
WordPress網(wǎng)站搭建教程詳解-涵蓋SEO方案搭建
搜索引擎優(yōu)化研究所
2022-03-08 19:43
搭建wordpress網(wǎng)站的詳細流程: 1. 購買(mǎi)域名 2. 購買(mǎi)云服務(wù)器 3. 申請備案 4. 域名解析 5. 安裝控制面板 6. 安裝Wordpress 7. 設置Wordpress
只需安裝此步驟即可獲得完整的 WordPress網(wǎng)站 設置。網(wǎng)站的構建是一項技術(shù)任務(wù),但是網(wǎng)站的構建完成后,并不代表以后就不需要管理了。網(wǎng)站的維護和優(yōu)化也很重要。而且不代表知道代碼就可以隨意構建網(wǎng)站。很多人對網(wǎng)站的構建知之甚少,構建的網(wǎng)站會(huì )被搜索引擎網(wǎng)站識別為垃圾郵件。如何優(yōu)化構造網(wǎng)站的結構?我們需要知道內容為王。網(wǎng)站的優(yōu)化分為很多不同的方面,包括網(wǎng)站結構的優(yōu)化,內部鏈接的優(yōu)化,
打開(kāi)網(wǎng)易新聞查看精彩圖片
一、頁(yè)面導航的優(yōu)化
每個(gè)網(wǎng)站都需要設置一個(gè)導航,就是讓用戶(hù)可以方便快捷的找到自己想要訪(fǎng)問(wèn)的頁(yè)面和內容。如果你把網(wǎng)站的頁(yè)面設置的很復雜,即使很炫,別人也找不到自己要找的,那么你建的網(wǎng)站就是失敗網(wǎng)站,因為用戶(hù)感覺(jué)不好,下次不會(huì )再瀏覽這個(gè)頁(yè)面了。因為現在互聯(lián)網(wǎng)發(fā)展非常迅速,沒(méi)有人會(huì )非常耐心地在一個(gè)頁(yè)面上瀏覽和搜索。如果找不到你的網(wǎng)站,他會(huì )立即關(guān)閉頁(yè)面,進(jìn)入別人的網(wǎng)站,尋找自己想要的。. 所以導航的設置不能太深,這樣會(huì )迷路,也會(huì )流失很多客戶(hù)。
二、頁(yè)面結構的概括
頁(yè)面結構的概括,簡(jiǎn)單來(lái)說(shuō)就是頁(yè)面應該滿(mǎn)足大部分用戶(hù)的訪(fǎng)問(wèn)需求。我們在構建網(wǎng)站時(shí),需要從不同的角度考慮用戶(hù)訪(fǎng)問(wèn)頁(yè)面時(shí)的需求和目標。在此基礎上,我們在考慮網(wǎng)站是否漂亮,給用戶(hù)留下什么樣的印象?,是否會(huì )讓用戶(hù)想再次訪(fǎng)問(wèn),尤其是對于一些團購網(wǎng)站,更要注意網(wǎng)站內頁(yè)的優(yōu)化。
三、內鏈結構的優(yōu)勢
內鏈的作用是讓整個(gè)網(wǎng)站的內容連貫起來(lái)。其實(shí)做內鏈很簡(jiǎn)單。不要將所有鏈接都指向主頁(yè)或某個(gè)頁(yè)面。應該是在不同的頁(yè)面上添加不同的內部鏈接,這樣可以引導用戶(hù)進(jìn)入相關(guān)的網(wǎng)頁(yè),了解更多的內容。而內鏈的合理優(yōu)化對提升網(wǎng)站的權重有很大的作用。
4. 網(wǎng)站快速收錄
打開(kāi)網(wǎng)易新聞查看精彩圖片
網(wǎng)站 更新得越頻繁,搜索引擎蜘蛛就會(huì )越頻繁地出現。因此,我們可以使用wordpress采集實(shí)現采集偽原創(chuàng )自動(dòng)發(fā)布和主動(dòng)推送到搜索引擎,提高搜索引擎的抓取頻率,從而提高網(wǎng)站收錄 和 關(guān)鍵詞 排名。
1. 免費的wordpress插件
免費的 wordpress采集 插件功能:
1、只需將關(guān)鍵詞導入到采集相關(guān)的關(guān)鍵詞文章,同時(shí)創(chuàng )建幾十個(gè)或幾百個(gè)采集任務(wù)(一個(gè)任務(wù)可以支持上傳1000個(gè)) 關(guān)鍵詞),支持過(guò)濾關(guān)鍵詞。
2. 支持多消息源:?jiǎn)?wèn)答和各種消息源(可同時(shí)設置多個(gè)采集消息源采集/采集消息源稍后添加)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3.過(guò)濾其他促銷(xiāo)信息
4. 圖片定位/圖片水印/圖片第三方存儲
5.文章互通+翻譯(簡(jiǎn)體中文繁體翻譯+百度翻譯+有道翻譯+谷歌翻譯+147翻譯)
6.自動(dòng)批量掛機采集,與各大cms發(fā)布者無(wú)縫對接,采集后自動(dòng)發(fā)布——實(shí)現采集發(fā)布全自動(dòng)掛機。
2.跨平臺發(fā)布插件
全平臺cms發(fā)布者的特點(diǎn):
1、cms發(fā)布:目前市面上唯一支持Empirecms、易友、ZBLOG、dedecms、WordPress、PBoot、Applecms、迅銳cms、PHPcms、Applecms、人人網(wǎng)cms、美圖cms、云游cms、Cyclone站群、THINKCMF、建站ABC 、凡客cms、一騎cms、Oceancms、飛飛cms、Local Release、搜外等各大cms,以及一個(gè)工具可同時(shí)管理和批量發(fā)布
2.全網(wǎng)推送(百度/360/搜狗/神馬)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3. 偽原創(chuàng )(標題+內容)
4.更換圖片,防止侵權
5. 強大的SEO功能(自動(dòng)圖片放置/插入內外鏈接/標題和文章前后插入內容/標題關(guān)鍵詞與內容一致關(guān)鍵詞/隨機插入圖片/添加隨機屬性的頁(yè)面原創(chuàng )degree)
6.對應欄目:對應文章可以發(fā)布對應欄目/支持多欄目發(fā)布
7、定時(shí)發(fā)布:可控發(fā)布間隔/每天發(fā)布總數
8、監控數據:直接監控已經(jīng)發(fā)布、待發(fā)布的軟件,是否為偽原創(chuàng )、發(fā)布狀態(tài)、網(wǎng)站、程序、發(fā)布時(shí)間等。
打開(kāi)網(wǎng)易新聞查看精彩圖片
在網(wǎng)站的構建之初,需要布局大量的seo元素。一個(gè)好的公司網(wǎng)站應該有seo相關(guān)的元素,可以幫助后續的優(yōu)化。網(wǎng)站 基礎越強,后期工作量越小。
1.企業(yè)網(wǎng)站優(yōu)化:URL唯一性
確定網(wǎng)站的主題內容后,應該以網(wǎng)頁(yè)的形式呈現給用戶(hù)。一個(gè)網(wǎng)頁(yè)對應一個(gè)唯一的URL地址,無(wú)論你的網(wǎng)站是重新設計開(kāi)發(fā)的,還是開(kāi)源程序構建的,在新的網(wǎng)站上線(xiàn)之前,都必須保證每一個(gè)的唯一性網(wǎng)站 中的頁(yè)面 URL 地址,它是 seo 元素之一。
2.企業(yè)網(wǎng)站優(yōu)化:明確主題,聚合資源
任何 網(wǎng)站 都需要有目的地構建。網(wǎng)站建設之初,就已經(jīng)建立了競爭對手分析、差異化內容定位和用戶(hù)定位,所以整個(gè)網(wǎng)站的內容體系建設只需要圍繞這個(gè)確定的主題進(jìn)行。
主題明確網(wǎng)站的公司主要有以下好處:
1、主題明確,更容易宣傳自己的優(yōu)勢資源,強調一個(gè)領(lǐng)域的權威;
2、網(wǎng)站內容方向不變,可以聚集優(yōu)質(zhì)粉絲群。粉絲的交流能量這里不用我多寫(xiě)了;
3、對于搜索引擎來(lái)說(shuō),隨著(zhù)語(yǔ)義分析能力的增強,前期有明確的網(wǎng)站主題更容易獲得搜索引擎的信任。對于一個(gè)新站點(diǎn),索引時(shí)間可以縮短,即使是一個(gè)很小的影響因子,你沒(méi)有理由不實(shí)施。
3.企業(yè)網(wǎng)站優(yōu)化:內部鏈結構規劃
當一個(gè)新的 網(wǎng)站 啟動(dòng)時(shí),頁(yè)面的數量并不大。從網(wǎng)站的構建開(kāi)始,就必須規劃好網(wǎng)站的內部鏈結構。至于構建合理的內部鏈結構,網(wǎng)絡(luò )將有足夠多的相關(guān)文章策略。這里要強調的是,前期規劃好內鏈布局,對網(wǎng)站的擴展性和蜘蛛的爬取效率有很大幫助,尤其是對于一個(gè)新的網(wǎng)站,一個(gè)合理的內鏈結構可以大大減少網(wǎng)站頁(yè)面的收錄時(shí)間。
4.企業(yè)網(wǎng)站優(yōu)化:目錄結構標準設計
雖然說(shuō)搜索引擎可以很輕松的抓取動(dòng)態(tài)鏈接地址,但畢竟官方規范中的靜態(tài)URL地址對搜索引擎比較友好,所以SEO從業(yè)者在構建之初就應該注意網(wǎng)站 .網(wǎng)站的目錄結構(URL結構)統一標準化,讓開(kāi)發(fā)者可以在網(wǎng)站上線(xiàn)前以對搜索引擎最有利的方式部署網(wǎng)站,這是其中之一seo 元素。
5.企業(yè)版網(wǎng)站優(yōu)化:404頁(yè)
站點(diǎn)中不存在或將不存在的所有頁(yè)面都必須指向該頁(yè)面。404頁(yè)面的設置是搜索引擎友好的一種形式,所以在構建之初必須考慮到網(wǎng)站。是seo的要素之一。
打開(kāi)網(wǎng)易新聞查看精彩圖片
6.企業(yè)網(wǎng)站優(yōu)化:網(wǎng)站地圖
網(wǎng)站地圖,顧名思義,主要是將網(wǎng)站的主要頁(yè)面直接呈現給搜索引擎,讓搜索引擎通過(guò)這張地圖了解網(wǎng)站的頁(yè)面關(guān)系。網(wǎng)站地圖以 XML 格式和 HTML 格式提供。無(wú)論采用哪種形式,前期最好使用其中一種形式進(jìn)行布局。 查看全部
優(yōu)化的解決方案:Sleuth+zipkin, 鏈路追蹤SpringCloud微服務(wù)
為了實(shí)現請求鏈路跟蹤,當一個(gè)請求被發(fā)送到分布式系統的入口時(shí),只需要在服務(wù)跟蹤框架中為該請求創(chuàng )建一個(gè)唯一的跟蹤標識,并保證該標識在分布式系統內循環(huán)直到請求返回。標識為traceId,通過(guò)它可以串聯(lián)不同服務(wù)調用的日志??傊?,在整個(gè) Http 調用(FeignClient 或 RestTemplate)中,我們可以識別出一條 TraceId 記錄,并在 Http Request 過(guò)程中,將 TraceID 傳遞給提供服務(wù)的服務(wù)器,而提供服務(wù)的服務(wù)器在 Reuqest 中同理,將整個(gè) TraceId 傳遞給他的服務(wù)提供者,這樣整個(gè)自上而下的調用鏈路都具有相同的 TraceId,每個(gè)鏈路中服務(wù)的日志通過(guò) TraceId 進(jìn)行分組。并且,這樣就得到了一個(gè)不同TraceId的調用鏈路,這就是鏈路跟蹤的主要原理。還有一個(gè)國產(chǎn)產(chǎn)品,Skywalking,已經(jīng)成為Apache的頂級開(kāi)源項目。具體實(shí)現與Sleuth不同,但使用的原理是一樣的。
MDC(映射診斷上下文)
通過(guò)上面的方法,我們就有了鏈路跟蹤的實(shí)現方法。MDC((映射的診斷上下文))轉換為映射的診斷上下文。含義:在日志(映射)的請求ID(requestId)中,可以作為關(guān)鍵字(context)供我們定位(診斷)問(wèn)題。這不是一個(gè)新產(chǎn)品。MDC類(lèi)的基本原理其實(shí)很簡(jiǎn)單。它在內部擁有一個(gè) ThreadLocal 實(shí)例以保存上下文數據。MDC提供了put/get/clear等幾個(gè)核心接口,用于在Data中操作ThreadLocal;ThreadLocal中的KV可以在logback.xml中聲明,即通過(guò)在layout中聲明%X{Key},在日志中打印MDC中保存的這個(gè)key對應的值。MDC的具體信息可以單獨去百度的文章關(guān)于MDC,Http鏈接跟蹤traceId是一個(gè)標識符,即,
偵探
sleuth 在 SpringCloud 分布式系統中提供了跟蹤解決方案。通過(guò)Sleuth可以記錄鏈接跟蹤的相關(guān)信息,并將相關(guān)鏈接調用信息發(fā)送到指定的統計終端和顯示終端,如Zipkin
Spring Cloud Sleuth關(guān)鍵詞(基于 Google Dapper)
齊金
Zipkin 是 Twitter 的一個(gè)開(kāi)源項目,基于 Google Dapper??捎糜?a href="http://www.hqbet6457.com/" target="_blank">采集各服務(wù)器上請求鏈接的trace數據,并通過(guò)其提供的REST API接口輔助我們查詢(xún)trace數據,實(shí)現分布式系統的監控程序,及時(shí)發(fā)現增量分析系統延遲問(wèn)題并找出系統性能瓶頸的根源。除了面向開(kāi)發(fā)的API接口外,還提供了便捷的UI組件,幫助我們直觀(guān)地搜索跟蹤信息,分析請求鏈接詳情,例如查詢(xún)某段時(shí)間內每個(gè)用戶(hù)請求的處理時(shí)間。
簡(jiǎn)而言之,Zipkin采集 sleuth sleuth 在客戶(hù)端并提供了一個(gè)可視化的界面進(jìn)行查詢(xún)展示。
Docker 啟動(dòng) Zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
訪(fǎng)問(wèn) Zipkin 的圖形頁(yè)面
點(diǎn)擊一個(gè)請求后,你會(huì )看到詳細的調用鏈請求信息:
SpringCloud 使用 Sleuth
在 SpringCloud 項目中使用 Sleuth 進(jìn)行鏈接跟蹤非常方便。您只需要將 Sleuth 的 Starter 映射到項目中。如果需要將 Sleuth 的 采集 鏈接跟蹤的信息推送到 Zipkin,那么引入 Zipkin 的 Starter。并配置Zipkin Server的服務(wù)地址。

引入相關(guān)依賴(lài)包并開(kāi)始
org.springframework.cloud
spring-cloud-sleuth-zipkin
org.springframework.cloud
spring-cloud-starter-sleuth
上面的 pom.xml 文件添加了對 Sleuth 的 starter 和 Zipkin 的支持。FeignClient 和 RestTemplate 會(huì )被 Sleuth 記錄在 SpringCloud 的微服務(wù)的 Restful 調用中,并發(fā)送到 Zipkin 的服務(wù)地址。
配置Zipkin的服務(wù)地址
spring:
zipkin:
base-url: http://localhost:9411/
sender:
type: web
sleuth:
sampler:
#抽樣百分比,默認10%的數據發(fā)到zipkin,1為100%
probability: 1
通過(guò)以上方法,在我們的SpringCloud微服務(wù)云系統中,我們的每一個(gè)微服務(wù)云服務(wù)調用都會(huì )進(jìn)入調用trace的trace范圍,然后通過(guò)Zipkin提供的圖形展示工具,可以一目了然的知道鏈接追蹤我們每一次服務(wù)調用的情況,通過(guò)鏈路跟蹤解決方案,當整個(gè)請求變慢或者不可用的時(shí)候,我們可以知道這個(gè)請求是由一個(gè)或者一些后端服務(wù)引起的 是的,快讀定位服務(wù)故障點(diǎn)并規定對的藥。
使用MQ推送信息

通過(guò)上述方法,每個(gè)微服務(wù)的調用跟蹤都會(huì )向 Zipkin Server 發(fā)送一個(gè) Http 請求。當內網(wǎng)阻塞時(shí),可能會(huì )導致主要業(yè)務(wù)調用的阻塞,從而導致更嚴重的后果,所以這個(gè)時(shí)候我們可以考慮使用 Stream 或者使用 MQ 來(lái)異步處理來(lái)自 Sleuth 的請求;
我們的 SpringCloud 微服務(wù)器只需要引入一個(gè)支持 Stream 和 MQ 的 starter
org.springframework.cloud
spring-cloud-sleuth-zipkin-stream
org.springframework.cloud
spring-cloud-starter-stream-rabbit
org.springframework.cloud
spring-cloud-starter-sleuth
Zipkin Server 的配置也相應調整;
Zipkin 高級使用持久性
Zipkin默認將Sleuth的日志信息保存在內存中,所以每次重啟Zipkin都會(huì )丟失之前的日志信息。您可以修改 Zipkin 的配置以允許 Zipkin Server 將所有日志持久化到數據庫中。關(guān)于持久化以及 Zipkin 支持 MQ 的方式,我們以后會(huì )介紹文章。
結束語(yǔ)
每次服務(wù)調用的鏈路跟蹤情況,通過(guò)鏈路跟蹤的解決方案,當整個(gè)請求變慢或不可用時(shí),我們可以知道該請求是由一個(gè)或部分后端服務(wù)引起的,快速閱讀定位服務(wù)故障點(diǎn)并規定對的藥。本文主要介紹通過(guò)Sleuth+Zipking實(shí)現SpringCloud的微服務(wù)云鏈路追蹤。文章中我們提到了Zipkin的MQ接收sleuth日志信息以及日志信息持久化的使用。我們以后會(huì )討論in文章,我們以后會(huì )在特別的文章中單獨介紹Skywalking。也希望大家繼續關(guān)注作者的每一個(gè)文章,關(guān)注作者,不要錯過(guò)精彩。
感謝您一直以來(lái)的關(guān)注。
干貨教程:wordpress網(wǎng)站搭建教程詳細-覆蓋SEO方案搭建
WordPress網(wǎng)站搭建教程詳解-涵蓋SEO方案搭建
搜索引擎優(yōu)化研究所
2022-03-08 19:43
搭建wordpress網(wǎng)站的詳細流程: 1. 購買(mǎi)域名 2. 購買(mǎi)云服務(wù)器 3. 申請備案 4. 域名解析 5. 安裝控制面板 6. 安裝Wordpress 7. 設置Wordpress
只需安裝此步驟即可獲得完整的 WordPress網(wǎng)站 設置。網(wǎng)站的構建是一項技術(shù)任務(wù),但是網(wǎng)站的構建完成后,并不代表以后就不需要管理了。網(wǎng)站的維護和優(yōu)化也很重要。而且不代表知道代碼就可以隨意構建網(wǎng)站。很多人對網(wǎng)站的構建知之甚少,構建的網(wǎng)站會(huì )被搜索引擎網(wǎng)站識別為垃圾郵件。如何優(yōu)化構造網(wǎng)站的結構?我們需要知道內容為王。網(wǎng)站的優(yōu)化分為很多不同的方面,包括網(wǎng)站結構的優(yōu)化,內部鏈接的優(yōu)化,
打開(kāi)網(wǎng)易新聞查看精彩圖片
一、頁(yè)面導航的優(yōu)化
每個(gè)網(wǎng)站都需要設置一個(gè)導航,就是讓用戶(hù)可以方便快捷的找到自己想要訪(fǎng)問(wèn)的頁(yè)面和內容。如果你把網(wǎng)站的頁(yè)面設置的很復雜,即使很炫,別人也找不到自己要找的,那么你建的網(wǎng)站就是失敗網(wǎng)站,因為用戶(hù)感覺(jué)不好,下次不會(huì )再瀏覽這個(gè)頁(yè)面了。因為現在互聯(lián)網(wǎng)發(fā)展非常迅速,沒(méi)有人會(huì )非常耐心地在一個(gè)頁(yè)面上瀏覽和搜索。如果找不到你的網(wǎng)站,他會(huì )立即關(guān)閉頁(yè)面,進(jìn)入別人的網(wǎng)站,尋找自己想要的。. 所以導航的設置不能太深,這樣會(huì )迷路,也會(huì )流失很多客戶(hù)。
二、頁(yè)面結構的概括
頁(yè)面結構的概括,簡(jiǎn)單來(lái)說(shuō)就是頁(yè)面應該滿(mǎn)足大部分用戶(hù)的訪(fǎng)問(wèn)需求。我們在構建網(wǎng)站時(shí),需要從不同的角度考慮用戶(hù)訪(fǎng)問(wèn)頁(yè)面時(shí)的需求和目標。在此基礎上,我們在考慮網(wǎng)站是否漂亮,給用戶(hù)留下什么樣的印象?,是否會(huì )讓用戶(hù)想再次訪(fǎng)問(wèn),尤其是對于一些團購網(wǎng)站,更要注意網(wǎng)站內頁(yè)的優(yōu)化。
三、內鏈結構的優(yōu)勢
內鏈的作用是讓整個(gè)網(wǎng)站的內容連貫起來(lái)。其實(shí)做內鏈很簡(jiǎn)單。不要將所有鏈接都指向主頁(yè)或某個(gè)頁(yè)面。應該是在不同的頁(yè)面上添加不同的內部鏈接,這樣可以引導用戶(hù)進(jìn)入相關(guān)的網(wǎng)頁(yè),了解更多的內容。而內鏈的合理優(yōu)化對提升網(wǎng)站的權重有很大的作用。
4. 網(wǎng)站快速收錄
打開(kāi)網(wǎng)易新聞查看精彩圖片
網(wǎng)站 更新得越頻繁,搜索引擎蜘蛛就會(huì )越頻繁地出現。因此,我們可以使用wordpress采集實(shí)現采集偽原創(chuàng )自動(dòng)發(fā)布和主動(dòng)推送到搜索引擎,提高搜索引擎的抓取頻率,從而提高網(wǎng)站收錄 和 關(guān)鍵詞 排名。
1. 免費的wordpress插件
免費的 wordpress采集 插件功能:

1、只需將關(guān)鍵詞導入到采集相關(guān)的關(guān)鍵詞文章,同時(shí)創(chuàng )建幾十個(gè)或幾百個(gè)采集任務(wù)(一個(gè)任務(wù)可以支持上傳1000個(gè)) 關(guān)鍵詞),支持過(guò)濾關(guān)鍵詞。
2. 支持多消息源:?jiǎn)?wèn)答和各種消息源(可同時(shí)設置多個(gè)采集消息源采集/采集消息源稍后添加)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3.過(guò)濾其他促銷(xiāo)信息
4. 圖片定位/圖片水印/圖片第三方存儲
5.文章互通+翻譯(簡(jiǎn)體中文繁體翻譯+百度翻譯+有道翻譯+谷歌翻譯+147翻譯)
6.自動(dòng)批量掛機采集,與各大cms發(fā)布者無(wú)縫對接,采集后自動(dòng)發(fā)布——實(shí)現采集發(fā)布全自動(dòng)掛機。
2.跨平臺發(fā)布插件
全平臺cms發(fā)布者的特點(diǎn):
1、cms發(fā)布:目前市面上唯一支持Empirecms、易友、ZBLOG、dedecms、WordPress、PBoot、Applecms、迅銳cms、PHPcms、Applecms、人人網(wǎng)cms、美圖cms、云游cms、Cyclone站群、THINKCMF、建站ABC 、凡客cms、一騎cms、Oceancms、飛飛cms、Local Release、搜外等各大cms,以及一個(gè)工具可同時(shí)管理和批量發(fā)布
2.全網(wǎng)推送(百度/360/搜狗/神馬)
打開(kāi)網(wǎng)易新聞查看精彩圖片
3. 偽原創(chuàng )(標題+內容)
4.更換圖片,防止侵權
5. 強大的SEO功能(自動(dòng)圖片放置/插入內外鏈接/標題和文章前后插入內容/標題關(guān)鍵詞與內容一致關(guān)鍵詞/隨機插入圖片/添加隨機屬性的頁(yè)面原創(chuàng )degree)
6.對應欄目:對應文章可以發(fā)布對應欄目/支持多欄目發(fā)布
7、定時(shí)發(fā)布:可控發(fā)布間隔/每天發(fā)布總數
8、監控數據:直接監控已經(jīng)發(fā)布、待發(fā)布的軟件,是否為偽原創(chuàng )、發(fā)布狀態(tài)、網(wǎng)站、程序、發(fā)布時(shí)間等。

打開(kāi)網(wǎng)易新聞查看精彩圖片
在網(wǎng)站的構建之初,需要布局大量的seo元素。一個(gè)好的公司網(wǎng)站應該有seo相關(guān)的元素,可以幫助后續的優(yōu)化。網(wǎng)站 基礎越強,后期工作量越小。
1.企業(yè)網(wǎng)站優(yōu)化:URL唯一性
確定網(wǎng)站的主題內容后,應該以網(wǎng)頁(yè)的形式呈現給用戶(hù)。一個(gè)網(wǎng)頁(yè)對應一個(gè)唯一的URL地址,無(wú)論你的網(wǎng)站是重新設計開(kāi)發(fā)的,還是開(kāi)源程序構建的,在新的網(wǎng)站上線(xiàn)之前,都必須保證每一個(gè)的唯一性網(wǎng)站 中的頁(yè)面 URL 地址,它是 seo 元素之一。
2.企業(yè)網(wǎng)站優(yōu)化:明確主題,聚合資源
任何 網(wǎng)站 都需要有目的地構建。網(wǎng)站建設之初,就已經(jīng)建立了競爭對手分析、差異化內容定位和用戶(hù)定位,所以整個(gè)網(wǎng)站的內容體系建設只需要圍繞這個(gè)確定的主題進(jìn)行。
主題明確網(wǎng)站的公司主要有以下好處:
1、主題明確,更容易宣傳自己的優(yōu)勢資源,強調一個(gè)領(lǐng)域的權威;
2、網(wǎng)站內容方向不變,可以聚集優(yōu)質(zhì)粉絲群。粉絲的交流能量這里不用我多寫(xiě)了;
3、對于搜索引擎來(lái)說(shuō),隨著(zhù)語(yǔ)義分析能力的增強,前期有明確的網(wǎng)站主題更容易獲得搜索引擎的信任。對于一個(gè)新站點(diǎn),索引時(shí)間可以縮短,即使是一個(gè)很小的影響因子,你沒(méi)有理由不實(shí)施。
3.企業(yè)網(wǎng)站優(yōu)化:內部鏈結構規劃
當一個(gè)新的 網(wǎng)站 啟動(dòng)時(shí),頁(yè)面的數量并不大。從網(wǎng)站的構建開(kāi)始,就必須規劃好網(wǎng)站的內部鏈結構。至于構建合理的內部鏈結構,網(wǎng)絡(luò )將有足夠多的相關(guān)文章策略。這里要強調的是,前期規劃好內鏈布局,對網(wǎng)站的擴展性和蜘蛛的爬取效率有很大幫助,尤其是對于一個(gè)新的網(wǎng)站,一個(gè)合理的內鏈結構可以大大減少網(wǎng)站頁(yè)面的收錄時(shí)間。
4.企業(yè)網(wǎng)站優(yōu)化:目錄結構標準設計
雖然說(shuō)搜索引擎可以很輕松的抓取動(dòng)態(tài)鏈接地址,但畢竟官方規范中的靜態(tài)URL地址對搜索引擎比較友好,所以SEO從業(yè)者在構建之初就應該注意網(wǎng)站 .網(wǎng)站的目錄結構(URL結構)統一標準化,讓開(kāi)發(fā)者可以在網(wǎng)站上線(xiàn)前以對搜索引擎最有利的方式部署網(wǎng)站,這是其中之一seo 元素。
5.企業(yè)版網(wǎng)站優(yōu)化:404頁(yè)
站點(diǎn)中不存在或將不存在的所有頁(yè)面都必須指向該頁(yè)面。404頁(yè)面的設置是搜索引擎友好的一種形式,所以在構建之初必須考慮到網(wǎng)站。是seo的要素之一。
打開(kāi)網(wǎng)易新聞查看精彩圖片
6.企業(yè)網(wǎng)站優(yōu)化:網(wǎng)站地圖
網(wǎng)站地圖,顧名思義,主要是將網(wǎng)站的主要頁(yè)面直接呈現給搜索引擎,讓搜索引擎通過(guò)這張地圖了解網(wǎng)站的頁(yè)面關(guān)系。網(wǎng)站地圖以 XML 格式和 HTML 格式提供。無(wú)論采用哪種形式,前期最好使用其中一種形式進(jìn)行布局。
官方發(fā)布:(web端)抖音直播間彈幕消息獲取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 95 次瀏覽 ? 2022-10-06 08:27
效果演示:
只顯示消息json的內容字段
準備:
本文中的操作是在瀏覽器從跨域狀態(tài)釋放時(shí)進(jìn)行的,普通瀏覽器也可以使用。
做法:復制谷歌瀏覽器圖標,右鍵,在快捷方式后面添加如下瀏覽器參數
--disable-web-security --user-data-dir=D:\MyChromeDevUserData // 文件路徑自己創(chuàng )建
更多瀏覽器參數請參考谷歌官方文檔
開(kāi)始尋找參數
隨意開(kāi)個(gè)直播間,在控制臺可以看到,會(huì )有兩個(gè)請求和一堆加載的個(gè)性圖片
然后我們可以從這些加載的圖片的調用棧入手,然后再分析回來(lái)。至于為什么要從這些圖片開(kāi)始?? 因為這些個(gè)性化圖片的加載是伴隨著(zhù)彈幕消息的,按照前瞻思維,消息和圖片的鏈接一般會(huì )在一個(gè)普通的響應體中返回。
隨機選擇一張圖片,跟進(jìn)調用棧
跟著(zhù)F8幾次之后,你會(huì )發(fā)現這里會(huì )有新聞內容,有時(shí)還有其他用戶(hù)信息,這也驗證了我們之前的想法
這些顯示的消息就是解析后的內容,所以我們可以直接回到調用棧的開(kāi)頭,從那里尋找線(xiàn)索
這里可以看到他是一個(gè)setInterval定時(shí)器
向上滾動(dòng)可以看到key的名字是initialization
消息正文的處理順序
此時(shí),我們直接hook代碼
代碼中的變量a就是當前的this,這里放了一個(gè)斷點(diǎn)
再次執行以下代碼
window.__a__ = a
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
}
<p>
</p>
打印所有消息
此時(shí),使用RPC來(lái)共享消息
如果發(fā)現提示是跨域的,請回到文章開(kāi)頭的準備工作
window.__a__ = a
var xhr_ = new XMLHttpRequest(),
method = "POST",
url = "http://127.0.0.1:45678/port"; // 本地接收彈幕消息接口
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
xhr_.open(method, url, true);
xhr_.setRequestHeader("Content-type", "application/json");
xhr_.send(JSON.stringify(obj));
}
最新消息:【電池咨詢(xún)】8萬(wàn)人搶米家超級電池
奶盤(pán)偽原創(chuàng )()
SEO偽原創(chuàng )AI偽原創(chuàng )SEO檢測偽原創(chuàng )趙耀靜自媒體助手采集器自定義排名推廣開(kāi)放API
2020年6月12日更新: 1. AI偽原創(chuàng ) API上線(xiàn) 2. 調整部分文案 3. 增加系統詞匯 | 奶鍋偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請于2019年6月12日聯(lián)系客服更新內容: 1.AI偽原創(chuàng )API上線(xiàn) 2.調整部分文案3.添加系統詞匯 | 奶盤(pán)偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請聯(lián)系客服
百度智能云最新優(yōu)惠
▇三國志游戲域名低價(jià)出售▇
網(wǎng)站免更新程序定制開(kāi)發(fā)
龍紋三國志手游答題器
一對一教學(xué),月入兩萬(wàn)
無(wú)限內容美國專(zhuān)用服務(wù)器租用
專(zhuān)業(yè)的網(wǎng)站排名提升SEO優(yōu)化輔助軟件
【微信公眾號無(wú)限裂變產(chǎn)品尋求合作】
高防香港-CN2高速穩定VPS
【SEO快速排名點(diǎn)擊量低至0.01/次】
智能違章監控系統全新上線(xiàn)!為保障廣大正常使用付費用戶(hù)的權益,現對有以下行為的賬號進(jìn)行查封: 1、單人版VIP多人借用。2、VIP用于程序調用或其他非法使用第三方程序。3、其他非正常人類(lèi)使用行為。被扣賬戶(hù)費用不予退還,請知悉-----2019-12-08
奶盤(pán) SEO偽原創(chuàng )
系統版本:新版本:3.2.1205 有 收錄 70980 個(gè)同義詞 / 47320 個(gè)免費用戶(hù)使用 [提交構建 偽原創(chuàng ) 庫]
注:新版奶盤(pán)SEO偽原創(chuàng )使用獨有的分詞引擎和自創(chuàng )詞庫模擬百度等中文分詞對偽原創(chuàng ),生成的偽原創(chuàng )文章更新準確,更接近百度收錄等搜索引擎。共171個(gè)詞,16個(gè)詞由免費用戶(hù)隨機替換【VIP升級后可替換為36個(gè)詞】,0個(gè)詞將替換為自定義詞,偽原創(chuàng )模式標準偽原創(chuàng )100%
偽原創(chuàng ) 僅用于學(xué)習目的。由于免費用戶(hù)使用捏盤(pán)網(wǎng)為自媒體,捏盤(pán)網(wǎng)積極配合國家網(wǎng)信辦開(kāi)展專(zhuān)項整治活動(dòng),堅決遏制自媒體。自媒體混沌,堅決維護網(wǎng)絡(luò )正常交流秩序,努力營(yíng)造干凈、積極、健康、有序的網(wǎng)絡(luò )空間!偽原創(chuàng )度大大降低,現在免費用戶(hù)偽原創(chuàng )度降低到50%,自覺(jué)做好轉載出處,保護作者合法權益原作者!VIP用戶(hù)不受影響!
鏈接模式 1 關(guān)鍵字
網(wǎng)址
鏈接方式2 用戶(hù)未登錄,無(wú)法讀取用戶(hù)關(guān)鍵字鏈接!選擇此模式偽原創(chuàng )將沒(méi)有關(guān)鍵字添加鏈接!
源詞庫偽原創(chuàng )模式鏈接文本為粗體
插入自定義內容
Milk Tray偽原創(chuàng ) 不斷得到補充和改進(jìn)。如果您有好的意見(jiàn)、建議或問(wèn)題報告,請點(diǎn)擊用戶(hù)反饋讓我們知道,謝謝!
奶鍋SEO在線(xiàn)偽原創(chuàng )工具介紹
在線(xiàn)偽原創(chuàng )工具是一個(gè)SEOER實(shí)用工具,是生成原創(chuàng )和偽原創(chuàng )文章的工具。偽原創(chuàng ) 工具可用于復制 Internet 上的文件。文章立即成為你自己的原創(chuàng )文章。本系統的WEB程序是專(zhuān)為Google、百度、雅虎、SOSO等大型搜索引擎收錄設計的,在線(xiàn)偽原創(chuàng )工具生成的文章將更好的被用戶(hù)使用搜索引擎 收錄 并索引到。在線(xiàn)偽原創(chuàng )工具是網(wǎng)頁(yè)編輯、群發(fā)用戶(hù)和SEOER的必備工具,也是優(yōu)化工具中不可多得的利器。
“在線(xiàn)偽原創(chuàng )工具”具有以下優(yōu)點(diǎn):
1、本軟件采用引擎獨有的分析規則和算法分割文章,可以很好的匹配所有搜索引擎。
2.唯一的同義詞替換詞庫可以在不改變文章語(yǔ)義的情況下生成原創(chuàng )文章。
3.集成了當前主流詞庫,詞庫功能非常強大,程序不斷更新,無(wú)需安裝,無(wú)需升級,始終保持最新偽原創(chuàng )文章,完全免費。
4.添加關(guān)鍵字和鏈接,加粗關(guān)鍵字,文章底部添加版權等強大功能。
關(guān)于牛奶鍋seo偽原創(chuàng )| 聯(lián)系我們| 廣告服務(wù)| 版權聲明| 人才招聘| 更新歷史| API授權查詢(xún)| 奶鍋API| 幫助
Milk Pan seo偽原創(chuàng )是專(zhuān)門(mén)針對百度和谷歌的爬蟲(chóng)習慣和分詞算法開(kāi)發(fā)的。本軟件優(yōu)化的文章會(huì )更受搜索引擎的青睞。奶鍋seo偽原創(chuàng )是網(wǎng)絡(luò )寫(xiě)手、海量帖子用戶(hù)、SEO們不可多得的工具,也是網(wǎng)站推廣者必備的工具??蛻?hù)服務(wù)
客服郵箱:點(diǎn)擊在線(xiàn)咨詢(xún)
09:00 - 22:00 掃描
聯(lián)系我們QQ群1:118977038
QQ群2:346875251
鏈接:偽原創(chuàng )偽原創(chuàng )在線(xiàn)工具偽原創(chuàng )偽原創(chuàng )在線(xiàn) 查看全部
官方發(fā)布:(web端)抖音直播間彈幕消息獲取
效果演示:
只顯示消息json的內容字段
準備:
本文中的操作是在瀏覽器從跨域狀態(tài)釋放時(shí)進(jìn)行的,普通瀏覽器也可以使用。
做法:復制谷歌瀏覽器圖標,右鍵,在快捷方式后面添加如下瀏覽器參數
--disable-web-security --user-data-dir=D:\MyChromeDevUserData // 文件路徑自己創(chuàng )建
更多瀏覽器參數請參考谷歌官方文檔
開(kāi)始尋找參數
隨意開(kāi)個(gè)直播間,在控制臺可以看到,會(huì )有兩個(gè)請求和一堆加載的個(gè)性圖片
然后我們可以從這些加載的圖片的調用棧入手,然后再分析回來(lái)。至于為什么要從這些圖片開(kāi)始?? 因為這些個(gè)性化圖片的加載是伴隨著(zhù)彈幕消息的,按照前瞻思維,消息和圖片的鏈接一般會(huì )在一個(gè)普通的響應體中返回。
隨機選擇一張圖片,跟進(jìn)調用棧
跟著(zhù)F8幾次之后,你會(huì )發(fā)現這里會(huì )有新聞內容,有時(shí)還有其他用戶(hù)信息,這也驗證了我們之前的想法

這些顯示的消息就是解析后的內容,所以我們可以直接回到調用棧的開(kāi)頭,從那里尋找線(xiàn)索
這里可以看到他是一個(gè)setInterval定時(shí)器
向上滾動(dòng)可以看到key的名字是initialization
消息正文的處理順序
此時(shí),我們直接hook代碼
代碼中的變量a就是當前的this,這里放了一個(gè)斷點(diǎn)
再次執行以下代碼
window.__a__ = a
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
}
<p>

</p>
打印所有消息
此時(shí),使用RPC來(lái)共享消息
如果發(fā)現提示是跨域的,請回到文章開(kāi)頭的準備工作
window.__a__ = a
var xhr_ = new XMLHttpRequest(),
method = "POST",
url = "http://127.0.0.1:45678/port"; // 本地接收彈幕消息接口
var publishSync_ = window.__a__.publishSync;
window.__a__.publishSync = (i) => { // 這里用箭頭函數,不要用傳統function
let obj = i.payload;
console.log(obj);
xhr_.open(method, url, true);
xhr_.setRequestHeader("Content-type", "application/json");
xhr_.send(JSON.stringify(obj));
}
最新消息:【電池咨詢(xún)】8萬(wàn)人搶米家超級電池
奶盤(pán)偽原創(chuàng )()
SEO偽原創(chuàng )AI偽原創(chuàng )SEO檢測偽原創(chuàng )趙耀靜自媒體助手采集器自定義排名推廣開(kāi)放API
2020年6月12日更新: 1. AI偽原創(chuàng ) API上線(xiàn) 2. 調整部分文案 3. 增加系統詞匯 | 奶鍋偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請于2019年6月12日聯(lián)系客服更新內容: 1.AI偽原創(chuàng )API上線(xiàn) 2.調整部分文案3.添加系統詞匯 | 奶盤(pán)偽原創(chuàng )() 用心做軟件,我們一直在努力!VIP和API接口請聯(lián)系客服
百度智能云最新優(yōu)惠
▇三國志游戲域名低價(jià)出售▇
網(wǎng)站免更新程序定制開(kāi)發(fā)
龍紋三國志手游答題器
一對一教學(xué),月入兩萬(wàn)
無(wú)限內容美國專(zhuān)用服務(wù)器租用
專(zhuān)業(yè)的網(wǎng)站排名提升SEO優(yōu)化輔助軟件
【微信公眾號無(wú)限裂變產(chǎn)品尋求合作】
高防香港-CN2高速穩定VPS

【SEO快速排名點(diǎn)擊量低至0.01/次】
智能違章監控系統全新上線(xiàn)!為保障廣大正常使用付費用戶(hù)的權益,現對有以下行為的賬號進(jìn)行查封: 1、單人版VIP多人借用。2、VIP用于程序調用或其他非法使用第三方程序。3、其他非正常人類(lèi)使用行為。被扣賬戶(hù)費用不予退還,請知悉-----2019-12-08
奶盤(pán) SEO偽原創(chuàng )
系統版本:新版本:3.2.1205 有 收錄 70980 個(gè)同義詞 / 47320 個(gè)免費用戶(hù)使用 [提交構建 偽原創(chuàng ) 庫]
注:新版奶盤(pán)SEO偽原創(chuàng )使用獨有的分詞引擎和自創(chuàng )詞庫模擬百度等中文分詞對偽原創(chuàng ),生成的偽原創(chuàng )文章更新準確,更接近百度收錄等搜索引擎。共171個(gè)詞,16個(gè)詞由免費用戶(hù)隨機替換【VIP升級后可替換為36個(gè)詞】,0個(gè)詞將替換為自定義詞,偽原創(chuàng )模式標準偽原創(chuàng )100%
偽原創(chuàng ) 僅用于學(xué)習目的。由于免費用戶(hù)使用捏盤(pán)網(wǎng)為自媒體,捏盤(pán)網(wǎng)積極配合國家網(wǎng)信辦開(kāi)展專(zhuān)項整治活動(dòng),堅決遏制自媒體。自媒體混沌,堅決維護網(wǎng)絡(luò )正常交流秩序,努力營(yíng)造干凈、積極、健康、有序的網(wǎng)絡(luò )空間!偽原創(chuàng )度大大降低,現在免費用戶(hù)偽原創(chuàng )度降低到50%,自覺(jué)做好轉載出處,保護作者合法權益原作者!VIP用戶(hù)不受影響!
鏈接模式 1 關(guān)鍵字
網(wǎng)址
鏈接方式2 用戶(hù)未登錄,無(wú)法讀取用戶(hù)關(guān)鍵字鏈接!選擇此模式偽原創(chuàng )將沒(méi)有關(guān)鍵字添加鏈接!
源詞庫偽原創(chuàng )模式鏈接文本為粗體
插入自定義內容
Milk Tray偽原創(chuàng ) 不斷得到補充和改進(jìn)。如果您有好的意見(jiàn)、建議或問(wèn)題報告,請點(diǎn)擊用戶(hù)反饋讓我們知道,謝謝!
奶鍋SEO在線(xiàn)偽原創(chuàng )工具介紹

在線(xiàn)偽原創(chuàng )工具是一個(gè)SEOER實(shí)用工具,是生成原創(chuàng )和偽原創(chuàng )文章的工具。偽原創(chuàng ) 工具可用于復制 Internet 上的文件。文章立即成為你自己的原創(chuàng )文章。本系統的WEB程序是專(zhuān)為Google、百度、雅虎、SOSO等大型搜索引擎收錄設計的,在線(xiàn)偽原創(chuàng )工具生成的文章將更好的被用戶(hù)使用搜索引擎 收錄 并索引到。在線(xiàn)偽原創(chuàng )工具是網(wǎng)頁(yè)編輯、群發(fā)用戶(hù)和SEOER的必備工具,也是優(yōu)化工具中不可多得的利器。
“在線(xiàn)偽原創(chuàng )工具”具有以下優(yōu)點(diǎn):
1、本軟件采用引擎獨有的分析規則和算法分割文章,可以很好的匹配所有搜索引擎。
2.唯一的同義詞替換詞庫可以在不改變文章語(yǔ)義的情況下生成原創(chuàng )文章。
3.集成了當前主流詞庫,詞庫功能非常強大,程序不斷更新,無(wú)需安裝,無(wú)需升級,始終保持最新偽原創(chuàng )文章,完全免費。
4.添加關(guān)鍵字和鏈接,加粗關(guān)鍵字,文章底部添加版權等強大功能。
關(guān)于牛奶鍋seo偽原創(chuàng )| 聯(lián)系我們| 廣告服務(wù)| 版權聲明| 人才招聘| 更新歷史| API授權查詢(xún)| 奶鍋API| 幫助
Milk Pan seo偽原創(chuàng )是專(zhuān)門(mén)針對百度和谷歌的爬蟲(chóng)習慣和分詞算法開(kāi)發(fā)的。本軟件優(yōu)化的文章會(huì )更受搜索引擎的青睞。奶鍋seo偽原創(chuàng )是網(wǎng)絡(luò )寫(xiě)手、海量帖子用戶(hù)、SEO們不可多得的工具,也是網(wǎng)站推廣者必備的工具??蛻?hù)服務(wù)
客服郵箱:點(diǎn)擊在線(xiàn)咨詢(xún)
09:00 - 22:00 掃描
聯(lián)系我們QQ群1:118977038
QQ群2:346875251
鏈接:偽原創(chuàng )偽原創(chuàng )在線(xiàn)工具偽原創(chuàng )偽原創(chuàng )在線(xiàn)
文章采集調用 經(jīng)驗:深入淺出JProfiler
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 144 次瀏覽 ? 2022-10-05 07:15
文章來(lái)自阿里巴巴市技術(shù)協(xié)會(huì )(ATA)
?。?。由于最近的工作,使用J輪廓器(
8)做性能瓶頸分析,發(fā)現這個(gè)工具真的方便使用,現在整理了JProfiler的相關(guān)知識(谷歌查了一下,有沒(méi)有我想要的)。
什么是 J 輪廓器
J輪廓器是由ej技術(shù)有限公司(也開(kāi)發(fā)部署工具)開(kāi)發(fā)的性能瓶頸分析工具。
其特點(diǎn):
二。數據采集
問(wèn)題 1.由于JProfiler是一種性能瓶頸分析工具,因此此分析的相關(guān)數據來(lái)自哪里?
問(wèn)題 2.J普羅菲勒是如何采集和呈現這些數據的?
?。▓D2
?。?。
解答 1.分析的數據主要來(lái)自以下兩個(gè)部分
1. 部分分析接口來(lái)自 jvm(JVM 工具接口),JDK 必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理程序函數。然后,它可以啟用或禁用選定的事件
例如:生命周期
對象、線(xiàn)程的生命周期等
2. 部分來(lái)自?xún)x器類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計
?。?。
例如:方法執行時(shí)間、次數、方法堆棧等
解答 2.數據采集的原理如圖2所示。
1. 用戶(hù)在 J 輪廓控制器 GUI 中發(fā)出監控指令(通常通過(guò)單擊按鈕
?。?。
2. J輪廓 GUI JVM 通過(guò)套接字(默認端口 8849)將指令發(fā)送到所分析的 JVM 中的 J 輪廓代理。
3. JProfiler 代理(如果您不知道代理文章,請參閱第 3 部分 “啟動(dòng)模式”) 收到指令后,將指令轉換為相關(guān)事件或要偵聽(tīng)的指令,將其注冊到 JVMTI 或直接讓 JVMTI 執行一個(gè)功能(例如轉儲 jvm 內存)。
4. JVMTI 根據注冊的事件采集有關(guān)當前 jvm 的信息。例如:線(xiàn)程的生命周期;JVM的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;有關(guān)堆內存等的實(shí)時(shí)信息
5. J輪廓代理將采集信息保存到**內存**中,并根據一定的規則進(jìn)行計數(如果J-Profiler GUI發(fā)送了所有數據,它將對分析的應用程序網(wǎng)絡(luò )產(chǎn)生比較大的影響)。
6. 返回 J 輪廓 GUI 套接字
7. J輪廓GUI套接字將收到的信息返回給J輪廓GUI渲染
8. J輪廓GUI渲染渲染到最終的顯示效果
數據采集模式和啟動(dòng)模式
解答 1.JProfier 采集方法分為兩種類(lèi)型:采樣(樣本采集)和檢測
注意:JProfiler 本身并不指示采集數據類(lèi)型,此處采集類(lèi)型是方法調用的采集類(lèi)型。由于 JProfiler 的大多數核心功能依賴(lài)于數據采集方法調用,因此可以直接將其視為 J 輪廓器的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
4. J輪廓器核心概念
篩選器:需要分析的類(lèi)。有兩種類(lèi)型的篩選器:收錄的和不收錄的。
?。▓D4
?。?。
分析設置:收據采集策略:可以自定義采樣和檢測、某些數據采集詳細信息
?。▓D5
?。?。
觸發(fā)器:通常在離線(xiàn)模式下用于告訴 JProfiler 代理何時(shí)觸發(fā)什么行為來(lái)采集指定信息
?。▓D6
?。?。
實(shí)時(shí)內存:有關(guān)類(lèi)/類(lèi)實(shí)例的信息。例如,對象數、大小、用于對象創(chuàng )建的方法執行堆棧、用于對象創(chuàng )建的熱點(diǎn)。
?。▓D7
?。?。
堆步行者:功能強大,可用于靜態(tài)分析在一定時(shí)間內采集的記憶圖像信息。收錄傳出引用、傳入引用、最大對象等對象
?。▓D8
?。?。
CPU視圖:CPU消耗的分布和時(shí)間(CPU時(shí)間或運行時(shí)間);方法的執行圖;方法的執行統計信息(最大值、最小值、平均運行時(shí)間等)
?。?。
?。▓D9
?。?。
線(xiàn)程:jvm 中所有線(xiàn)程的當前運行狀態(tài)、持有鎖的線(xiàn)程的狀態(tài)、可轉儲線(xiàn)程。
?。▓D10
?。?。
監視器和鎖:所有線(xiàn)程持有鎖的情況以及有關(guān)鎖的信息
?。▓D 11
?。?。
遙測:收錄堆、線(xiàn)程、gc、類(lèi)等的趨勢圖(遙測視圖)
實(shí)踐
為了便于練習,請舉一個(gè) JProfiler8 附帶的示例來(lái)幫助理解上述相關(guān)概念。
JProfiler 附帶了以下示例:模擬內存泄漏和線(xiàn)程阻塞場(chǎng)景:
參考: /jprofiler install path/demo/bezier
?。▓D 12)。
?。▓D 13 泄漏內存模擬內存泄漏,模擬阻塞模擬線(xiàn)程間鎖定。
解答 1.首先,讓我們分析一下內存泄漏場(chǎng)景:(檢查圖 13 中的泄漏內存模擬內存泄漏)。
1. 在遙測>內存視圖中,您將看到大致如下圖所示的場(chǎng)景(在查看過(guò)程中可以每隔一段時(shí)間執行一次運行GC):請參閱下圖的藍色區域,gc(**槽**)之后老一代的內存大小正在緩慢增加(理想情況下,此值應穩定)。
?。▓D 14
?。?。單擊 **
實(shí)時(shí)內存>記錄對象“中的”記錄分配數據**“按鈕,用于開(kāi)始計算在一段時(shí)間內創(chuàng )建的對象信息。執行Run GC一次后,查看當前對象信息的大小,然后單擊工具欄中的“標記為當前”按鈕(實(shí)際上,它是標記當前對象的數量。運行GC一次,然后繼續觀(guān)察;在繼續觀(guān)察之前運行一次GC。...最后,讓我們看看在連續GC之后哪些物體的數量一直在上升。您最終看到的信息可能類(lèi)似于下圖
?。▓D15 綠色是標記前的數字,紅色是標記后的增量
?。?。
分析您剛剛記錄在堆步行器中的對象信息
?。▓D 16
?。?。
?。▓D 17
?。?。
單擊上圖中具有最多實(shí)例的類(lèi),然后右鍵單擊“使用所選實(shí)例>引用>傳入引用”
發(fā)現長(cháng)數據最終存儲在貝塞爾中。BeaierAnim.leakMap**.
?。▓D 18
?。?。
在“分配”選項卡中,右鍵單擊其中一種方法以查看特定的源代碼
?。▓D 19
?。?。
【注】:此時(shí),問(wèn)題很清楚,理解為什么圖17中哪些實(shí)例的數量是一樣的,以及為什么內存在fullgc之后仍然沒(méi)有回收(一個(gè)舊區域的對象expleMap,放置信息也會(huì )進(jìn)入舊區域,泄漏Map如果不能回收,那么映射中收錄的對象就不能回收)。
解答 2.模擬線(xiàn)程阻塞的場(chǎng)景(選中模擬阻塞以模擬線(xiàn)程間鎖定阻塞,如圖 13 所示
?。?。
為了更容易區分線(xiàn)程,我在演示測試中將貝塞爾動(dòng)畫(huà)的L236.java命名為線(xiàn)程。
public void start() {
thread = new Thread(this, "test");
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
通常,如下圖所示
?。▓D 20
?。?。
在演示中選中“模擬阻塞”選項后,如下圖所示(注意下圖中的狀態(tài)圖標),測試線(xiàn)程塊狀態(tài)明顯增加。
?。▓D 21
?。?。
在觀(guān)察了監視器和鎖>監視器歷史記錄一段時(shí)間后,發(fā)生了4種類(lèi)型的鎖。
第一個(gè):
AWT 事件隊列 0 線(xiàn)程在對象上保持鎖定,并處于“正在等待”狀態(tài)。
圖下面的代碼表示演示塊方法調用了對象.wait 方法。這仍然相對容易理解。
?。▓D 22
?。?。
第二種:
AWT-事件隊列-0 保持貝塞爾上的鎖。貝塞爾動(dòng)畫(huà)演示實(shí)例,而測試線(xiàn)程等待該線(xiàn)程釋放。
請注意下圖中的源代碼,此鎖定的原因是 AWT 和測試線(xiàn)程上的 Demo 的 blcok 方法
將執行,并且方法已同步
?。▓D 23
?。?。
第三和第四種:
測試線(xiàn)程不斷將任務(wù)提交到事件事件調度線(xiàn)程,從而導致對 java.awt.事件隊列對象鎖定的競爭。
提交任務(wù)的方式是以下代碼:重繪() 和事件隊列。
public void run() {
Thread me = Thread.currentThread();
while (thread == me) {
repaint();
if (block) {
block(false);
}
try {
Thread.sleep(10);
} catch (Exception e) {
break;
}
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
onEDTMethod();
}
});
}
thread = null;
}
?。▓D24
?。?。
6. 最佳實(shí)踐 JProfiler 會(huì )給出一些特殊操作的提示,因此最好仔細閱讀說(shuō)明?!皹擞洰斍啊惫δ茉谀承┣闆r下效果很好 堆步行器通常會(huì )靜態(tài)分析實(shí)時(shí)內存>記錄器對象中的對象信息,這些信息可能被 GC 回收,從而導致堆步行器中不顯示任何內容。這種現象是正常的。您可以在“開(kāi)始錄制文件”工具欄中配置一次采集的信息 過(guò)濾器收錄和排除是否按順序排列,請注意下圖**左下角** **顯示過(guò)濾器樹(shù)**以驗證順序
?。▓D25) 七.參考文獻 J輪廓助手:
捷運通:
如果上述描述中存在錯誤或內亂,歡迎使用斧頭。
除此之外:J輪廓器被收費
直觀(guān):TikTok易銷(xiāo)寶 | TikTok小店如何上貨?4種高效采集方式揭秘
作為輻射全球的短視頻應用,TikTok的發(fā)展速度驚人。數據顯示,TikTok在全球擁有超過(guò)10億的月活躍用戶(hù)和超過(guò)30億的下載量,成為全球第三大社交平臺。
同時(shí),隨著(zhù)TikTok生態(tài)系統的不斷發(fā)展和延伸,TikTok的變現模式也越來(lái)越多,其中TikTok Shop是目前最受歡迎的一種。
TikTok Shop 是賣(mài)家在 TikTok 上推出的在線(xiàn)商店。賣(mài)家可以在店鋪發(fā)布自己的產(chǎn)品,然后使用TikTok賬號為小店吸引流量,從而直接實(shí)現用戶(hù)在TikTok賬號中的購物轉化,縮短買(mǎi)家的購物時(shí)間。的鏈接。簡(jiǎn)單來(lái)說(shuō),TikTok Shop有國內抖音小店的詳細清單。
TikTok Shop開(kāi)張后,賣(mài)家需要考慮的是如何快速給店鋪加貨,吸引流量。有經(jīng)驗的商家只要知道發(fā)貨速度慢,線(xiàn)上產(chǎn)品不夠多,產(chǎn)品不是不斷變化,產(chǎn)品不豐富,就很難吸引流量,更談不上流量的轉化率。
抖音賣(mài)家采集如何一鍵將商品賣(mài)到店鋪?TikTok 一品寶介紹了 4 種快速 采集 和批量 采集 方法。
抖音易銷(xiāo)寶
抖音全店采集
進(jìn)入shopee或lazada平臺的店鋪首頁(yè)鏈接,點(diǎn)擊【在線(xiàn)采集】按鈕,即可采集將店鋪的所有商品數據采集到一品寶ERP系統中,然后可以修改信息存儲在 TikTok 商店上發(fā)布的產(chǎn)品。
抖音全店采集
抖音鏈接采集
顧名思義就是進(jìn)入單個(gè)sku的產(chǎn)品鏈接,定位采集賣(mài)家想要的產(chǎn)品
抖音鏈接采集
抖音易銷(xiāo)寶
TikTok關(guān)鍵詞選擇
東南亞的TikTok賣(mài)家可以選擇對應的站點(diǎn),輸入產(chǎn)品關(guān)鍵詞選擇產(chǎn)品采集,一品寶erp會(huì )自動(dòng)抓取shopee/lazada的熱銷(xiāo)產(chǎn)品,并顯示他們的標題、圖片、價(jià)格、銷(xiāo)量體積以及發(fā)貨地等產(chǎn)品信息,為賣(mài)家選擇產(chǎn)品和采集提供數據支持。
抖音關(guān)鍵詞選擇
TikTok最熱門(mén)的選擇
TikTok賣(mài)家篩選網(wǎng)站、店鋪類(lèi)型(官方店鋪、非官方店鋪)、發(fā)貨地點(diǎn)(國內、海外)、價(jià)格、產(chǎn)品排名后,可以發(fā)現深耕行業(yè)的熱門(mén)產(chǎn)品,一鍵同步. 抖音平臺。
抖音爆款風(fēng)格選擇
抖音易行寶專(zhuān)注抖音電商,涵蓋店鋪更換、店鋪隔離、多店鋪管理、運營(yíng)看板、產(chǎn)品搬遷、批量采集、批量發(fā)布、自動(dòng)邀請專(zhuān)家、智能采購、訂單管理、倉庫管理、智能客服、海外倉代理單板、專(zhuān)屬客戶(hù)成功服務(wù)等十余項功能,為抖音賣(mài)家提供一站式管理服務(wù)。 查看全部
文章采集調用 經(jīng)驗:深入淺出JProfiler
文章來(lái)自阿里巴巴市技術(shù)協(xié)會(huì )(ATA)
?。?。由于最近的工作,使用J輪廓器(
8)做性能瓶頸分析,發(fā)現這個(gè)工具真的方便使用,現在整理了JProfiler的相關(guān)知識(谷歌查了一下,有沒(méi)有我想要的)。
什么是 J 輪廓器
J輪廓器是由ej技術(shù)有限公司(也開(kāi)發(fā)部署工具)開(kāi)發(fā)的性能瓶頸分析工具。
其特點(diǎn):
二。數據采集
問(wèn)題 1.由于JProfiler是一種性能瓶頸分析工具,因此此分析的相關(guān)數據來(lái)自哪里?
問(wèn)題 2.J普羅菲勒是如何采集和呈現這些數據的?
?。▓D2
?。?。
解答 1.分析的數據主要來(lái)自以下兩個(gè)部分
1. 部分分析接口來(lái)自 jvm(JVM 工具接口),JDK 必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理程序函數。然后,它可以啟用或禁用選定的事件
例如:生命周期
對象、線(xiàn)程的生命周期等
2. 部分來(lái)自?xún)x器類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計
?。?。
例如:方法執行時(shí)間、次數、方法堆棧等
解答 2.數據采集的原理如圖2所示。
1. 用戶(hù)在 J 輪廓控制器 GUI 中發(fā)出監控指令(通常通過(guò)單擊按鈕
?。?。
2. J輪廓 GUI JVM 通過(guò)套接字(默認端口 8849)將指令發(fā)送到所分析的 JVM 中的 J 輪廓代理。
3. JProfiler 代理(如果您不知道代理文章,請參閱第 3 部分 “啟動(dòng)模式”) 收到指令后,將指令轉換為相關(guān)事件或要偵聽(tīng)的指令,將其注冊到 JVMTI 或直接讓 JVMTI 執行一個(gè)功能(例如轉儲 jvm 內存)。
4. JVMTI 根據注冊的事件采集有關(guān)當前 jvm 的信息。例如:線(xiàn)程的生命周期;JVM的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;有關(guān)堆內存等的實(shí)時(shí)信息
5. J輪廓代理將采集信息保存到**內存**中,并根據一定的規則進(jìn)行計數(如果J-Profiler GUI發(fā)送了所有數據,它將對分析的應用程序網(wǎng)絡(luò )產(chǎn)生比較大的影響)。
6. 返回 J 輪廓 GUI 套接字
7. J輪廓GUI套接字將收到的信息返回給J輪廓GUI渲染
8. J輪廓GUI渲染渲染到最終的顯示效果
數據采集模式和啟動(dòng)模式
解答 1.JProfier 采集方法分為兩種類(lèi)型:采樣(樣本采集)和檢測
注意:JProfiler 本身并不指示采集數據類(lèi)型,此處采集類(lèi)型是方法調用的采集類(lèi)型。由于 JProfiler 的大多數核心功能依賴(lài)于數據采集方法調用,因此可以直接將其視為 J 輪廓器的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
4. J輪廓器核心概念
篩選器:需要分析的類(lèi)。有兩種類(lèi)型的篩選器:收錄的和不收錄的。
?。▓D4
?。?。
分析設置:收據采集策略:可以自定義采樣和檢測、某些數據采集詳細信息
?。▓D5
?。?。
觸發(fā)器:通常在離線(xiàn)模式下用于告訴 JProfiler 代理何時(shí)觸發(fā)什么行為來(lái)采集指定信息
?。▓D6
?。?。
實(shí)時(shí)內存:有關(guān)類(lèi)/類(lèi)實(shí)例的信息。例如,對象數、大小、用于對象創(chuàng )建的方法執行堆棧、用于對象創(chuàng )建的熱點(diǎn)。
?。▓D7
?。?。
堆步行者:功能強大,可用于靜態(tài)分析在一定時(shí)間內采集的記憶圖像信息。收錄傳出引用、傳入引用、最大對象等對象
?。▓D8
?。?。
CPU視圖:CPU消耗的分布和時(shí)間(CPU時(shí)間或運行時(shí)間);方法的執行圖;方法的執行統計信息(最大值、最小值、平均運行時(shí)間等)

?。?。
?。▓D9
?。?。
線(xiàn)程:jvm 中所有線(xiàn)程的當前運行狀態(tài)、持有鎖的線(xiàn)程的狀態(tài)、可轉儲線(xiàn)程。
?。▓D10
?。?。
監視器和鎖:所有線(xiàn)程持有鎖的情況以及有關(guān)鎖的信息
?。▓D 11
?。?。
遙測:收錄堆、線(xiàn)程、gc、類(lèi)等的趨勢圖(遙測視圖)
實(shí)踐
為了便于練習,請舉一個(gè) JProfiler8 附帶的示例來(lái)幫助理解上述相關(guān)概念。
JProfiler 附帶了以下示例:模擬內存泄漏和線(xiàn)程阻塞場(chǎng)景:
參考: /jprofiler install path/demo/bezier
?。▓D 12)。
?。▓D 13 泄漏內存模擬內存泄漏,模擬阻塞模擬線(xiàn)程間鎖定。
解答 1.首先,讓我們分析一下內存泄漏場(chǎng)景:(檢查圖 13 中的泄漏內存模擬內存泄漏)。
1. 在遙測>內存視圖中,您將看到大致如下圖所示的場(chǎng)景(在查看過(guò)程中可以每隔一段時(shí)間執行一次運行GC):請參閱下圖的藍色區域,gc(**槽**)之后老一代的內存大小正在緩慢增加(理想情況下,此值應穩定)。
?。▓D 14
?。?。單擊 **
實(shí)時(shí)內存>記錄對象“中的”記錄分配數據**“按鈕,用于開(kāi)始計算在一段時(shí)間內創(chuàng )建的對象信息。執行Run GC一次后,查看當前對象信息的大小,然后單擊工具欄中的“標記為當前”按鈕(實(shí)際上,它是標記當前對象的數量。運行GC一次,然后繼續觀(guān)察;在繼續觀(guān)察之前運行一次GC。...最后,讓我們看看在連續GC之后哪些物體的數量一直在上升。您最終看到的信息可能類(lèi)似于下圖
?。▓D15 綠色是標記前的數字,紅色是標記后的增量
?。?。
分析您剛剛記錄在堆步行器中的對象信息
?。▓D 16
?。?。
?。▓D 17
?。?。
單擊上圖中具有最多實(shí)例的類(lèi),然后右鍵單擊“使用所選實(shí)例>引用>傳入引用”
發(fā)現長(cháng)數據最終存儲在貝塞爾中。BeaierAnim.leakMap**.
?。▓D 18
?。?。
在“分配”選項卡中,右鍵單擊其中一種方法以查看特定的源代碼
?。▓D 19
?。?。
【注】:此時(shí),問(wèn)題很清楚,理解為什么圖17中哪些實(shí)例的數量是一樣的,以及為什么內存在fullgc之后仍然沒(méi)有回收(一個(gè)舊區域的對象expleMap,放置信息也會(huì )進(jìn)入舊區域,泄漏Map如果不能回收,那么映射中收錄的對象就不能回收)。
解答 2.模擬線(xiàn)程阻塞的場(chǎng)景(選中模擬阻塞以模擬線(xiàn)程間鎖定阻塞,如圖 13 所示
?。?。
為了更容易區分線(xiàn)程,我在演示測試中將貝塞爾動(dòng)畫(huà)的L236.java命名為線(xiàn)程。
public void start() {
thread = new Thread(this, "test");
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}

通常,如下圖所示
?。▓D 20
?。?。
在演示中選中“模擬阻塞”選項后,如下圖所示(注意下圖中的狀態(tài)圖標),測試線(xiàn)程塊狀態(tài)明顯增加。
?。▓D 21
?。?。
在觀(guān)察了監視器和鎖>監視器歷史記錄一段時(shí)間后,發(fā)生了4種類(lèi)型的鎖。
第一個(gè):
AWT 事件隊列 0 線(xiàn)程在對象上保持鎖定,并處于“正在等待”狀態(tài)。
圖下面的代碼表示演示塊方法調用了對象.wait 方法。這仍然相對容易理解。
?。▓D 22
?。?。
第二種:
AWT-事件隊列-0 保持貝塞爾上的鎖。貝塞爾動(dòng)畫(huà)演示實(shí)例,而測試線(xiàn)程等待該線(xiàn)程釋放。
請注意下圖中的源代碼,此鎖定的原因是 AWT 和測試線(xiàn)程上的 Demo 的 blcok 方法
將執行,并且方法已同步
?。▓D 23
?。?。
第三和第四種:
測試線(xiàn)程不斷將任務(wù)提交到事件事件調度線(xiàn)程,從而導致對 java.awt.事件隊列對象鎖定的競爭。
提交任務(wù)的方式是以下代碼:重繪() 和事件隊列。
public void run() {
Thread me = Thread.currentThread();
while (thread == me) {
repaint();
if (block) {
block(false);
}
try {
Thread.sleep(10);
} catch (Exception e) {
break;
}
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
onEDTMethod();
}
});
}
thread = null;
}
?。▓D24
?。?。
6. 最佳實(shí)踐 JProfiler 會(huì )給出一些特殊操作的提示,因此最好仔細閱讀說(shuō)明?!皹擞洰斍啊惫δ茉谀承┣闆r下效果很好 堆步行器通常會(huì )靜態(tài)分析實(shí)時(shí)內存>記錄器對象中的對象信息,這些信息可能被 GC 回收,從而導致堆步行器中不顯示任何內容。這種現象是正常的。您可以在“開(kāi)始錄制文件”工具欄中配置一次采集的信息 過(guò)濾器收錄和排除是否按順序排列,請注意下圖**左下角** **顯示過(guò)濾器樹(shù)**以驗證順序
?。▓D25) 七.參考文獻 J輪廓助手:
捷運通:
如果上述描述中存在錯誤或內亂,歡迎使用斧頭。
除此之外:J輪廓器被收費
直觀(guān):TikTok易銷(xiāo)寶 | TikTok小店如何上貨?4種高效采集方式揭秘
作為輻射全球的短視頻應用,TikTok的發(fā)展速度驚人。數據顯示,TikTok在全球擁有超過(guò)10億的月活躍用戶(hù)和超過(guò)30億的下載量,成為全球第三大社交平臺。
同時(shí),隨著(zhù)TikTok生態(tài)系統的不斷發(fā)展和延伸,TikTok的變現模式也越來(lái)越多,其中TikTok Shop是目前最受歡迎的一種。
TikTok Shop 是賣(mài)家在 TikTok 上推出的在線(xiàn)商店。賣(mài)家可以在店鋪發(fā)布自己的產(chǎn)品,然后使用TikTok賬號為小店吸引流量,從而直接實(shí)現用戶(hù)在TikTok賬號中的購物轉化,縮短買(mǎi)家的購物時(shí)間。的鏈接。簡(jiǎn)單來(lái)說(shuō),TikTok Shop有國內抖音小店的詳細清單。
TikTok Shop開(kāi)張后,賣(mài)家需要考慮的是如何快速給店鋪加貨,吸引流量。有經(jīng)驗的商家只要知道發(fā)貨速度慢,線(xiàn)上產(chǎn)品不夠多,產(chǎn)品不是不斷變化,產(chǎn)品不豐富,就很難吸引流量,更談不上流量的轉化率。
抖音賣(mài)家采集如何一鍵將商品賣(mài)到店鋪?TikTok 一品寶介紹了 4 種快速 采集 和批量 采集 方法。
抖音易銷(xiāo)寶
抖音全店采集

進(jìn)入shopee或lazada平臺的店鋪首頁(yè)鏈接,點(diǎn)擊【在線(xiàn)采集】按鈕,即可采集將店鋪的所有商品數據采集到一品寶ERP系統中,然后可以修改信息存儲在 TikTok 商店上發(fā)布的產(chǎn)品。
抖音全店采集
抖音鏈接采集
顧名思義就是進(jìn)入單個(gè)sku的產(chǎn)品鏈接,定位采集賣(mài)家想要的產(chǎn)品
抖音鏈接采集
抖音易銷(xiāo)寶

TikTok關(guān)鍵詞選擇
東南亞的TikTok賣(mài)家可以選擇對應的站點(diǎn),輸入產(chǎn)品關(guān)鍵詞選擇產(chǎn)品采集,一品寶erp會(huì )自動(dòng)抓取shopee/lazada的熱銷(xiāo)產(chǎn)品,并顯示他們的標題、圖片、價(jià)格、銷(xiāo)量體積以及發(fā)貨地等產(chǎn)品信息,為賣(mài)家選擇產(chǎn)品和采集提供數據支持。
抖音關(guān)鍵詞選擇
TikTok最熱門(mén)的選擇
TikTok賣(mài)家篩選網(wǎng)站、店鋪類(lèi)型(官方店鋪、非官方店鋪)、發(fā)貨地點(diǎn)(國內、海外)、價(jià)格、產(chǎn)品排名后,可以發(fā)現深耕行業(yè)的熱門(mén)產(chǎn)品,一鍵同步. 抖音平臺。
抖音爆款風(fēng)格選擇
抖音易行寶專(zhuān)注抖音電商,涵蓋店鋪更換、店鋪隔離、多店鋪管理、運營(yíng)看板、產(chǎn)品搬遷、批量采集、批量發(fā)布、自動(dòng)邀請專(zhuān)家、智能采購、訂單管理、倉庫管理、智能客服、海外倉代理單板、專(zhuān)屬客戶(hù)成功服務(wù)等十余項功能,為抖音賣(mài)家提供一站式管理服務(wù)。
分享文章:織夢(mèng)解決輪播圖模糊調用文章內容頁(yè)第一張大圖方法
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2022-10-03 15:10
可織夢(mèng)文章縮略圖自動(dòng)提取,偽靜態(tài)和靜態(tài)網(wǎng)站
找到縮略圖:[字段:litpic/] 或 [字段:圖片名稱(chēng)/]。
替換為
[字段:id 函數='get_tupian(@me)'/]
織夢(mèng)/收錄/擴展函數添加以下函數.php
//縮略圖
function?get_tupian($id){
???global?$dsql;
??$row?=?$dsql->GetOne("SELECT?aid,body?FROM?`dede_addonarticle`?where?aid='$id'");
??if(preg_match(?"/()/",$row['body']?,?$regs?)){
<p>
return?$regs[2];?
????}else{
????return??$GLOBALS['cfg_basehost']."/images/defaultpic.gif";
????}
}</p>
織夢(mèng)二次開(kāi)發(fā)QQ群
揭密:百度快照不顯示標題和描述大揭秘
近日,網(wǎng)上很多朋友網(wǎng)站出現了一個(gè)問(wèn)題,就是搜索結果頁(yè)的標題網(wǎng)站不完整,網(wǎng)站快照沒(méi)有描述,網(wǎng)站的快照無(wú)法預覽,但快照每天都在更新,但網(wǎng)站卻沒(méi)有增加(關(guān)于這個(gè)楊長(cháng)生之前寫(xiě)過(guò)一篇文章收錄百度為什么百度拿了你文章 網(wǎng)站的前三朵花)。這是什么原因?之前楊長(cháng)生處理過(guò)網(wǎng)站八閔商業(yè)聯(lián)盟也出現過(guò)這樣的情況:(這個(gè)網(wǎng)站之前的情況是:為了不向搜索引擎提交低質(zhì)量的測試文章,當這個(gè)網(wǎng)站里面是在線(xiàn)的,我屏蔽了所有搜索引擎爬行的機器人,但百度還是收錄,等待模板和結構的修改, 我清空了機器人,等待蜘蛛爬行和收錄,結果,到目前為止所有的快照都是同一天(因為我每天都在更新),但是快照是空白的,你不能瀏覽快照,在百度中搜索w
查看全部
分享文章:織夢(mèng)解決輪播圖模糊調用文章內容頁(yè)第一張大圖方法
可織夢(mèng)文章縮略圖自動(dòng)提取,偽靜態(tài)和靜態(tài)網(wǎng)站
找到縮略圖:[字段:litpic/] 或 [字段:圖片名稱(chēng)/]。
替換為
[字段:id 函數='get_tupian(@me)'/]

織夢(mèng)/收錄/擴展函數添加以下函數.php
//縮略圖
function?get_tupian($id){
???global?$dsql;
??$row?=?$dsql->GetOne("SELECT?aid,body?FROM?`dede_addonarticle`?where?aid='$id'");
??if(preg_match(?"/()/",$row['body']?,?$regs?)){
<p>

return?$regs[2];?
????}else{
????return??$GLOBALS['cfg_basehost']."/images/defaultpic.gif";
????}
}</p>
織夢(mèng)二次開(kāi)發(fā)QQ群
揭密:百度快照不顯示標題和描述大揭秘

近日,網(wǎng)上很多朋友網(wǎng)站出現了一個(gè)問(wèn)題,就是搜索結果頁(yè)的標題網(wǎng)站不完整,網(wǎng)站快照沒(méi)有描述,網(wǎng)站的快照無(wú)法預覽,但快照每天都在更新,但網(wǎng)站卻沒(méi)有增加(關(guān)于這個(gè)楊長(cháng)生之前寫(xiě)過(guò)一篇文章收錄百度為什么百度拿了你文章 網(wǎng)站的前三朵花)。這是什么原因?之前楊長(cháng)生處理過(guò)網(wǎng)站八閔商業(yè)聯(lián)盟也出現過(guò)這樣的情況:(這個(gè)網(wǎng)站之前的情況是:為了不向搜索引擎提交低質(zhì)量的測試文章,當這個(gè)網(wǎng)站里面是在線(xiàn)的,我屏蔽了所有搜索引擎爬行的機器人,但百度還是收錄,等待模板和結構的修改, 我清空了機器人,等待蜘蛛爬行和收錄,結果,到目前為止所有的快照都是同一天(因為我每天都在更新),但是快照是空白的,你不能瀏覽快照,在百度中搜索w
解決方案:網(wǎng)絡(luò )爬蟲(chóng)實(shí)例系列 —— 搜狗微信文章采集方案
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 190 次瀏覽 ? 2022-10-03 07:20
微信與搜狗合作推出微信搜索后,各媒體檢測平臺終于可以獲取微信文章的數據;但好景不長(cháng),因為大家基本只有這一個(gè)接口獲取微信的數據,這給搜狗帶來(lái)了成倍的壓力,減少了返回的搜索結果和爬蟲(chóng)輸入驗證碼,讓大家很難抓取微信數據;不過(guò),搜狗推出了針對登錄用戶(hù)的關(guān)鍵詞訂閱功能。針對這些情況,整理出以下兩種采集搜狗微信文章的解決方案,僅供參考。
方案一:使用搜狗微信文章搜索界面
調用以下網(wǎng)址訪(fǎng)問(wèn)搜狗微信關(guān)鍵字搜索結果文章,其中參數query為搜索關(guān)鍵字,值為UTF-8編碼字符串。URL返回文章的10條搜索結果,可以直接解析成搜索到的文章名稱(chēng)、文章 URL、公眾號和摘要。通過(guò)修改page參數的值,可以翻頁(yè),獲得更多的搜索結果。
%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&sut=13695&lkt=0%2C0%2C0&type=2&sst0=68&page=1&ie=utf8&w=01019900&dr=1
優(yōu)勢:
實(shí)現簡(jiǎn)單,搜索結果和關(guān)鍵詞匹配度比較高
缺點(diǎn):
最多只能翻10頁(yè),網(wǎng)站反爬蟲(chóng)導致嚴重屏蔽
方案二:使用搜狗微信提供的關(guān)鍵詞訂閱接口
在搜狗微信中,對于已登錄的用戶(hù),可以將搜索到的關(guān)鍵詞添加到訂閱列表中。下次,您可以直接查看與您的訂閱關(guān)鍵字相關(guān)的文章。此功能將每個(gè)登錄用戶(hù)限制為最多 20 個(gè)訂閱關(guān)鍵字。
A、以下網(wǎng)址是獲取登錄用戶(hù)已訂閱的關(guān)鍵字列表,包括關(guān)鍵字和對應的wordId,可用于后續訪(fǎng)問(wèn)訂閱中的文章相關(guān)關(guān)鍵字。登錄用戶(hù)的登錄為注冊賬號,傳入一個(gè)參數uid。
uid=永中15%&_=28
B、以下網(wǎng)址是給指定賬號添加訂閱關(guān)鍵詞的界面。通過(guò)該界面,您可以為賬戶(hù)訂閱添加關(guān)鍵字。
uid=yongzhong15%&word=%E5%9B%BE%E8%AE%BA&_=71
C、以下網(wǎng)址刪除指定賬號的指定關(guān)鍵字,其中關(guān)鍵字是指訂閱關(guān)鍵字列表中對應的wordId來(lái)指定
uid=永中15%&id=49529&_=72
D、下面的URL返回指定用戶(hù)訂閱的關(guān)鍵字之一的文章列表,其中文件列表根據start參數分頁(yè),關(guān)鍵字由wordid指定。
uid=yongzhong15%&start=0&num=10&wordid=49528&clear=1&_=41
根據以上A/B/C/D四個(gè)API接口,可以查詢(xún)注冊賬號下的訂閱關(guān)鍵字列表,添加和刪除賬號下的關(guān)鍵字,獲取文章信息。
優(yōu)勢:
訂閱API由搜狗免費提供,不會(huì )被屏蔽
缺點(diǎn):
每個(gè)賬號最多只能訂閱20個(gè)關(guān)鍵詞,使用不便;并且對于每個(gè)關(guān)鍵字,返回的文章的數量遠遠少于從搜索界面直接搜索到的相關(guān)文章的數量。也就是說(shuō),得到的數據是不完整的。
解決方案:智能微信公眾號數據采集-微信公眾號封面圖采集提取-批量文章導出
微信公眾號數據采集,公眾號封面圖片提取,公眾號文章提取。如何提取微信公眾號數據如:內容、封面圖,如何批量提取微信公眾號數據并保存在本地進(jìn)行修改。今天給大家分享一款免費的微信公眾號數據自動(dòng)提取軟件采集。輸入關(guān)鍵詞或者輸入域名自動(dòng)提取文章到本地,自動(dòng)解析文章核心很重要。
現在說(shuō)到網(wǎng)站的seo優(yōu)化,微信公眾號數據采集會(huì )用到一些seo技術(shù),seo理念,seo策略,分離用戶(hù)體驗,用戶(hù)需求,網(wǎng)站建立,等。讓網(wǎng)站在搜索引擎中排名靠前,讓網(wǎng)站更有用,讓內容更適合用戶(hù)。SER 讀取。這就是主動(dòng)SEO,但是在有效SEO、被動(dòng)SEO背后總有一個(gè)黑暗的中心,也就是說(shuō)你的網(wǎng)站就是SEO,有光有影。
談到公司的網(wǎng)站優(yōu)化如何有效防止負面SEO干擾的話(huà)題,應該討論兩個(gè)概念:正面SEO和負面SEO。微信公眾號數據采集主動(dòng)搜索引擎優(yōu)化就是我們常說(shuō)的搜索引擎優(yōu)化,也就是讓網(wǎng)站在搜索引擎中排名。負搜索引擎優(yōu)化和積極搜索引擎優(yōu)化在運營(yíng)商和應用程序上是對立的。負面 SEO 是指其他人(惡意網(wǎng)站管理員、競爭對手等)在您的 網(wǎng)站 上施加一些負面 SEO 元素(搜索引擎知道阻止這些元素),從而使您的 網(wǎng)站 排名更低,甚至獲得嚴懲。
在整個(gè)SEO網(wǎng)站優(yōu)化過(guò)程中,難免會(huì )有一些針對負面信息的優(yōu)化技巧。負面信息是真實(shí)的。一般來(lái)說(shuō),它會(huì )基于一些故意的反向鏈接和草率的電子郵件破壞你的網(wǎng)站,這將極大地影響你的網(wǎng)站排名、總流量和權重值。冒險。一般來(lái)說(shuō),負面信息SEO是一種法律糾葛,很可能對搜索引擎的知名度和收益造成損害。微信公眾號數據采集但是,在整個(gè)優(yōu)化過(guò)程中,可以防止負面的SEO。如何預防?一般來(lái)說(shuō),SEO網(wǎng)站的負面信息都會(huì )被競爭對手阻止。這是在另一個(gè) 網(wǎng)站 上完成的黑帽 SEO 技術(shù)。通常來(lái)說(shuō),一般來(lái)說(shuō),競爭對手對降低 網(wǎng)站 排名的 SEO 攻擊不滿(mǎn)意。然而,在大多數情況下,很多SEO優(yōu)化網(wǎng)站站長(cháng)想要遵循SEO優(yōu)化規范,卻不得不傷人心,堵人心。
難免會(huì )有人羨慕你的網(wǎng)站排名,用幾百個(gè)渣滓封殺你的網(wǎng)站,用不正確的評論吞下你的網(wǎng)站,或者馬上破譯你的網(wǎng)站@ >。微信公眾號數據采集注意你的網(wǎng)站速度。網(wǎng)站速度是一個(gè)非常有害的排名。如果你的網(wǎng)站越來(lái)越慢,你就得開(kāi)機很久了。你永遠不知道如何使用爬行工具來(lái)找到一切都不起作用的項目。如果你找不到他們,他們仍然不是很好,受害者可能就是你。大量爬網(wǎng)導致的 Web 服務(wù)器負載過(guò)重意味著(zhù)您的 網(wǎng)站 會(huì )變慢并崩潰。如果您認為自己是網(wǎng)絡(luò )爬蟲(chóng)攻擊的受害者,可以聯(lián)系您的服務(wù)器公司或 網(wǎng)站 管理員了解負載的來(lái)源。如果你擅長(cháng)技術(shù),你可以找到自己惹麻煩的人。
關(guān)于網(wǎng)站的優(yōu)化,大家應該都遇到過(guò)這樣的事情。我們努力做了一個(gè)網(wǎng)站,終于做出了網(wǎng)站的排名,但是不知怎的,網(wǎng)站的排名過(guò)了一段時(shí)間就下降了,而且排名很不穩定。在了解搜索引擎自然排名機制的基礎上,對網(wǎng)站進(jìn)行內外調整優(yōu)化,提高網(wǎng)站在搜索引擎中的關(guān)鍵詞自然排名,獲得更多流量,從而達到網(wǎng)站銷(xiāo)售和品牌建設的預期目的。為了從搜索引擎獲得更多的免費流量,應該從網(wǎng)站結構、內容建立計劃、用戶(hù)交互傳播、頁(yè)面等角度進(jìn)行合理規劃,同時(shí)也會(huì )使網(wǎng)站 @網(wǎng)站 搜索引擎中顯示的相關(guān)信息。它對用戶(hù)更具吸引力。下面小編就告訴大家我們如何穩定網(wǎng)站和優(yōu)化排名?
網(wǎng)站排名上升后,我們每天抽時(shí)間查看收錄和網(wǎng)站的排名狀態(tài),以及查看搜索引擎來(lái)不來(lái),查看網(wǎng)站當天更新內容還沒(méi)有收錄。關(guān)注競爭對手的網(wǎng)站,看看對手的網(wǎng)站有什么好主意。網(wǎng)站 的內容會(huì )及時(shí)更新。這是為了吸引蜘蛛去爬網(wǎng)站,從而增加網(wǎng)站的收錄,同時(shí)也提高了快照的更新速度。如果網(wǎng)站長(cháng)時(shí)間不更新,搜索引擎會(huì )認為這是一場(chǎng)致命的戰斗,從而降低你的網(wǎng)站排名,嚴重的甚至會(huì )被降級。
網(wǎng)站 的外部鏈接也很重要。一個(gè)好的外鏈是你網(wǎng)站排名的背景,所以我們需要增加網(wǎng)站外鏈的數量。網(wǎng)站查看和好友鏈通訊,查看我通訊的好友鏈是否被刪除,對方的網(wǎng)站是否可以正常打開(kāi),是否可以降級或暫停,是否及時(shí)出現加工。 查看全部
解決方案:網(wǎng)絡(luò )爬蟲(chóng)實(shí)例系列 —— 搜狗微信文章采集方案
微信與搜狗合作推出微信搜索后,各媒體檢測平臺終于可以獲取微信文章的數據;但好景不長(cháng),因為大家基本只有這一個(gè)接口獲取微信的數據,這給搜狗帶來(lái)了成倍的壓力,減少了返回的搜索結果和爬蟲(chóng)輸入驗證碼,讓大家很難抓取微信數據;不過(guò),搜狗推出了針對登錄用戶(hù)的關(guān)鍵詞訂閱功能。針對這些情況,整理出以下兩種采集搜狗微信文章的解決方案,僅供參考。
方案一:使用搜狗微信文章搜索界面
調用以下網(wǎng)址訪(fǎng)問(wèn)搜狗微信關(guān)鍵字搜索結果文章,其中參數query為搜索關(guān)鍵字,值為UTF-8編碼字符串。URL返回文章的10條搜索結果,可以直接解析成搜索到的文章名稱(chēng)、文章 URL、公眾號和摘要。通過(guò)修改page參數的值,可以翻頁(yè),獲得更多的搜索結果。
%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&sut=13695&lkt=0%2C0%2C0&type=2&sst0=68&page=1&ie=utf8&w=01019900&dr=1
優(yōu)勢:
實(shí)現簡(jiǎn)單,搜索結果和關(guān)鍵詞匹配度比較高
缺點(diǎn):

最多只能翻10頁(yè),網(wǎng)站反爬蟲(chóng)導致嚴重屏蔽
方案二:使用搜狗微信提供的關(guān)鍵詞訂閱接口
在搜狗微信中,對于已登錄的用戶(hù),可以將搜索到的關(guān)鍵詞添加到訂閱列表中。下次,您可以直接查看與您的訂閱關(guān)鍵字相關(guān)的文章。此功能將每個(gè)登錄用戶(hù)限制為最多 20 個(gè)訂閱關(guān)鍵字。
A、以下網(wǎng)址是獲取登錄用戶(hù)已訂閱的關(guān)鍵字列表,包括關(guān)鍵字和對應的wordId,可用于后續訪(fǎng)問(wèn)訂閱中的文章相關(guān)關(guān)鍵字。登錄用戶(hù)的登錄為注冊賬號,傳入一個(gè)參數uid。
uid=永中15%&_=28
B、以下網(wǎng)址是給指定賬號添加訂閱關(guān)鍵詞的界面。通過(guò)該界面,您可以為賬戶(hù)訂閱添加關(guān)鍵字。
uid=yongzhong15%&word=%E5%9B%BE%E8%AE%BA&_=71
C、以下網(wǎng)址刪除指定賬號的指定關(guān)鍵字,其中關(guān)鍵字是指訂閱關(guān)鍵字列表中對應的wordId來(lái)指定

uid=永中15%&id=49529&_=72
D、下面的URL返回指定用戶(hù)訂閱的關(guān)鍵字之一的文章列表,其中文件列表根據start參數分頁(yè),關(guān)鍵字由wordid指定。
uid=yongzhong15%&start=0&num=10&wordid=49528&clear=1&_=41
根據以上A/B/C/D四個(gè)API接口,可以查詢(xún)注冊賬號下的訂閱關(guān)鍵字列表,添加和刪除賬號下的關(guān)鍵字,獲取文章信息。
優(yōu)勢:
訂閱API由搜狗免費提供,不會(huì )被屏蔽
缺點(diǎn):
每個(gè)賬號最多只能訂閱20個(gè)關(guān)鍵詞,使用不便;并且對于每個(gè)關(guān)鍵字,返回的文章的數量遠遠少于從搜索界面直接搜索到的相關(guān)文章的數量。也就是說(shuō),得到的數據是不完整的。
解決方案:智能微信公眾號數據采集-微信公眾號封面圖采集提取-批量文章導出
微信公眾號數據采集,公眾號封面圖片提取,公眾號文章提取。如何提取微信公眾號數據如:內容、封面圖,如何批量提取微信公眾號數據并保存在本地進(jìn)行修改。今天給大家分享一款免費的微信公眾號數據自動(dòng)提取軟件采集。輸入關(guān)鍵詞或者輸入域名自動(dòng)提取文章到本地,自動(dòng)解析文章核心很重要。
現在說(shuō)到網(wǎng)站的seo優(yōu)化,微信公眾號數據采集會(huì )用到一些seo技術(shù),seo理念,seo策略,分離用戶(hù)體驗,用戶(hù)需求,網(wǎng)站建立,等。讓網(wǎng)站在搜索引擎中排名靠前,讓網(wǎng)站更有用,讓內容更適合用戶(hù)。SER 讀取。這就是主動(dòng)SEO,但是在有效SEO、被動(dòng)SEO背后總有一個(gè)黑暗的中心,也就是說(shuō)你的網(wǎng)站就是SEO,有光有影。

談到公司的網(wǎng)站優(yōu)化如何有效防止負面SEO干擾的話(huà)題,應該討論兩個(gè)概念:正面SEO和負面SEO。微信公眾號數據采集主動(dòng)搜索引擎優(yōu)化就是我們常說(shuō)的搜索引擎優(yōu)化,也就是讓網(wǎng)站在搜索引擎中排名。負搜索引擎優(yōu)化和積極搜索引擎優(yōu)化在運營(yíng)商和應用程序上是對立的。負面 SEO 是指其他人(惡意網(wǎng)站管理員、競爭對手等)在您的 網(wǎng)站 上施加一些負面 SEO 元素(搜索引擎知道阻止這些元素),從而使您的 網(wǎng)站 排名更低,甚至獲得嚴懲。
在整個(gè)SEO網(wǎng)站優(yōu)化過(guò)程中,難免會(huì )有一些針對負面信息的優(yōu)化技巧。負面信息是真實(shí)的。一般來(lái)說(shuō),它會(huì )基于一些故意的反向鏈接和草率的電子郵件破壞你的網(wǎng)站,這將極大地影響你的網(wǎng)站排名、總流量和權重值。冒險。一般來(lái)說(shuō),負面信息SEO是一種法律糾葛,很可能對搜索引擎的知名度和收益造成損害。微信公眾號數據采集但是,在整個(gè)優(yōu)化過(guò)程中,可以防止負面的SEO。如何預防?一般來(lái)說(shuō),SEO網(wǎng)站的負面信息都會(huì )被競爭對手阻止。這是在另一個(gè) 網(wǎng)站 上完成的黑帽 SEO 技術(shù)。通常來(lái)說(shuō),一般來(lái)說(shuō),競爭對手對降低 網(wǎng)站 排名的 SEO 攻擊不滿(mǎn)意。然而,在大多數情況下,很多SEO優(yōu)化網(wǎng)站站長(cháng)想要遵循SEO優(yōu)化規范,卻不得不傷人心,堵人心。
難免會(huì )有人羨慕你的網(wǎng)站排名,用幾百個(gè)渣滓封殺你的網(wǎng)站,用不正確的評論吞下你的網(wǎng)站,或者馬上破譯你的網(wǎng)站@ >。微信公眾號數據采集注意你的網(wǎng)站速度。網(wǎng)站速度是一個(gè)非常有害的排名。如果你的網(wǎng)站越來(lái)越慢,你就得開(kāi)機很久了。你永遠不知道如何使用爬行工具來(lái)找到一切都不起作用的項目。如果你找不到他們,他們仍然不是很好,受害者可能就是你。大量爬網(wǎng)導致的 Web 服務(wù)器負載過(guò)重意味著(zhù)您的 網(wǎng)站 會(huì )變慢并崩潰。如果您認為自己是網(wǎng)絡(luò )爬蟲(chóng)攻擊的受害者,可以聯(lián)系您的服務(wù)器公司或 網(wǎng)站 管理員了解負載的來(lái)源。如果你擅長(cháng)技術(shù),你可以找到自己惹麻煩的人。

關(guān)于網(wǎng)站的優(yōu)化,大家應該都遇到過(guò)這樣的事情。我們努力做了一個(gè)網(wǎng)站,終于做出了網(wǎng)站的排名,但是不知怎的,網(wǎng)站的排名過(guò)了一段時(shí)間就下降了,而且排名很不穩定。在了解搜索引擎自然排名機制的基礎上,對網(wǎng)站進(jìn)行內外調整優(yōu)化,提高網(wǎng)站在搜索引擎中的關(guān)鍵詞自然排名,獲得更多流量,從而達到網(wǎng)站銷(xiāo)售和品牌建設的預期目的。為了從搜索引擎獲得更多的免費流量,應該從網(wǎng)站結構、內容建立計劃、用戶(hù)交互傳播、頁(yè)面等角度進(jìn)行合理規劃,同時(shí)也會(huì )使網(wǎng)站 @網(wǎng)站 搜索引擎中顯示的相關(guān)信息。它對用戶(hù)更具吸引力。下面小編就告訴大家我們如何穩定網(wǎng)站和優(yōu)化排名?
網(wǎng)站排名上升后,我們每天抽時(shí)間查看收錄和網(wǎng)站的排名狀態(tài),以及查看搜索引擎來(lái)不來(lái),查看網(wǎng)站當天更新內容還沒(méi)有收錄。關(guān)注競爭對手的網(wǎng)站,看看對手的網(wǎng)站有什么好主意。網(wǎng)站 的內容會(huì )及時(shí)更新。這是為了吸引蜘蛛去爬網(wǎng)站,從而增加網(wǎng)站的收錄,同時(shí)也提高了快照的更新速度。如果網(wǎng)站長(cháng)時(shí)間不更新,搜索引擎會(huì )認為這是一場(chǎng)致命的戰斗,從而降低你的網(wǎng)站排名,嚴重的甚至會(huì )被降級。
網(wǎng)站 的外部鏈接也很重要。一個(gè)好的外鏈是你網(wǎng)站排名的背景,所以我們需要增加網(wǎng)站外鏈的數量。網(wǎng)站查看和好友鏈通訊,查看我通訊的好友鏈是否被刪除,對方的網(wǎng)站是否可以正常打開(kāi),是否可以降級或暫停,是否及時(shí)出現加工。
解決方法:一文詳解JVM垃圾收集機制,動(dòng)圖幫你輕松理解大廠(chǎng)面試難點(diǎn)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 88 次瀏覽 ? 2022-10-03 07:18
前言
前面的文章介紹了 JVM 的體系結構和運行時(shí)數據區域(內存區域),本文章將介紹 JVM 的重點(diǎn) - 垃圾回收。眾所周知,相比C/C++等語(yǔ)言,Java可以省去手動(dòng)管理內存的繁瑣操作,極大地解放了Java程序員的工作效率,這是由于JVM的垃圾回收機制和內存分配策略。我們在編寫(xiě)程序時(shí)通常不會(huì )感覺(jué)到這一點(diǎn),但如果是在生產(chǎn)環(huán)境中,JVM的不同配置對服務(wù)器性能的影響非常大,因此掌握JVM調優(yōu)是高級Java工程師的必備技能。正如所謂的“基礎不扎實(shí),地在搖”,在此之前,我們先來(lái)了解一下底層的JVM垃圾回收機制。
由于您要介紹垃圾回收機制,因此需要澄清以下問(wèn)題:
哪些內存區域需要垃圾回收?
如何判斷物品是否可回收?
如何為新對象分配內存?
垃圾回收是如何完成的?
本文將通過(guò)以下結構進(jìn)行擴展,以逐一回答上述問(wèn)題。
需要垃圾回收的內存區域;
確定對象是否可恢復的方法;
主流垃圾回收算法介紹;
JVM 的內存分配和垃圾回收機制。
讓我們從正文開(kāi)始,或者用圖片和文字開(kāi)始舊食譜,然后走上去。
需要垃圾回收的一、內存區域
讓我們從回顧 JVM 的運行時(shí)數據區域開(kāi)始:
JVM 運行時(shí)數據范圍
其中,程序計數器、Java虛擬機棧和局部方法棧都是線(xiàn)程私有的,對應的線(xiàn)程是共生的,與線(xiàn)程同生,與線(xiàn)程同死,堆棧中的堆棧幀也隨著(zhù)方法的進(jìn)入和退出有序堆疊和輸出。因此,這些區域的內存分配和回收是非常確定的,并且在方法的末尾或線(xiàn)程的末尾,內存也會(huì )被釋放,因此無(wú)需考慮這些區域的內存回收問(wèn)題。
堆和方法區域為
不一樣,Java對象幾乎都是在堆上創(chuàng )建的,方法區存儲著(zhù)虛擬機加載的類(lèi)型信息、常量、靜態(tài)變量、編譯器編譯的代碼緩存等數據,而運行時(shí)常量池中的方法區存儲著(zhù)各種文字和符號引用,以上大部分數據都可以在運行時(shí)確定, 因此,需要動(dòng)態(tài)內存管理。
還應該注意的是,JVM中垃圾回收器的主要關(guān)注對象是Java堆,因為這里的垃圾回收的“性?xún)r(jià)比”最高,特別是在新一代(稍后在代際算法上描述)中,它可以一次回收70%-99%的內存。該方法區由于垃圾回收決策條件,特別是類(lèi)型卸載決策條件相當苛刻,其采集成本性能很低,所以一些垃圾采集器根本不支持或不完全支持垃圾采集的方法區域,如ZGC采集器在JDK 11中不支持類(lèi)型卸載。
二、確定對象是否可回收的方法2.1 引用計數
引用計數方法的實(shí)現很簡(jiǎn)單,向對象添加一個(gè)引用計數器,每次有對它的引用時(shí),計數器值就會(huì )遞增一個(gè);當引用失敗時(shí),計數器值減去1;任何具有零時(shí)間計數器的對象都不再可以使用。在大多數情況下,此方法有效,但在存在循環(huán)引用的情況下,引用計數是無(wú)能為力的。例如,在以下情況下:
public class Student {<br /> // friend 字段<br /> public Student friend = null;<br /> <br /> public static void test() {<br /> Student a = new Student();<br /> Student b = new Student();<br /> a.friend = b;<br /> b.friend = a;<br /> a = null;<br /> b = null;<br /> System.gc();<br /> }<br />}
上面的代碼創(chuàng )建了兩個(gè)a和b的Dentor實(shí)例,并將它們各自的友元字段分配給彼此,除此之外,這兩個(gè)對象沒(méi)有引用,然后將它們都分配給null,在這種情況下,這兩個(gè)對象不能再被訪(fǎng)問(wèn),但是因為它們相互引用,所以它們的引用計數不為零, 并且引用計數算法無(wú)法回收它們。如下圖所示:
循環(huán)引用
但是在Java程序中,a和b可以回收,因為JVM不使用引用計數來(lái)確定對象是否可回收,而是使用可訪(fǎng)問(wèn)性分析。
2.2 可達性分析
該算法的基本思想是使用一系列稱(chēng)為“GC Roots”的根對象作為起始節點(diǎn)集(GC Root Set),從這些節點(diǎn)開(kāi)始,根據參考關(guān)系向下搜索,搜索過(guò)程行進(jìn)的路徑稱(chēng)為“參考鏈”,如果對象和GC Roots之間沒(méi)有參考鏈, 這意味著(zhù)該物體不再使用,可以回收利用。要執行可訪(fǎng)問(wèn)性分析,您需要首先枚舉根節點(diǎn)(GC Roots),并且在枚舉根節點(diǎn)的過(guò)程中,為了防止對象的引用關(guān)系發(fā)生變化,需要暫停所有用戶(hù)線(xiàn)程(垃圾回收以外的線(xiàn)程),并調用暫停所有用戶(hù)線(xiàn)程的這種行為(停止世界)??蛇_性分析方法如下圖所示:
可達性分析
圖中的綠色是 GC 根集中的 GC 根,與它們關(guān)聯(lián)的所有對象都是可訪(fǎng)問(wèn)的并標記為藍色,而所有與它們沒(méi)有關(guān)聯(lián)的對象都是不可訪(fǎng)問(wèn)的,并標記為灰色。即使無(wú)法訪(fǎng)問(wèn)的對象也不一定被回收,如果對象同時(shí)滿(mǎn)足以下條件,則仍有可能“逃脫”:
對象具有重寫(xiě)的終止() 方法(Object 類(lèi)中的方法);
最終化()方法將自身鏈接到參考鏈;
合資管理公司
以前沒(méi)有調用對象的 finalizize() 方法(因為 JVM 在采集可回收對象時(shí)只調用對象的 finalizize() 方法一次)。
但是,由于 finalizize() 方法的運行成本高昂、不確定且不保證調用各個(gè)對象的順序,因此不建議使用此方法。那么,GC根在哪里是神圣的呢?在 Java 語(yǔ)言中,可用作 GC 根的固定對象包括:
虛擬機堆棧中引用的對象(堆棧幀中的局部變量表),例如每個(gè)被調用的線(xiàn)程在方法堆棧中使用的參數、局部變量、臨時(shí)變量等。
方法區域中類(lèi)的靜態(tài)屬性所引用的對象,例如 Java 類(lèi)的引用類(lèi)型的靜態(tài)變量。
由方法區域中的常量引用的對象,如字符串表中的引用。
本地方法堆棧中 JNI(通常稱(chēng)為本機方法)引用的對象。
Java 虛擬機內部的引用,例如與基元數據類(lèi)型對應的類(lèi)對象、一些常見(jiàn)的異常對象(例如
空點(diǎn)訪(fǎng)問(wèn)、內存輸出錯誤等,以及系統類(lèi)加載程序。
同步關(guān)鍵字保存的所有對象。
JM XBean、在 JVM TI 中注冊的回調、反映 Java 虛擬機內部條件的本地代碼高速緩存等。
三、垃圾回收算法引入了3.1 標記清除算法
標簽清除算法的思想很簡(jiǎn)單,顧名思義,該算法的過(guò)程分為兩個(gè)階段:首先標記出所有需要回收的對象,其中標記過(guò)程是使用可訪(fǎng)問(wèn)性分析來(lái)確定對象是否為垃圾的過(guò)程。標記完成后,所有標記的對象被統一回收,幸存的對象也可以反向標記,所有未標記的對象都被統一回收。原理圖如下:
標簽清除算法
雖然這種算法很簡(jiǎn)單,但它有兩個(gè)明顯的缺點(diǎn):
執行效率不穩定。如果Java堆收錄大量對象,并且大部分需要回收,則必須執行大量的標記和清除操作,導致標記和清除過(guò)程的執行效率隨著(zhù)對象數量的增加而降低;
導致內存空間碎片。標記和清理后,會(huì )出現大量不連續的內存碎片,過(guò)多的空間碎片可能導致將來(lái)在程序運行期間需要分配大對象時(shí)找不到足夠的連續內存,不得不提前觸發(fā)另一次垃圾回收操作,極大地影響了程序運行效率。
3.2 標簽復制算法
標簽復制算法,
通常被稱(chēng)為復制算法,解決了在面對大量可回收對象時(shí)標簽清除算法執行效率低下的問(wèn)題。實(shí)現也很容易理解:在可用內存中劃分兩個(gè)相同大小的區域,一次只使用其中一個(gè),另一個(gè)塊保持空閑狀態(tài),當第一個(gè)塊用完時(shí),所有幸存的對象都被復制到第二個(gè)區域,然后第一個(gè)塊全部清空。如下圖所示:
標記復制算法
此算法是
非常適合低對象生存,因為它只關(guān)注幸存的對象,而不關(guān)心可回收的對象,因此該算法用于JVM中的新一代垃圾回收。但是,它的缺點(diǎn)也很明顯,每次都浪費一半的內存太奢侈了,但是JVM中的新一代內存劃分更加精細,這更好地解決了這個(gè)問(wèn)題,見(jiàn)下文。
3.3 標簽組織算法
該算法完美地解決了標記清理算法的空間碎片化問(wèn)題,其標記過(guò)程與“標記干凈”算法相同,但下一步不是直接清理可回收對象,而是讓所有幸存的對象移動(dòng)到內存空間端,然后直接清理邊界外的內存。
標記排序規則算法
雖然這種算法可以很好地解決空間碎片的問(wèn)題,但每次垃圾回收都需要移動(dòng)幸存的對象,更新引用這些對象的地方,并且對象移動(dòng)的操作也需要在整個(gè)過(guò)程中暫停用戶(hù)線(xiàn)程(Stop The World)。
3.4 代際采集算法
與其說(shuō)它是一種算法,不如說(shuō)是一種理論。今天的大多數虛擬機實(shí)現都是根據“代際采集”理論設計的,這可以被視為經(jīng)驗性的,因為開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中發(fā)現,JVM中幸存對象的數量與其年齡之間存在一定的規律,如下所示
?。?br />
JVM 中幸存對象的數量與年齡之間的關(guān)系
在此基礎上,提出了以下假設:
絕大多數物體都是生死的。
一個(gè)物體在垃圾回收過(guò)程中存活的次數越多,它就越難死亡。
根據這兩個(gè)假設,JVM的堆內存大致可以分為新一代和舊時(shí)代,大多數新一代對象都有很短的生存時(shí)間,每次恢復只關(guān)心如何保留少量的生存,而不是標記大量將被回收的物體, 你可以以較低的成本回收到大量的空間,所以這個(gè)區域一般使用標記復制算法進(jìn)行垃圾回收,頻率比較高。過(guò)去是一些難以死亡的對象,垃圾采集可以使用標記清理和標記分類(lèi)算法進(jìn)行,并且頻率可以更低。
根據熱點(diǎn)虛擬機的實(shí)現情況,新一代和老一代的垃圾回收分為不同的類(lèi)型,并且有不同的術(shù)語(yǔ),如下所示:
部分 GC:指目標不是 完全采集的垃圾回收
整個(gè)Java堆,它分為:次要GC/年輕GC:指目標只是新一代的垃圾回收。主要GC/Old GC:指僅針對老年人的垃圾采集,目前只有cms采集器的并發(fā)采集階段是單獨采集老年人的行為?;旌螱C:目標是從整個(gè)新一代以及一些舊一代中采集垃圾回收,目前只有G1采集器才能實(shí)踐。
完整 GC:從整個(gè) Java 堆和方法區域采集垃圾回收。
人們經(jīng)?;煜齅ajor GC和全GC,但這也是可以理解的,因為這兩種GC行為都包括老年垃圾回收,而單獨的Major GC采集相對較少,在大多數情況下,只要收錄老年采集,就會(huì )是一個(gè)完整的GC,但最好區分一下。
四、 JVM 的內存分配和垃圾回收機制
在之前的準備之后,現在終于可以瞥見(jiàn)JVM的內存分配和垃圾回收機制。
4. 1 JVM 堆內存的劃分
JVM 堆內存分區,不再從 Java 8 開(kāi)始永久生成
Java 堆是由 JVM 管理的最大內存塊,也是垃圾回收器的管理區域。大多數垃圾采集器將堆內存劃分為上圖所示的幾個(gè)區域,整體分為新生代和舊,比例為1:2,新生代進(jìn)一步分為伊甸園,從幸存者和到幸存者,默認比例為8:1:1,請注意,您可以通過(guò)SvivorRatio參數進(jìn)行設置。請注意,從 JDK 8 開(kāi)始,JVM 中不再有永久世代的概念。無(wú)論 Java 堆上的區域如何,都只存儲對象的實(shí)例,而細分 Java 堆的目的只是為了更好地回收內存,或者更快地分配內存。
4.2 代際采集原理4.2.1 新生代物品的分配和采集
在大多數情況下,對象優(yōu)先分配在新生代伊甸園區域中,當 Eden 區域沒(méi)有足夠的空間進(jìn)行分配時(shí),虛擬機會(huì )啟動(dòng)次要 GC。伊甸園、從幸存者和幸存者的比例是8:1:1,這是因為絕大多數物體都在死亡,伊甸園在垃圾采集過(guò)程中幸存下來(lái)的物體數量不太大,幸存者空間也足夠小,每個(gè)新生代的可用記憶空間是整個(gè)新生代容量的90%(伊甸園的80%加上To的10%)。幸存者),只有來(lái)自幸存者的空間,或新一代的10%,被“浪費”。它不會(huì )像原創(chuàng )標記復制算法那樣浪費一半的內存空間?!靶掖嬲摺焙汀爸滦掖嬲摺敝械目崭癫皇枪潭ǖ?,而是在 S0 和 S1 之間動(dòng)態(tài)轉換的,第一個(gè)小 GC 選擇 S1 作為“到幸存者”,并將 Eden 中幸存的對象復制到其中,將對象的年齡增加 1,請注意,新一代使用的垃圾回收算法是標記復制算法的改進(jìn)版本。下面是一個(gè)示意圖,注意顏色變化的第一步是為了突出,虛擬機只做標記活體的操作。
第一個(gè)小氣相色譜的示意圖
在隨后的小指導性案例中,S0和S1交替轉換為“從幸存者”和“幸存者”,而《伊甸園》和“幸存者”中的幸存對象被復制到“幸存者”中,年齡增加1。如下圖所示:
后續次要 GC 原理圖
4.2.2 升入老年的物品
在這些情況下,受試者將被提升到老年。
長(cháng)期幸存者將進(jìn)入老年
每當一個(gè)物體在幸存者區域中的小GC中存活時(shí),它的年齡就會(huì )增加1年,當它的年齡增加到一定水平(默認為15)時(shí),它就會(huì )被提升到中年。對象前進(jìn)到老年的年齡閾值可以通過(guò)參數-XX:MaxTenuringThreshold設置,此參數的最大值為15,因為對象年齡信息存儲在對象頭中,占4位內存,最大可以表示的數量是15。
促進(jìn)長(cháng)期幸存者進(jìn)入老年的示意圖
2.大型物品可以直接進(jìn)入老年
對于大型對象,尤其是長(cháng)字符串,或具有大量元素的數組,如果在 Eden 中分配,很容易過(guò)早地填滿(mǎn) Eden 空間,從而導致次要 GC,并且還存在較大的內存復制開(kāi)銷(xiāo),用于在 Eden 和兩個(gè)幸存者之間來(lái)回復制。因此,我們可以通過(guò)設置虛擬機參數 -XX:預縮文件大小閾值來(lái)讓大型對象直接進(jìn)入舊時(shí)代。
3.動(dòng)態(tài)對象的時(shí)代
為了更好地適應不同程序的內存條件,熱點(diǎn)虛擬機并不總是要求物體的年齡必須達到-XX:MaxTenuringThreshold才能提升到老年,如果幸存者空間中所有相同年齡的對象大小之和大于幸存者空間的一半, 大于或等于年齡的對象可以直接進(jìn)入老年,而不必等到 -XX:最大收縮閾值中所需的年齡。
4.處理促銷(xiāo)
當幸存者空間不足以容納在次要GC之后存活的物體時(shí),它依靠其他內存區域(實(shí)際上,在大多數情況下,是老年)進(jìn)行分配保證。在次要GC發(fā)生之前,虛擬機必須首先檢查舊時(shí)代的最大可用連續空間是否大于新一代中所有對象的總空間,如果此條件為真,那么這次次要GC可以保證是安全的。如果沒(méi)有,虛擬機首先檢查-XX:處理升級失敗參數的設置值是否允許處理提升失敗;如果允許,它將繼續檢查老年人的最大可用連續空間是否大于過(guò)去晉升為老年的對象的平均大小,如果大于,將嘗試次要GC,盡管這次次要GC是有風(fēng)險的;如果小于或 -XX:處理升級失敗設置不允許冒險,則應改為執行完整 GC。
小技巧:掌握吸引蜘蛛的四大技巧,輕松增加SEO優(yōu)化的收錄量
SEO優(yōu)化作為一種實(shí)用的推廣手段,是近年來(lái)企業(yè)宣傳的必備條件。但是,即使你做SEO一樣,你也可能不一樣,有些人有更多的網(wǎng)站收錄,幾十萬(wàn),有些人收錄很少,甚至一頁(yè),后者顯然比前者遭受的損失更大。那么,如何提高網(wǎng)頁(yè)收錄呢?如何讓蜘蛛抓取更多網(wǎng)站頁(yè)面?以下是與您分享的四個(gè)技巧。
技能一、合理穩定地提高網(wǎng)站基本體重
高重量的蜘蛛經(jīng)常抓取,而低重量的蜘蛛以較低的速度爬行。如果想讓蜘蛛抓得更多,就得考慮增加網(wǎng)站的重量,新站的重量很容易達到1,只要網(wǎng)站質(zhì)量通過(guò),技術(shù)是有規律的,達到重量1的速度非???,至于從1到2, 它要慢得多。不過(guò),對于SEO網(wǎng)站管理員來(lái)說(shuō),這也足夠了。
提示二、網(wǎng)站內容更新頻率合理
蜘蛛總是喜歡更新頻率高的網(wǎng)站,因為它們每天都會(huì )來(lái)抓,如果你的更新頻率降低,蜘蛛會(huì )隨著(zhù)時(shí)間的推移而變得懶惰。當然,如果能每天更新定點(diǎn)就更好了,通過(guò)日志分析,你會(huì )發(fā)現蜘蛛會(huì )多次來(lái)到這個(gè)點(diǎn)。當然,如果您不知道蜘蛛何時(shí)會(huì )爬行,擔心您的更新無(wú)效,建議您通過(guò)日志分析獲取蜘蛛的抓取規則,這樣可以更方便蜘蛛抓取收錄頁(yè)面。當然,蜘蛛每次抓取頁(yè)面都會(huì )在數據庫中存在,下次抓取時(shí)會(huì )比較之前的數據,如果沒(méi)有更新,蜘蛛會(huì )降低抓取的頻率,甚至不抓取。隨著(zhù)時(shí)間的流逝,蜘蛛將不再光顧你的網(wǎng)站。如果你之前網(wǎng)站更新得很低,現在想提高收錄,讓蜘蛛抓得更多,建議在固定更新頻率的基礎上,給一些文章發(fā)送一些網(wǎng)站鏈接,這樣蜘蛛就可以被引到你的網(wǎng)站,增加爬行的機會(huì )。
提示三、朋友鏈和外部鏈接選擇最好的
很多SEO優(yōu)化者覺(jué)得做優(yōu)化就是做外部鏈接,所以不管站內,一味追求站外。這種發(fā)送大量反向鏈接的做法在開(kāi)始時(shí)確實(shí)產(chǎn)生了一定的效果,但是隨著(zhù)算法的變化,現在已經(jīng)沒(méi)有效果了。當然1,反向鏈接有利于網(wǎng)站排名和收錄,適當地添加反向鏈接對網(wǎng)站有好處。但是,做SEO并不像發(fā)送外部鏈接那么簡(jiǎn)單,有能力的SEO優(yōu)化器,即使不發(fā)送外部鏈接,也可以有很好的排名,這就是為什么一些網(wǎng)站優(yōu)化器覺(jué)得外部鏈接沒(méi)用的原因。如果你想讓蜘蛛知道你網(wǎng)站鏈接,你需要去一些蜘蛛經(jīng)常爬行的地方放網(wǎng)站鏈接,比如百度有專(zhuān)門(mén)的網(wǎng)站鏈接提交平臺,它提交網(wǎng)站鏈接,幫助蜘蛛抓取收錄。你也可以在貼吧和其他地方發(fā)布鏈接,至于你是否可以保留它取決于個(gè)人技能。至于好友鏈,它是一種外部鏈接,但實(shí)際效果比外部鏈接高,因為好友鏈往往是一些排名相似的相關(guān)鏈接,帶來(lái)更多的權重和好處。
技巧四、科學(xué)地控制對頁(yè)面的訪(fǎng)問(wèn)深度
一方面,深度越深,
對于用戶(hù)來(lái)說(shuō),搜索和點(diǎn)擊越困難,另一方面,蜘蛛爬行并不容易,更不用說(shuō)收錄了,所以通常,每個(gè)人都會(huì )控制目錄的第二和第三層的頁(yè)面深度,而不是沒(méi)有。當然,也有一些深度比較大的網(wǎng)站收錄,往往是行業(yè)網(wǎng)絡(luò )或者門(mén)戶(hù)網(wǎng)絡(luò ),單個(gè)企業(yè)站點(diǎn)能做的很少。
看完這四點(diǎn),不知道你有沒(méi)有掌握網(wǎng)站 收錄爬行的技巧?這里也提醒大家,蜘蛛喜歡高質(zhì)量的原創(chuàng )文章,盡量更新高質(zhì)量的原創(chuàng )文章,增加收錄好。 查看全部
解決方法:一文詳解JVM垃圾收集機制,動(dòng)圖幫你輕松理解大廠(chǎng)面試難點(diǎn)
前言
前面的文章介紹了 JVM 的體系結構和運行時(shí)數據區域(內存區域),本文章將介紹 JVM 的重點(diǎn) - 垃圾回收。眾所周知,相比C/C++等語(yǔ)言,Java可以省去手動(dòng)管理內存的繁瑣操作,極大地解放了Java程序員的工作效率,這是由于JVM的垃圾回收機制和內存分配策略。我們在編寫(xiě)程序時(shí)通常不會(huì )感覺(jué)到這一點(diǎn),但如果是在生產(chǎn)環(huán)境中,JVM的不同配置對服務(wù)器性能的影響非常大,因此掌握JVM調優(yōu)是高級Java工程師的必備技能。正如所謂的“基礎不扎實(shí),地在搖”,在此之前,我們先來(lái)了解一下底層的JVM垃圾回收機制。
由于您要介紹垃圾回收機制,因此需要澄清以下問(wèn)題:
哪些內存區域需要垃圾回收?
如何判斷物品是否可回收?
如何為新對象分配內存?
垃圾回收是如何完成的?
本文將通過(guò)以下結構進(jìn)行擴展,以逐一回答上述問(wèn)題。
需要垃圾回收的內存區域;
確定對象是否可恢復的方法;
主流垃圾回收算法介紹;
JVM 的內存分配和垃圾回收機制。
讓我們從正文開(kāi)始,或者用圖片和文字開(kāi)始舊食譜,然后走上去。
需要垃圾回收的一、內存區域
讓我們從回顧 JVM 的運行時(shí)數據區域開(kāi)始:
JVM 運行時(shí)數據范圍
其中,程序計數器、Java虛擬機棧和局部方法棧都是線(xiàn)程私有的,對應的線(xiàn)程是共生的,與線(xiàn)程同生,與線(xiàn)程同死,堆棧中的堆棧幀也隨著(zhù)方法的進(jìn)入和退出有序堆疊和輸出。因此,這些區域的內存分配和回收是非常確定的,并且在方法的末尾或線(xiàn)程的末尾,內存也會(huì )被釋放,因此無(wú)需考慮這些區域的內存回收問(wèn)題。
堆和方法區域為
不一樣,Java對象幾乎都是在堆上創(chuàng )建的,方法區存儲著(zhù)虛擬機加載的類(lèi)型信息、常量、靜態(tài)變量、編譯器編譯的代碼緩存等數據,而運行時(shí)常量池中的方法區存儲著(zhù)各種文字和符號引用,以上大部分數據都可以在運行時(shí)確定, 因此,需要動(dòng)態(tài)內存管理。
還應該注意的是,JVM中垃圾回收器的主要關(guān)注對象是Java堆,因為這里的垃圾回收的“性?xún)r(jià)比”最高,特別是在新一代(稍后在代際算法上描述)中,它可以一次回收70%-99%的內存。該方法區由于垃圾回收決策條件,特別是類(lèi)型卸載決策條件相當苛刻,其采集成本性能很低,所以一些垃圾采集器根本不支持或不完全支持垃圾采集的方法區域,如ZGC采集器在JDK 11中不支持類(lèi)型卸載。
二、確定對象是否可回收的方法2.1 引用計數
引用計數方法的實(shí)現很簡(jiǎn)單,向對象添加一個(gè)引用計數器,每次有對它的引用時(shí),計數器值就會(huì )遞增一個(gè);當引用失敗時(shí),計數器值減去1;任何具有零時(shí)間計數器的對象都不再可以使用。在大多數情況下,此方法有效,但在存在循環(huán)引用的情況下,引用計數是無(wú)能為力的。例如,在以下情況下:
public class Student {<br /> // friend 字段<br /> public Student friend = null;<br /> <br /> public static void test() {<br /> Student a = new Student();<br /> Student b = new Student();<br /> a.friend = b;<br /> b.friend = a;<br /> a = null;<br /> b = null;<br /> System.gc();<br /> }<br />}
上面的代碼創(chuàng )建了兩個(gè)a和b的Dentor實(shí)例,并將它們各自的友元字段分配給彼此,除此之外,這兩個(gè)對象沒(méi)有引用,然后將它們都分配給null,在這種情況下,這兩個(gè)對象不能再被訪(fǎng)問(wèn),但是因為它們相互引用,所以它們的引用計數不為零, 并且引用計數算法無(wú)法回收它們。如下圖所示:
循環(huán)引用
但是在Java程序中,a和b可以回收,因為JVM不使用引用計數來(lái)確定對象是否可回收,而是使用可訪(fǎng)問(wèn)性分析。
2.2 可達性分析
該算法的基本思想是使用一系列稱(chēng)為“GC Roots”的根對象作為起始節點(diǎn)集(GC Root Set),從這些節點(diǎn)開(kāi)始,根據參考關(guān)系向下搜索,搜索過(guò)程行進(jìn)的路徑稱(chēng)為“參考鏈”,如果對象和GC Roots之間沒(méi)有參考鏈, 這意味著(zhù)該物體不再使用,可以回收利用。要執行可訪(fǎng)問(wèn)性分析,您需要首先枚舉根節點(diǎn)(GC Roots),并且在枚舉根節點(diǎn)的過(guò)程中,為了防止對象的引用關(guān)系發(fā)生變化,需要暫停所有用戶(hù)線(xiàn)程(垃圾回收以外的線(xiàn)程),并調用暫停所有用戶(hù)線(xiàn)程的這種行為(停止世界)??蛇_性分析方法如下圖所示:
可達性分析
圖中的綠色是 GC 根集中的 GC 根,與它們關(guān)聯(lián)的所有對象都是可訪(fǎng)問(wèn)的并標記為藍色,而所有與它們沒(méi)有關(guān)聯(lián)的對象都是不可訪(fǎng)問(wèn)的,并標記為灰色。即使無(wú)法訪(fǎng)問(wèn)的對象也不一定被回收,如果對象同時(shí)滿(mǎn)足以下條件,則仍有可能“逃脫”:
對象具有重寫(xiě)的終止() 方法(Object 類(lèi)中的方法);

最終化()方法將自身鏈接到參考鏈;
合資管理公司
以前沒(méi)有調用對象的 finalizize() 方法(因為 JVM 在采集可回收對象時(shí)只調用對象的 finalizize() 方法一次)。
但是,由于 finalizize() 方法的運行成本高昂、不確定且不保證調用各個(gè)對象的順序,因此不建議使用此方法。那么,GC根在哪里是神圣的呢?在 Java 語(yǔ)言中,可用作 GC 根的固定對象包括:
虛擬機堆棧中引用的對象(堆棧幀中的局部變量表),例如每個(gè)被調用的線(xiàn)程在方法堆棧中使用的參數、局部變量、臨時(shí)變量等。
方法區域中類(lèi)的靜態(tài)屬性所引用的對象,例如 Java 類(lèi)的引用類(lèi)型的靜態(tài)變量。
由方法區域中的常量引用的對象,如字符串表中的引用。
本地方法堆棧中 JNI(通常稱(chēng)為本機方法)引用的對象。
Java 虛擬機內部的引用,例如與基元數據類(lèi)型對應的類(lèi)對象、一些常見(jiàn)的異常對象(例如
空點(diǎn)訪(fǎng)問(wèn)、內存輸出錯誤等,以及系統類(lèi)加載程序。
同步關(guān)鍵字保存的所有對象。
JM XBean、在 JVM TI 中注冊的回調、反映 Java 虛擬機內部條件的本地代碼高速緩存等。
三、垃圾回收算法引入了3.1 標記清除算法
標簽清除算法的思想很簡(jiǎn)單,顧名思義,該算法的過(guò)程分為兩個(gè)階段:首先標記出所有需要回收的對象,其中標記過(guò)程是使用可訪(fǎng)問(wèn)性分析來(lái)確定對象是否為垃圾的過(guò)程。標記完成后,所有標記的對象被統一回收,幸存的對象也可以反向標記,所有未標記的對象都被統一回收。原理圖如下:
標簽清除算法
雖然這種算法很簡(jiǎn)單,但它有兩個(gè)明顯的缺點(diǎn):
執行效率不穩定。如果Java堆收錄大量對象,并且大部分需要回收,則必須執行大量的標記和清除操作,導致標記和清除過(guò)程的執行效率隨著(zhù)對象數量的增加而降低;
導致內存空間碎片。標記和清理后,會(huì )出現大量不連續的內存碎片,過(guò)多的空間碎片可能導致將來(lái)在程序運行期間需要分配大對象時(shí)找不到足夠的連續內存,不得不提前觸發(fā)另一次垃圾回收操作,極大地影響了程序運行效率。
3.2 標簽復制算法
標簽復制算法,
通常被稱(chēng)為復制算法,解決了在面對大量可回收對象時(shí)標簽清除算法執行效率低下的問(wèn)題。實(shí)現也很容易理解:在可用內存中劃分兩個(gè)相同大小的區域,一次只使用其中一個(gè),另一個(gè)塊保持空閑狀態(tài),當第一個(gè)塊用完時(shí),所有幸存的對象都被復制到第二個(gè)區域,然后第一個(gè)塊全部清空。如下圖所示:
標記復制算法
此算法是
非常適合低對象生存,因為它只關(guān)注幸存的對象,而不關(guān)心可回收的對象,因此該算法用于JVM中的新一代垃圾回收。但是,它的缺點(diǎn)也很明顯,每次都浪費一半的內存太奢侈了,但是JVM中的新一代內存劃分更加精細,這更好地解決了這個(gè)問(wèn)題,見(jiàn)下文。
3.3 標簽組織算法
該算法完美地解決了標記清理算法的空間碎片化問(wèn)題,其標記過(guò)程與“標記干凈”算法相同,但下一步不是直接清理可回收對象,而是讓所有幸存的對象移動(dòng)到內存空間端,然后直接清理邊界外的內存。
標記排序規則算法
雖然這種算法可以很好地解決空間碎片的問(wèn)題,但每次垃圾回收都需要移動(dòng)幸存的對象,更新引用這些對象的地方,并且對象移動(dòng)的操作也需要在整個(gè)過(guò)程中暫停用戶(hù)線(xiàn)程(Stop The World)。
3.4 代際采集算法
與其說(shuō)它是一種算法,不如說(shuō)是一種理論。今天的大多數虛擬機實(shí)現都是根據“代際采集”理論設計的,這可以被視為經(jīng)驗性的,因為開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中發(fā)現,JVM中幸存對象的數量與其年齡之間存在一定的規律,如下所示
?。?br />

JVM 中幸存對象的數量與年齡之間的關(guān)系
在此基礎上,提出了以下假設:
絕大多數物體都是生死的。
一個(gè)物體在垃圾回收過(guò)程中存活的次數越多,它就越難死亡。
根據這兩個(gè)假設,JVM的堆內存大致可以分為新一代和舊時(shí)代,大多數新一代對象都有很短的生存時(shí)間,每次恢復只關(guān)心如何保留少量的生存,而不是標記大量將被回收的物體, 你可以以較低的成本回收到大量的空間,所以這個(gè)區域一般使用標記復制算法進(jìn)行垃圾回收,頻率比較高。過(guò)去是一些難以死亡的對象,垃圾采集可以使用標記清理和標記分類(lèi)算法進(jìn)行,并且頻率可以更低。
根據熱點(diǎn)虛擬機的實(shí)現情況,新一代和老一代的垃圾回收分為不同的類(lèi)型,并且有不同的術(shù)語(yǔ),如下所示:
部分 GC:指目標不是 完全采集的垃圾回收
整個(gè)Java堆,它分為:次要GC/年輕GC:指目標只是新一代的垃圾回收。主要GC/Old GC:指僅針對老年人的垃圾采集,目前只有cms采集器的并發(fā)采集階段是單獨采集老年人的行為?;旌螱C:目標是從整個(gè)新一代以及一些舊一代中采集垃圾回收,目前只有G1采集器才能實(shí)踐。
完整 GC:從整個(gè) Java 堆和方法區域采集垃圾回收。
人們經(jīng)?;煜齅ajor GC和全GC,但這也是可以理解的,因為這兩種GC行為都包括老年垃圾回收,而單獨的Major GC采集相對較少,在大多數情況下,只要收錄老年采集,就會(huì )是一個(gè)完整的GC,但最好區分一下。
四、 JVM 的內存分配和垃圾回收機制
在之前的準備之后,現在終于可以瞥見(jiàn)JVM的內存分配和垃圾回收機制。
4. 1 JVM 堆內存的劃分
JVM 堆內存分區,不再從 Java 8 開(kāi)始永久生成
Java 堆是由 JVM 管理的最大內存塊,也是垃圾回收器的管理區域。大多數垃圾采集器將堆內存劃分為上圖所示的幾個(gè)區域,整體分為新生代和舊,比例為1:2,新生代進(jìn)一步分為伊甸園,從幸存者和到幸存者,默認比例為8:1:1,請注意,您可以通過(guò)SvivorRatio參數進(jìn)行設置。請注意,從 JDK 8 開(kāi)始,JVM 中不再有永久世代的概念。無(wú)論 Java 堆上的區域如何,都只存儲對象的實(shí)例,而細分 Java 堆的目的只是為了更好地回收內存,或者更快地分配內存。
4.2 代際采集原理4.2.1 新生代物品的分配和采集
在大多數情況下,對象優(yōu)先分配在新生代伊甸園區域中,當 Eden 區域沒(méi)有足夠的空間進(jìn)行分配時(shí),虛擬機會(huì )啟動(dòng)次要 GC。伊甸園、從幸存者和幸存者的比例是8:1:1,這是因為絕大多數物體都在死亡,伊甸園在垃圾采集過(guò)程中幸存下來(lái)的物體數量不太大,幸存者空間也足夠小,每個(gè)新生代的可用記憶空間是整個(gè)新生代容量的90%(伊甸園的80%加上To的10%)。幸存者),只有來(lái)自幸存者的空間,或新一代的10%,被“浪費”。它不會(huì )像原創(chuàng )標記復制算法那樣浪費一半的內存空間?!靶掖嬲摺焙汀爸滦掖嬲摺敝械目崭癫皇枪潭ǖ?,而是在 S0 和 S1 之間動(dòng)態(tài)轉換的,第一個(gè)小 GC 選擇 S1 作為“到幸存者”,并將 Eden 中幸存的對象復制到其中,將對象的年齡增加 1,請注意,新一代使用的垃圾回收算法是標記復制算法的改進(jìn)版本。下面是一個(gè)示意圖,注意顏色變化的第一步是為了突出,虛擬機只做標記活體的操作。
第一個(gè)小氣相色譜的示意圖
在隨后的小指導性案例中,S0和S1交替轉換為“從幸存者”和“幸存者”,而《伊甸園》和“幸存者”中的幸存對象被復制到“幸存者”中,年齡增加1。如下圖所示:
后續次要 GC 原理圖
4.2.2 升入老年的物品
在這些情況下,受試者將被提升到老年。
長(cháng)期幸存者將進(jìn)入老年
每當一個(gè)物體在幸存者區域中的小GC中存活時(shí),它的年齡就會(huì )增加1年,當它的年齡增加到一定水平(默認為15)時(shí),它就會(huì )被提升到中年。對象前進(jìn)到老年的年齡閾值可以通過(guò)參數-XX:MaxTenuringThreshold設置,此參數的最大值為15,因為對象年齡信息存儲在對象頭中,占4位內存,最大可以表示的數量是15。
促進(jìn)長(cháng)期幸存者進(jìn)入老年的示意圖
2.大型物品可以直接進(jìn)入老年
對于大型對象,尤其是長(cháng)字符串,或具有大量元素的數組,如果在 Eden 中分配,很容易過(guò)早地填滿(mǎn) Eden 空間,從而導致次要 GC,并且還存在較大的內存復制開(kāi)銷(xiāo),用于在 Eden 和兩個(gè)幸存者之間來(lái)回復制。因此,我們可以通過(guò)設置虛擬機參數 -XX:預縮文件大小閾值來(lái)讓大型對象直接進(jìn)入舊時(shí)代。
3.動(dòng)態(tài)對象的時(shí)代
為了更好地適應不同程序的內存條件,熱點(diǎn)虛擬機并不總是要求物體的年齡必須達到-XX:MaxTenuringThreshold才能提升到老年,如果幸存者空間中所有相同年齡的對象大小之和大于幸存者空間的一半, 大于或等于年齡的對象可以直接進(jìn)入老年,而不必等到 -XX:最大收縮閾值中所需的年齡。
4.處理促銷(xiāo)
當幸存者空間不足以容納在次要GC之后存活的物體時(shí),它依靠其他內存區域(實(shí)際上,在大多數情況下,是老年)進(jìn)行分配保證。在次要GC發(fā)生之前,虛擬機必須首先檢查舊時(shí)代的最大可用連續空間是否大于新一代中所有對象的總空間,如果此條件為真,那么這次次要GC可以保證是安全的。如果沒(méi)有,虛擬機首先檢查-XX:處理升級失敗參數的設置值是否允許處理提升失敗;如果允許,它將繼續檢查老年人的最大可用連續空間是否大于過(guò)去晉升為老年的對象的平均大小,如果大于,將嘗試次要GC,盡管這次次要GC是有風(fēng)險的;如果小于或 -XX:處理升級失敗設置不允許冒險,則應改為執行完整 GC。
小技巧:掌握吸引蜘蛛的四大技巧,輕松增加SEO優(yōu)化的收錄量
SEO優(yōu)化作為一種實(shí)用的推廣手段,是近年來(lái)企業(yè)宣傳的必備條件。但是,即使你做SEO一樣,你也可能不一樣,有些人有更多的網(wǎng)站收錄,幾十萬(wàn),有些人收錄很少,甚至一頁(yè),后者顯然比前者遭受的損失更大。那么,如何提高網(wǎng)頁(yè)收錄呢?如何讓蜘蛛抓取更多網(wǎng)站頁(yè)面?以下是與您分享的四個(gè)技巧。
技能一、合理穩定地提高網(wǎng)站基本體重
高重量的蜘蛛經(jīng)常抓取,而低重量的蜘蛛以較低的速度爬行。如果想讓蜘蛛抓得更多,就得考慮增加網(wǎng)站的重量,新站的重量很容易達到1,只要網(wǎng)站質(zhì)量通過(guò),技術(shù)是有規律的,達到重量1的速度非???,至于從1到2, 它要慢得多。不過(guò),對于SEO網(wǎng)站管理員來(lái)說(shuō),這也足夠了。

提示二、網(wǎng)站內容更新頻率合理
蜘蛛總是喜歡更新頻率高的網(wǎng)站,因為它們每天都會(huì )來(lái)抓,如果你的更新頻率降低,蜘蛛會(huì )隨著(zhù)時(shí)間的推移而變得懶惰。當然,如果能每天更新定點(diǎn)就更好了,通過(guò)日志分析,你會(huì )發(fā)現蜘蛛會(huì )多次來(lái)到這個(gè)點(diǎn)。當然,如果您不知道蜘蛛何時(shí)會(huì )爬行,擔心您的更新無(wú)效,建議您通過(guò)日志分析獲取蜘蛛的抓取規則,這樣可以更方便蜘蛛抓取收錄頁(yè)面。當然,蜘蛛每次抓取頁(yè)面都會(huì )在數據庫中存在,下次抓取時(shí)會(huì )比較之前的數據,如果沒(méi)有更新,蜘蛛會(huì )降低抓取的頻率,甚至不抓取。隨著(zhù)時(shí)間的流逝,蜘蛛將不再光顧你的網(wǎng)站。如果你之前網(wǎng)站更新得很低,現在想提高收錄,讓蜘蛛抓得更多,建議在固定更新頻率的基礎上,給一些文章發(fā)送一些網(wǎng)站鏈接,這樣蜘蛛就可以被引到你的網(wǎng)站,增加爬行的機會(huì )。
提示三、朋友鏈和外部鏈接選擇最好的
很多SEO優(yōu)化者覺(jué)得做優(yōu)化就是做外部鏈接,所以不管站內,一味追求站外。這種發(fā)送大量反向鏈接的做法在開(kāi)始時(shí)確實(shí)產(chǎn)生了一定的效果,但是隨著(zhù)算法的變化,現在已經(jīng)沒(méi)有效果了。當然1,反向鏈接有利于網(wǎng)站排名和收錄,適當地添加反向鏈接對網(wǎng)站有好處。但是,做SEO并不像發(fā)送外部鏈接那么簡(jiǎn)單,有能力的SEO優(yōu)化器,即使不發(fā)送外部鏈接,也可以有很好的排名,這就是為什么一些網(wǎng)站優(yōu)化器覺(jué)得外部鏈接沒(méi)用的原因。如果你想讓蜘蛛知道你網(wǎng)站鏈接,你需要去一些蜘蛛經(jīng)常爬行的地方放網(wǎng)站鏈接,比如百度有專(zhuān)門(mén)的網(wǎng)站鏈接提交平臺,它提交網(wǎng)站鏈接,幫助蜘蛛抓取收錄。你也可以在貼吧和其他地方發(fā)布鏈接,至于你是否可以保留它取決于個(gè)人技能。至于好友鏈,它是一種外部鏈接,但實(shí)際效果比外部鏈接高,因為好友鏈往往是一些排名相似的相關(guān)鏈接,帶來(lái)更多的權重和好處。

技巧四、科學(xué)地控制對頁(yè)面的訪(fǎng)問(wèn)深度
一方面,深度越深,
對于用戶(hù)來(lái)說(shuō),搜索和點(diǎn)擊越困難,另一方面,蜘蛛爬行并不容易,更不用說(shuō)收錄了,所以通常,每個(gè)人都會(huì )控制目錄的第二和第三層的頁(yè)面深度,而不是沒(méi)有。當然,也有一些深度比較大的網(wǎng)站收錄,往往是行業(yè)網(wǎng)絡(luò )或者門(mén)戶(hù)網(wǎng)絡(luò ),單個(gè)企業(yè)站點(diǎn)能做的很少。
看完這四點(diǎn),不知道你有沒(méi)有掌握網(wǎng)站 收錄爬行的技巧?這里也提醒大家,蜘蛛喜歡高質(zhì)量的原創(chuàng )文章,盡量更新高質(zhì)量的原創(chuàng )文章,增加收錄好。
分享:【文末贈書(shū)】紅隊攻防之信息收集總結
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 95 次瀏覽 ? 2022-10-02 13:12
我之前也總結過(guò)類(lèi)似的信息采集相關(guān)文章,但是理解和方法會(huì )不時(shí)有所不同。本文從滲透測試的角度總結了自己的一些在hvv或授權但只提供公司名和域名的情況下。最近的信息采集過(guò)程例程。
信息采集一、初始已知信息
在前言中提到的兩種情況下,一般初始信息只有公司名稱(chēng)、個(gè)人官網(wǎng)域名、目標名稱(chēng)等信息,信息都是從這個(gè)起點(diǎn)采集的。
二、搜索根域名
這一步我個(gè)人的體會(huì )是,面對大公司,首選工信部備案。小公司以搜索引擎為起點(diǎn),然后可以通過(guò)幾種方法查漏補缺,盡量獲取最完整的信息。大多數公司的根域名并不多,也不會(huì )花費太多時(shí)間來(lái)瀏覽它們。
1.搜索引擎
搜索引擎直接搜索其公司名稱(chēng),獲取其相關(guān)根域名
2.天眼檢查、企業(yè)檢查
從天眼查、七查查等,輸入公司名稱(chēng)查詢(xún)其域名和全資子公司域名。
3.工信部備案
工信部記錄查詢(xún)域名/ip地址(需要詳細準確的公司名稱(chēng),結果會(huì )很全面)
#/綜合/記錄查詢(xún)
4.佛法
fofa查詢(xún)公司名稱(chēng),獲取相關(guān)域名
5.站長(cháng)之家
使用它的 icp 查詢(xún)功能來(lái)查詢(xún)記錄。當我們不知道公司全名的時(shí)候,我們也可以使用這個(gè)網(wǎng)站函數來(lái)查詢(xún)使用已知域名的完整記錄公司名
6.反向查找域名
使用一些已知的IP反向域名
三、子域
我一般不喜歡在子域集合中爆破的方法。子域的爆破更多地依賴(lài)字典。如果字典小,則集合不完整,如果字典大,則耗時(shí)。
1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
以bilibili為例:
類(lèi)似的網(wǎng)站還有很多,這兩個(gè)是免費的,但是第二個(gè)需要注冊登錄
2.子域爆破
相關(guān)工具很多,有些掃描儀也自帶子域爆破功能或者可以安裝相關(guān)插件。
subDomainsBrute
3.fofa, shodan
使用此類(lèi)工具查詢(xún)域名資產(chǎn),例如
fofa 語(yǔ)法域=””
4.OneForAll
該工具將整合各種采集子域的方法,包括dns查詢(xún)、證書(shū)查詢(xún)等,具體請參見(jiàn)其項目中的readme
安裝
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />3<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />4<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />5<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
git clone https://github.com/shmilylty/OneForAll.git<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />cd OneForAll/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --help<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
python3 oneforall.py --target example.com run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --targets ./example.txt run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
四、ip
IP列表并不完全來(lái)源于域名解析。有些IP直接使用IP地址提供服務(wù)。這部分信息需要提前采集,另一部分通過(guò)域名解析獲取。
1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
與子域查詢(xún)中的操作相同,但需要做的是導出ip列表
2.解析域名
調用 dig 或 nslookup 通過(guò)腳本將采集到的所有子域批量解析 IP
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
nslookup xxx.com<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />dig xxx.com @114.114.114.114<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
編寫(xiě)腳本批量調用dig命令并導出結果
或者將域名列表放在在線(xiàn)解析網(wǎng)站中,導出其解析結果
這一步需要特別注意cdn的情況,繞過(guò)cdn找到它的真實(shí)ip,可以參考這個(gè)文檔
3.c 段
將之前獲取的IP全部整理出來(lái),使用腳本進(jìn)行整理。如果懶得寫(xiě)腳本,也可以使用在線(xiàn)功能。
比如ip地址排序計算器
得到排序后的ip后,可以先判斷哪些c段可能屬于目標,然后進(jìn)行一些掃描和訪(fǎng)問(wèn),組織一個(gè)更全面的ip列表。
五、端口
使用masscan、nmap等工具采集端口信息
六、網(wǎng)絡(luò )服務(wù)
使用webfinder等工具掃描對ip列表進(jìn)行排序的常用web端口,以:port/和:port/的形式導出web服務(wù)列表
指紋識別
1.
2.
七、缺少掃描1.主機掃描
上面編譯的ip列表和域名列表可以扔進(jìn)主機掃描相關(guān)的掃描器中,比如goby、Nessus等。
2.網(wǎng)絡(luò )掃描
整理好web服務(wù)列表后,可以扔進(jìn)awvs等工具進(jìn)行掃描,也可以用xray批量掃描。
史上最強:最強黑科技合集!沒(méi)有之一??!
由于微信公眾號改版,當前公眾號新聞不再按時(shí)間順序排列。因此,朋友很容易錯過(guò)分享的內容。
喜歡貓哥的朋友可以把公眾號設為star,這樣就不會(huì )迷路了~操作方法:
大家好,說(shuō)到手機工具箱,大家可能會(huì )想到木信,酷炫的安全神器,它聚合了很多實(shí)用功能,不過(guò)今天推薦的比木信更強大。它被稱(chēng)為竹信。目前完全免費,無(wú)需任何GSM插入,功能還在不斷增加。目前,它只支持安卓。
竹信 (Android)
軟件只有4.3M,打開(kāi)軟件,功能盡顯,各個(gè)功能無(wú)需額外下載即可直接使用。
超強資源導航:這是一個(gè)網(wǎng)站資源導航,匯集了眾多精品網(wǎng)站,電影、動(dòng)漫、漫畫(huà)、小說(shuō)、直播一應俱全,還有大家最喜歡的香港和奧地利電視直播頻道。.
生活不容易。希望大家可以【點(diǎn)擊】下方的小卡片。您的流暢點(diǎn)擊將是我堅持的動(dòng)力。只需單擊它。非常感謝!
小霸王游戲機:打開(kāi)搜索想玩的游戲,比如《魂斗羅》直接打開(kāi)玩,也支持作弊工具。
逐圖搜索:這個(gè)功能大家都很熟悉,也很常用。您可以通過(guò)單個(gè)圖像找到其原創(chuàng )圖像或更多類(lèi)似圖像。
全網(wǎng)高級點(diǎn)播和VIP視頻分析工具,將VIP視頻連接粘貼到分析框中,點(diǎn)擊“分析”生成,進(jìn)入瀏覽器免費觀(guān)看。
以前非常流行的狗屎偽原創(chuàng )文章自動(dòng)生成器,舔狗日記生成工具,世界貨幣兌換工具,世界實(shí)時(shí)地震監測工具。
這些只是冰山一角,還有全網(wǎng)音樂(lè )下載、asmr助眠、ip地址查詢(xún)、視頻去水印、壁紙下載、語(yǔ)言翻譯等諸多實(shí)用功能。
總之,這款軟件集實(shí)用娛樂(lè )等諸多功能于一體。還可以避免手機因為安裝太多軟件而卡死,功能還在不斷增加??梢哉f(shuō)非常實(shí)用。有興趣的朋友趕緊起床??!
軟件獲取 查看全部
分享:【文末贈書(shū)】紅隊攻防之信息收集總結
我之前也總結過(guò)類(lèi)似的信息采集相關(guān)文章,但是理解和方法會(huì )不時(shí)有所不同。本文從滲透測試的角度總結了自己的一些在hvv或授權但只提供公司名和域名的情況下。最近的信息采集過(guò)程例程。
信息采集一、初始已知信息
在前言中提到的兩種情況下,一般初始信息只有公司名稱(chēng)、個(gè)人官網(wǎng)域名、目標名稱(chēng)等信息,信息都是從這個(gè)起點(diǎn)采集的。
二、搜索根域名
這一步我個(gè)人的體會(huì )是,面對大公司,首選工信部備案。小公司以搜索引擎為起點(diǎn),然后可以通過(guò)幾種方法查漏補缺,盡量獲取最完整的信息。大多數公司的根域名并不多,也不會(huì )花費太多時(shí)間來(lái)瀏覽它們。
1.搜索引擎
搜索引擎直接搜索其公司名稱(chēng),獲取其相關(guān)根域名
2.天眼檢查、企業(yè)檢查
從天眼查、七查查等,輸入公司名稱(chēng)查詢(xún)其域名和全資子公司域名。
3.工信部備案
工信部記錄查詢(xún)域名/ip地址(需要詳細準確的公司名稱(chēng),結果會(huì )很全面)
#/綜合/記錄查詢(xún)
4.佛法
fofa查詢(xún)公司名稱(chēng),獲取相關(guān)域名
5.站長(cháng)之家
使用它的 icp 查詢(xún)功能來(lái)查詢(xún)記錄。當我們不知道公司全名的時(shí)候,我們也可以使用這個(gè)網(wǎng)站函數來(lái)查詢(xún)使用已知域名的完整記錄公司名
6.反向查找域名
使用一些已知的IP反向域名
三、子域
我一般不喜歡在子域集合中爆破的方法。子域的爆破更多地依賴(lài)字典。如果字典小,則集合不完整,如果字典大,則耗時(shí)。

1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
以bilibili為例:
類(lèi)似的網(wǎng)站還有很多,這兩個(gè)是免費的,但是第二個(gè)需要注冊登錄
2.子域爆破
相關(guān)工具很多,有些掃描儀也自帶子域爆破功能或者可以安裝相關(guān)插件。
subDomainsBrute
3.fofa, shodan
使用此類(lèi)工具查詢(xún)域名資產(chǎn),例如
fofa 語(yǔ)法域=””
4.OneForAll
該工具將整合各種采集子域的方法,包括dns查詢(xún)、證書(shū)查詢(xún)等,具體請參見(jiàn)其項目中的readme
安裝
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />3<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />4<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />5<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
git clone https://github.com/shmilylty/OneForAll.git<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />cd OneForAll/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --help<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
python3 oneforall.py --target example.com run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />python3 oneforall.py --targets ./example.txt run<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
四、ip
IP列表并不完全來(lái)源于域名解析。有些IP直接使用IP地址提供服務(wù)。這部分信息需要提前采集,另一部分通過(guò)域名解析獲取。
1.各類(lèi)網(wǎng)站查詢(xún)分析記錄
與子域查詢(xún)中的操作相同,但需要做的是導出ip列表
2.解析域名

調用 dig 或 nslookup 通過(guò)腳本將采集到的所有子域批量解析 IP
1<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />2<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
nslookup xxx.com<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />dig xxx.com @114.114.114.114<br style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;" />
編寫(xiě)腳本批量調用dig命令并導出結果
或者將域名列表放在在線(xiàn)解析網(wǎng)站中,導出其解析結果
這一步需要特別注意cdn的情況,繞過(guò)cdn找到它的真實(shí)ip,可以參考這個(gè)文檔
3.c 段
將之前獲取的IP全部整理出來(lái),使用腳本進(jìn)行整理。如果懶得寫(xiě)腳本,也可以使用在線(xiàn)功能。
比如ip地址排序計算器
得到排序后的ip后,可以先判斷哪些c段可能屬于目標,然后進(jìn)行一些掃描和訪(fǎng)問(wèn),組織一個(gè)更全面的ip列表。
五、端口
使用masscan、nmap等工具采集端口信息
六、網(wǎng)絡(luò )服務(wù)
使用webfinder等工具掃描對ip列表進(jìn)行排序的常用web端口,以:port/和:port/的形式導出web服務(wù)列表
指紋識別
1.
2.
七、缺少掃描1.主機掃描
上面編譯的ip列表和域名列表可以扔進(jìn)主機掃描相關(guān)的掃描器中,比如goby、Nessus等。
2.網(wǎng)絡(luò )掃描
整理好web服務(wù)列表后,可以扔進(jìn)awvs等工具進(jìn)行掃描,也可以用xray批量掃描。
史上最強:最強黑科技合集!沒(méi)有之一??!
由于微信公眾號改版,當前公眾號新聞不再按時(shí)間順序排列。因此,朋友很容易錯過(guò)分享的內容。
喜歡貓哥的朋友可以把公眾號設為star,這樣就不會(huì )迷路了~操作方法:
大家好,說(shuō)到手機工具箱,大家可能會(huì )想到木信,酷炫的安全神器,它聚合了很多實(shí)用功能,不過(guò)今天推薦的比木信更強大。它被稱(chēng)為竹信。目前完全免費,無(wú)需任何GSM插入,功能還在不斷增加。目前,它只支持安卓。
竹信 (Android)
軟件只有4.3M,打開(kāi)軟件,功能盡顯,各個(gè)功能無(wú)需額外下載即可直接使用。
超強資源導航:這是一個(gè)網(wǎng)站資源導航,匯集了眾多精品網(wǎng)站,電影、動(dòng)漫、漫畫(huà)、小說(shuō)、直播一應俱全,還有大家最喜歡的香港和奧地利電視直播頻道。.

生活不容易。希望大家可以【點(diǎn)擊】下方的小卡片。您的流暢點(diǎn)擊將是我堅持的動(dòng)力。只需單擊它。非常感謝!
小霸王游戲機:打開(kāi)搜索想玩的游戲,比如《魂斗羅》直接打開(kāi)玩,也支持作弊工具。
逐圖搜索:這個(gè)功能大家都很熟悉,也很常用。您可以通過(guò)單個(gè)圖像找到其原創(chuàng )圖像或更多類(lèi)似圖像。
全網(wǎng)高級點(diǎn)播和VIP視頻分析工具,將VIP視頻連接粘貼到分析框中,點(diǎn)擊“分析”生成,進(jìn)入瀏覽器免費觀(guān)看。

以前非常流行的狗屎偽原創(chuàng )文章自動(dòng)生成器,舔狗日記生成工具,世界貨幣兌換工具,世界實(shí)時(shí)地震監測工具。
這些只是冰山一角,還有全網(wǎng)音樂(lè )下載、asmr助眠、ip地址查詢(xún)、視頻去水印、壁紙下載、語(yǔ)言翻譯等諸多實(shí)用功能。
總之,這款軟件集實(shí)用娛樂(lè )等諸多功能于一體。還可以避免手機因為安裝太多軟件而卡死,功能還在不斷增加??梢哉f(shuō)非常實(shí)用。有興趣的朋友趕緊起床??!
軟件獲取
最新版:V8 中的垃圾收集(GC),圖文指南
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 96 次瀏覽 ? 2022-10-02 13:11
原標題:V8 中的垃圾采集,圖文并茂的指南 原文鏈接:@_lrlna/garbage-采集-in-v8-an-illustrated-guide-d24a952ee3b8
本指南不同于我迄今為止編寫(xiě)的任何其他指南,我在其中添加了一些草圖。我勾勒出垃圾采集 (GC) 的整個(gè)概念以及它是如何在 javascript 中處理的,更準確地說(shuō)是在運行 javascript 的引擎中。順便說(shuō)一句,本指南面向初學(xué)者,并未涵蓋 V8 內存管理的所有方面和 V8 的內部結構。我添加了一些資源來(lái)幫助您深入挖掘。本指南重點(diǎn)關(guān)注?javascript?,對于某些語(yǔ)言,垃圾回收是完全不同的,例如 C 語(yǔ)言。
好的,讓我們開(kāi)始吧。
什么是 v8?
V8 是 JavaScript 的運行時(shí)引擎,不要與你最喜歡的番茄汁混淆,它負責編譯和執行你喜歡的 JavaScript。V8 有一個(gè)分代垃圾采集器,我稍后會(huì )解釋。它與 Chrome 一起使用,而 SpiderMonkey 是 Mozilla 的引擎,而 Chakra 是 Microsoft 的?;旧显谶\行 javascript 時(shí),您需要一個(gè)引擎來(lái)處理它,而 V8 是您的選擇之一,無(wú)論是在瀏覽器中還是在 node.js 環(huán)境中。(PS V8 是?開(kāi)源?。)
什么是垃圾采集?
垃圾采集的重點(diǎn)是通過(guò)使用特定程序來(lái)管理內存使用情況。C等語(yǔ)言往往可以直接操作程序中的內存,并在程序的上下文中分配和釋放對象。另一方面,ECMAScript 缺少訪(fǎng)問(wèn)內存管理的特定接口(是的,這意味著(zhù)沒(méi)有 API)。這基本上意味著(zhù)程序中的所有內存管理權限都轉移到了V8。
由于我們無(wú)法訪(fǎng)問(wèn)無(wú)限量的內存,垃圾采集器的工作是查看內存中分配的對象以確定它們是死的還是活的。那些活著(zhù)的留在內存中,那些死的被刪除,內存被分配回堆。
什么是堆?堆是一個(gè)非結構化區域,堆中的對象占用分配的內存。這種分配是動(dòng)態(tài)的,因為對象的大小/生命周期/數量是未知的,需要在運行時(shí)分配和釋放。
如果我們看一下并發(fā)模型,堆直接與調用堆棧一起工作,因為堆棧上的對象需要進(jìn)行內存分配。它看起來(lái)像這樣:
死或生?
如何檢查一個(gè)對象的生死是客戶(hù)端或程序代碼是否可以到達該對象。您能想到的最可達的對象可能是在根范圍中定義的對象。
一些 C++ 綁定(或客戶(hù)端上的 Web API)也是根的一部分,因此您可以通過(guò)例如 setInterval 直接訪(fǎng)問(wèn)它。
可達性也可以這樣理解:其他對象或根是否可以獲取,如果可以,則保留該對象所需的內存。
那么我們如何進(jìn)行垃圾回收呢?(告訴我告訴我?。?br /> 當創(chuàng )建新對象或新“指針”時(shí),V8 會(huì )在堆上分配內存。(javascript沒(méi)有真正的指針,所以“指針”在技術(shù)上只是對原創(chuàng )對象的引用的副本)。堆中不同類(lèi)型的對象會(huì )占用不同的空間,其組織方式如下:
出于垃圾采集的目的,V8 將堆分為兩部分:新生區和陳舊區。當您執行需要 V8 分配內存的操作時(shí),V8 會(huì )在新區域中分配空間。當你不斷地添加到堆中時(shí),你最終會(huì )耗盡內存,所以 V8 將不得不運行一次 GC 來(lái)清理。新創(chuàng )建的對象在對象死亡時(shí)被快速分配和清理(更短和更快的采集)。一旦對象“存活”了一些(確切地說(shuō)是 2 個(gè)周期)采集掃描周期,它們就會(huì )被提升到父區,在一個(gè)單獨的周期中采集垃圾。
較舊的對象是那些在不止一次垃圾采集掃描中幸存下來(lái)的對象,這意味著(zhù)它們仍然被其他對象引用并且仍然需要占用該內存。它們通常不引用較年輕的對象,只引用較舊的對象。主要周期不經(jīng)常發(fā)生。在將足夠多的物體移動(dòng)到舊區域后,通常會(huì )發(fā)生一個(gè)大循環(huán)。
來(lái)源.js
本指南來(lái)自 lrlna 在 github 上的 sketchin 指南?。
最新版:ArchiveWebpage(網(wǎng)頁(yè)存檔) V0.8.1 官方版
ArchiveWebpage 是瀏覽器的網(wǎng)頁(yè)存檔和擴展類(lèi)型工具。該工具可以幫助您以擴展的方式歸檔網(wǎng)頁(yè)。它非常適合與客戶(hù)端一起使用。網(wǎng)頁(yè)內容會(huì )在您需要時(shí)保存和復制!
【軟件功能】
直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案
該擴展允許用戶(hù)直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案。
啟用后,擴展程序“記錄”特定選項卡上的網(wǎng)絡(luò )流量并將數據存儲在瀏覽器中。記錄頁(yè)面顯示所有存檔頁(yè)面的列表。
該擴展允許用戶(hù)重播存檔網(wǎng)頁(yè)(使用 replayweb.page 系統)并允許用戶(hù)以標準 WARC 和新 WACZ 格式導出存檔網(wǎng)頁(yè)。
【軟件特色】
直接記錄網(wǎng)頁(yè)上某段時(shí)間的數據
隨時(shí)保存網(wǎng)頁(yè)上的相關(guān)內容
以 WARC 和新的 WACZ 格式導出 查看全部
最新版:V8 中的垃圾收集(GC),圖文指南
原標題:V8 中的垃圾采集,圖文并茂的指南 原文鏈接:@_lrlna/garbage-采集-in-v8-an-illustrated-guide-d24a952ee3b8
本指南不同于我迄今為止編寫(xiě)的任何其他指南,我在其中添加了一些草圖。我勾勒出垃圾采集 (GC) 的整個(gè)概念以及它是如何在 javascript 中處理的,更準確地說(shuō)是在運行 javascript 的引擎中。順便說(shuō)一句,本指南面向初學(xué)者,并未涵蓋 V8 內存管理的所有方面和 V8 的內部結構。我添加了一些資源來(lái)幫助您深入挖掘。本指南重點(diǎn)關(guān)注?javascript?,對于某些語(yǔ)言,垃圾回收是完全不同的,例如 C 語(yǔ)言。
好的,讓我們開(kāi)始吧。
什么是 v8?
V8 是 JavaScript 的運行時(shí)引擎,不要與你最喜歡的番茄汁混淆,它負責編譯和執行你喜歡的 JavaScript。V8 有一個(gè)分代垃圾采集器,我稍后會(huì )解釋。它與 Chrome 一起使用,而 SpiderMonkey 是 Mozilla 的引擎,而 Chakra 是 Microsoft 的?;旧显谶\行 javascript 時(shí),您需要一個(gè)引擎來(lái)處理它,而 V8 是您的選擇之一,無(wú)論是在瀏覽器中還是在 node.js 環(huán)境中。(PS V8 是?開(kāi)源?。)
什么是垃圾采集?
垃圾采集的重點(diǎn)是通過(guò)使用特定程序來(lái)管理內存使用情況。C等語(yǔ)言往往可以直接操作程序中的內存,并在程序的上下文中分配和釋放對象。另一方面,ECMAScript 缺少訪(fǎng)問(wèn)內存管理的特定接口(是的,這意味著(zhù)沒(méi)有 API)。這基本上意味著(zhù)程序中的所有內存管理權限都轉移到了V8。

由于我們無(wú)法訪(fǎng)問(wèn)無(wú)限量的內存,垃圾采集器的工作是查看內存中分配的對象以確定它們是死的還是活的。那些活著(zhù)的留在內存中,那些死的被刪除,內存被分配回堆。
什么是堆?堆是一個(gè)非結構化區域,堆中的對象占用分配的內存。這種分配是動(dòng)態(tài)的,因為對象的大小/生命周期/數量是未知的,需要在運行時(shí)分配和釋放。
如果我們看一下并發(fā)模型,堆直接與調用堆棧一起工作,因為堆棧上的對象需要進(jìn)行內存分配。它看起來(lái)像這樣:
死或生?
如何檢查一個(gè)對象的生死是客戶(hù)端或程序代碼是否可以到達該對象。您能想到的最可達的對象可能是在根范圍中定義的對象。
一些 C++ 綁定(或客戶(hù)端上的 Web API)也是根的一部分,因此您可以通過(guò)例如 setInterval 直接訪(fǎng)問(wèn)它。
可達性也可以這樣理解:其他對象或根是否可以獲取,如果可以,則保留該對象所需的內存。

那么我們如何進(jìn)行垃圾回收呢?(告訴我告訴我?。?br /> 當創(chuàng )建新對象或新“指針”時(shí),V8 會(huì )在堆上分配內存。(javascript沒(méi)有真正的指針,所以“指針”在技術(shù)上只是對原創(chuàng )對象的引用的副本)。堆中不同類(lèi)型的對象會(huì )占用不同的空間,其組織方式如下:
出于垃圾采集的目的,V8 將堆分為兩部分:新生區和陳舊區。當您執行需要 V8 分配內存的操作時(shí),V8 會(huì )在新區域中分配空間。當你不斷地添加到堆中時(shí),你最終會(huì )耗盡內存,所以 V8 將不得不運行一次 GC 來(lái)清理。新創(chuàng )建的對象在對象死亡時(shí)被快速分配和清理(更短和更快的采集)。一旦對象“存活”了一些(確切地說(shuō)是 2 個(gè)周期)采集掃描周期,它們就會(huì )被提升到父區,在一個(gè)單獨的周期中采集垃圾。
較舊的對象是那些在不止一次垃圾采集掃描中幸存下來(lái)的對象,這意味著(zhù)它們仍然被其他對象引用并且仍然需要占用該內存。它們通常不引用較年輕的對象,只引用較舊的對象。主要周期不經(jīng)常發(fā)生。在將足夠多的物體移動(dòng)到舊區域后,通常會(huì )發(fā)生一個(gè)大循環(huán)。
來(lái)源.js
本指南來(lái)自 lrlna 在 github 上的 sketchin 指南?。
最新版:ArchiveWebpage(網(wǎng)頁(yè)存檔) V0.8.1 官方版
ArchiveWebpage 是瀏覽器的網(wǎng)頁(yè)存檔和擴展類(lèi)型工具。該工具可以幫助您以擴展的方式歸檔網(wǎng)頁(yè)。它非常適合與客戶(hù)端一起使用。網(wǎng)頁(yè)內容會(huì )在您需要時(shí)保存和復制!
【軟件功能】
直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案

該擴展允許用戶(hù)直接在瀏覽器中創(chuàng )建高保真網(wǎng)絡(luò )檔案。
啟用后,擴展程序“記錄”特定選項卡上的網(wǎng)絡(luò )流量并將數據存儲在瀏覽器中。記錄頁(yè)面顯示所有存檔頁(yè)面的列表。
該擴展允許用戶(hù)重播存檔網(wǎng)頁(yè)(使用 replayweb.page 系統)并允許用戶(hù)以標準 WARC 和新 WACZ 格式導出存檔網(wǎng)頁(yè)。

【軟件特色】
直接記錄網(wǎng)頁(yè)上某段時(shí)間的數據
隨時(shí)保存網(wǎng)頁(yè)上的相關(guān)內容
以 WARC 和新的 WACZ 格式導出
案例研究:帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 91 次瀏覽 ? 2022-10-01 05:09
老蔣今天上午在和朋友討論他的網(wǎng)站布局問(wèn)題,他是一個(gè)范文類(lèi)網(wǎng)站,采用的是帝國CMS,選擇的CMS是比較好的,畢竟大內容是需要帝國CMS或者織夢(mèng)這樣的靜態(tài)系統,而不是WP這種博客系統。但是有一個(gè)問(wèn)題,他告知帝國的系統問(wèn)題,無(wú)法設置TAG調用,這里簡(jiǎn)單先找找是不是有類(lèi)似的辦法。
第一步、帝國CMS TAG設置
1、登錄后臺,單擊【欄目】菜單【TAGS管理】【設置TAGS參數】子菜單,進(jìn)入設置TAGS參數界面。
2、進(jìn)入設置TAGS參數界面, 前臺開(kāi)啟TAGS:設置前臺/e/tags/頁(yè)面是否開(kāi)啟使用。
默認使用的模板:選擇tags的列表模板,這里建議選擇和文章一樣的列表模板; 每頁(yè)顯示信息:設置不指定line情況下默認的每頁(yè)顯示信息數。
第二步、帝國CMS TAGS標簽調用
1、用帝國cms自帶的自定義調用工具進(jìn)行調用:
[showtags]分類(lèi)ID,顯示數量,每行顯示數量,顯示排序,只顯示推薦,推薦TAGS屬性,顯示間隔符,是否顯示信息數,鏈接附加參數,鏈接使用變量[/showtags]
具體參考:模板==》自動(dòng)生成標簽===》調用tags標簽模板
2、帝國cms使用靈動(dòng)標簽調用當前文章內容tag標簽
[e:loop={"SELECT*FROMseo_ecms_newsWHEREid="".$navinfor[id].""LIMIT0,30",1,24,0}]
[/e:loop]
復制
3、帝國CMS靈動(dòng)標簽調用TAGS
[e:loop={"select * from [!db.pre!]enewstags order by num desc limit 10",0,24,0}]
</a>
[/e:loop]
復制
第三步、設置偽靜態(tài)規則
如果我們采用的偽靜態(tài),則需要添加偽靜態(tài)規則。
1、Apache
檢查.htaccess里是否有這個(gè)規則
#TAGS信息列表頁(yè)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tags-(.+?)-(.+?)\.html$ /e/tags/index.php?tagname=$1&page=$2
復制
2、Nginx
如果我們是Nginx,需要看下規則里是否有
rewrite ^/tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 last;
復制
以上是我們要對帝國CMS設置TAG靜態(tài)調用的方法。
本文出處:老蔣部落 ? 帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則 | 歡迎分享
解決方案:小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
自適應小說(shuō)自動(dòng)采集網(wǎng)站源碼
程序開(kāi)發(fā):PHP+mysql
程序演示: , 賬戶(hù) ,密碼
程序特色:
1、小說(shuō)自動(dòng)采集;
2、小說(shuō)章節實(shí)時(shí)更新;
3、采集的小說(shuō)入庫,不受源站影響;
4、高效儲存模式,節約服務(wù)器空間使用;
程序優(yōu)點(diǎn):
1、小說(shuō)自動(dòng)推送到百度搜索引擎,加快頁(yè)面收錄;
2、頁(yè)面深度優(yōu)化,合理部署,深受搜索引擎喜愛(ài);
3、pc端+獨立手機端自適應,全方位滿(mǎn)足搜索引擎需求;
安裝環(huán)境推薦:
1、空間、服務(wù)器均可
2、PHP:5.4+
3、數據庫:mysql5.6+
4.安裝前先設置thinkphp偽靜態(tài)
5.后臺點(diǎn)擊批量采集新書(shū),然后批量處理文章,后面都是自動(dòng)采集 查看全部
案例研究:帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則
老蔣今天上午在和朋友討論他的網(wǎng)站布局問(wèn)題,他是一個(gè)范文類(lèi)網(wǎng)站,采用的是帝國CMS,選擇的CMS是比較好的,畢竟大內容是需要帝國CMS或者織夢(mèng)這樣的靜態(tài)系統,而不是WP這種博客系統。但是有一個(gè)問(wèn)題,他告知帝國的系統問(wèn)題,無(wú)法設置TAG調用,這里簡(jiǎn)單先找找是不是有類(lèi)似的辦法。
第一步、帝國CMS TAG設置
1、登錄后臺,單擊【欄目】菜單【TAGS管理】【設置TAGS參數】子菜單,進(jìn)入設置TAGS參數界面。
2、進(jìn)入設置TAGS參數界面, 前臺開(kāi)啟TAGS:設置前臺/e/tags/頁(yè)面是否開(kāi)啟使用。
默認使用的模板:選擇tags的列表模板,這里建議選擇和文章一樣的列表模板; 每頁(yè)顯示信息:設置不指定line情況下默認的每頁(yè)顯示信息數。
第二步、帝國CMS TAGS標簽調用
1、用帝國cms自帶的自定義調用工具進(jìn)行調用:
[showtags]分類(lèi)ID,顯示數量,每行顯示數量,顯示排序,只顯示推薦,推薦TAGS屬性,顯示間隔符,是否顯示信息數,鏈接附加參數,鏈接使用變量[/showtags]
具體參考:模板==》自動(dòng)生成標簽===》調用tags標簽模板
2、帝國cms使用靈動(dòng)標簽調用當前文章內容tag標簽
[e:loop={"SELECT*FROMseo_ecms_newsWHEREid="".$navinfor[id].""LIMIT0,30",1,24,0}]
[/e:loop]
復制
3、帝國CMS靈動(dòng)標簽調用TAGS
[e:loop={"select * from [!db.pre!]enewstags order by num desc limit 10",0,24,0}]
</a>
[/e:loop]
復制
第三步、設置偽靜態(tài)規則
如果我們采用的偽靜態(tài),則需要添加偽靜態(tài)規則。
1、Apache
檢查.htaccess里是否有這個(gè)規則
#TAGS信息列表頁(yè)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tags-(.+?)-(.+?)\.html$ /e/tags/index.php?tagname=$1&page=$2
復制
2、Nginx
如果我們是Nginx,需要看下規則里是否有
rewrite ^/tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 last;
復制
以上是我們要對帝國CMS設置TAG靜態(tài)調用的方法。
本文出處:老蔣部落 ? 帝國CMS文章頁(yè)面設置TAGS關(guān)鍵字調用及TAGS靜態(tài)化規則 | 歡迎分享
解決方案:小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
小說(shuō)自動(dòng)采集網(wǎng)站源碼-pc端+獨立手機端自適應
自適應小說(shuō)自動(dòng)采集網(wǎng)站源碼
程序開(kāi)發(fā):PHP+mysql
程序演示: , 賬戶(hù) ,密碼
程序特色:
1、小說(shuō)自動(dòng)采集;

2、小說(shuō)章節實(shí)時(shí)更新;
3、采集的小說(shuō)入庫,不受源站影響;
4、高效儲存模式,節約服務(wù)器空間使用;
程序優(yōu)點(diǎn):
1、小說(shuō)自動(dòng)推送到百度搜索引擎,加快頁(yè)面收錄;
2、頁(yè)面深度優(yōu)化,合理部署,深受搜索引擎喜愛(ài);
3、pc端+獨立手機端自適應,全方位滿(mǎn)足搜索引擎需求;

安裝環(huán)境推薦:
1、空間、服務(wù)器均可
2、PHP:5.4+
3、數據庫:mysql5.6+
4.安裝前先設置thinkphp偽靜態(tài)
5.后臺點(diǎn)擊批量采集新書(shū),然后批量處理文章,后面都是自動(dòng)采集
解決方案:MATLAB調用采集卡實(shí)現數據采集
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 445 次瀏覽 ? 2022-10-01 00:29
NI 數據 采集 卡 入門(mén) 一、 安裝 和 配置: 1. 安裝 板 塊 前, 請 安裝 NI- DAQ 驅動(dòng) 軟件。您可以在卡附帶的光盤(pán)中找到此驅動(dòng)程序軟件。此外, NI 的 網(wǎng)站 還 提供免費 下載 了 該 驅動(dòng) 軟件: 89? 打開(kāi) 文檔&node=132070_US 如果 您 使用 LabVIEW 或 LabWindows/CVI 軟件 進(jìn)行 編 程, 則 需要 在 安裝 驅動(dòng) 軟件 之前 安裝 開(kāi)發(fā) 平臺 LabVIEW 或 LabWindows/CVI 軟件。在 安裝 過(guò)程中, 安裝 程序 會(huì ) 提醒 您 插入 DAQ 驅動(dòng) 程序 CD。2.正確安裝了NI-DAQ驅動(dòng)程序軟件,請關(guān)閉計算機,將數據插入采集板,啟動(dòng)計算機,然后就可以啟動(dòng)它了
秘密武器:自媒體運營(yíng)必備的6款輔助工具,讓運營(yíng)效率成倍提升
無(wú)論你是自媒體老鳥(niǎo)還是剛剛進(jìn)入自媒體行業(yè)的新手,在自媒體操作的過(guò)程中都需要使用一些輔助工具,今天小編會(huì )和大家分享一些網(wǎng)站操作中可能用到的輔助工具和自媒體,有了這些輔助工具,就可以讓運營(yíng)效率成倍增加。
1、操作輔助工具 - 易于編寫(xiě)
要做自媒體操作我們需要追熱點(diǎn)、找材料等,如果沒(méi)有好的輔助工具就會(huì )浪費時(shí)間,而且容易編寫(xiě)自媒體工具,基于數據挖掘技術(shù)來(lái)集成和分析各大自媒體平臺的內容,對于自媒體作者在操作過(guò)程中需要使用實(shí)時(shí)的熱點(diǎn)跟蹤, 爆文視頻批量采集下載、文章編輯器布局、標題生成和原創(chuàng )檢測等服務(wù)。
2、仔豬的GIF 查看全部
解決方案:MATLAB調用采集卡實(shí)現數據采集

NI 數據 采集 卡 入門(mén) 一、 安裝 和 配置: 1. 安裝 板 塊 前, 請 安裝 NI- DAQ 驅動(dòng) 軟件。您可以在卡附帶的光盤(pán)中找到此驅動(dòng)程序軟件。此外, NI 的 網(wǎng)站 還 提供免費 下載 了 該 驅動(dòng) 軟件: 89? 打開(kāi) 文檔&node=132070_US 如果 您 使用 LabVIEW 或 LabWindows/CVI 軟件 進(jìn)行 編 程, 則 需要 在 安裝 驅動(dòng) 軟件 之前 安裝 開(kāi)發(fā) 平臺 LabVIEW 或 LabWindows/CVI 軟件。在 安裝 過(guò)程中, 安裝 程序 會(huì ) 提醒 您 插入 DAQ 驅動(dòng) 程序 CD。2.正確安裝了NI-DAQ驅動(dòng)程序軟件,請關(guān)閉計算機,將數據插入采集板,啟動(dòng)計算機,然后就可以啟動(dòng)它了

秘密武器:自媒體運營(yíng)必備的6款輔助工具,讓運營(yíng)效率成倍提升
無(wú)論你是自媒體老鳥(niǎo)還是剛剛進(jìn)入自媒體行業(yè)的新手,在自媒體操作的過(guò)程中都需要使用一些輔助工具,今天小編會(huì )和大家分享一些網(wǎng)站操作中可能用到的輔助工具和自媒體,有了這些輔助工具,就可以讓運營(yíng)效率成倍增加。

1、操作輔助工具 - 易于編寫(xiě)
要做自媒體操作我們需要追熱點(diǎn)、找材料等,如果沒(méi)有好的輔助工具就會(huì )浪費時(shí)間,而且容易編寫(xiě)自媒體工具,基于數據挖掘技術(shù)來(lái)集成和分析各大自媒體平臺的內容,對于自媒體作者在操作過(guò)程中需要使用實(shí)時(shí)的熱點(diǎn)跟蹤, 爆文視頻批量采集下載、文章編輯器布局、標題生成和原創(chuàng )檢測等服務(wù)。

2、仔豬的GIF
精選文章:【織夢(mèng)/dedecms 當文章轉載時(shí)不需要設置圖片水印的設置
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 77 次瀏覽 ? 2022-09-29 14:13
織夢(mèng)dedecms縮寫(xiě)標題調用標簽使用指南
在使用織夢(mèng)DEDEcms建站的過(guò)程中,為了讓被調用的文章的標題簡(jiǎn)短而相對完整(原標題太長(cháng)),我們不得不使用調用縮寫(xiě)標題的方法,使標題顯示為短標題,指向標題時(shí)顯示完整標題。并得到文章的靜態(tài)地址鏈接我們來(lái)看看DEDE織夢(mèng)cms的簡(jiǎn)稱(chēng)調用方法: 使用的代碼如下: 復制代碼 代碼如下: {dede :arclist titlelen='60' orderby='pubdate' row='6' typeid='5'}
做好織夢(mèng)dedecms安全防護的所有方法
很多同學(xué)遇到網(wǎng)站被攻擊絞死,而且大部分都不是競爭對手做的。在大多數情況下,黑客使用工具對入侵進(jìn)行批量掃描。因此,安全防護非常重要??棄?mèng)安裝時(shí)注意:修改默認數據庫前綴:在安裝dedecms時(shí)修改數據庫的表前綴,盡量不要使用默認前綴dede_,改其他英文字母小寫(xiě)即可。防止黑客猜測。安裝完成后,去掉所有然后帶后門(mén)和漏洞1.修改默認后臺路徑: 功能:是為了防止黑客猜測你的后臺,進(jìn)行其他操作。進(jìn)入網(wǎng)站的根目錄,可以看到dede文件夾,重命名為But。比如改成禮三寶,
織夢(mèng)dedecms獲取當前頁(yè)面URL地址的調用方法
織夢(mèng)內容頁(yè)面如何調用當前頁(yè)面url?相信很多對織夢(mèng)感興趣的朋友都會(huì )考慮這個(gè)問(wèn)題:在文章的內容中加入本文的鏈接,除了保護自己的版權,還可以增加外鏈網(wǎng)站收錄。網(wǎng)上有很多帖子,但是大部分只能調用相對地址,還得在前面加一個(gè)網(wǎng)站域名,這個(gè)方法還可以,但是這個(gè)模板會(huì )鬧是用來(lái)建其他網(wǎng)站的,所以不可行??棄?mèng)dedecms獲取當前頁(yè)面URL地址的正確方法:在調用相對地址前添加網(wǎng)站根地址標簽{dede:global.cfg_basehost/}標簽。
織夢(mèng)dedecms數據庫結構字段說(shuō)明-簡(jiǎn)要說(shuō)明
dede_addonarticle 附加文章表格輔助 int(11) 文章編號 typeid int(11) 類(lèi)別列號正文 mediumtext 文章內容 dede_addonflash 附加 Flash 表格輔助 int( 11) FLASH number typeid int(11) Category column number filesize varchar(10) File size playtime varchar(10) Playing duration flashtype varchar(10)@ > 工作類(lèi)型 flashrank smallint(6) 工作排名 wid...
織夢(mèng)Dedecms主文件夾目錄及模板文件說(shuō)明
雖然織夢(mèng)Dedecms曾因為安全問(wèn)題飽受詬病,但漏洞并不能掩蓋漏洞。在用戶(hù)數量和時(shí)間方面,織夢(mèng)Dedecms是國內排名第一的幾款cms建站程序。想要學(xué)習cms的二次開(kāi)發(fā),必須學(xué)習織夢(mèng)Dedecms。對于織夢(mèng)Dede。以下是默認的織夢(mèng)Dedecms程序根目錄。
如何判斷網(wǎng)站織夢(mèng)Dedecms的版本
該方法可以確定目標網(wǎng)站使用的是哪個(gè)版本的織夢(mèng)Dedecms,以及應用補丁的日期。在官方版本的 URL 路徑后添加 /data/admin/ver.txt 附加歷史更新:2010-08-18 安全更新 2010-08-03 安全更新 20100708 是最新版本 5.6 20100324 是5.5 20100429及以后都是5.6版本,對應的日期就是補丁日期,可以知道哪些漏洞沒(méi)有修復5.6版本更新……
織夢(mèng)德德cms網(wǎng)站內部SEO詳解
一.確定網(wǎng)站關(guān)鍵詞的目標最重要的方面,一般網(wǎng)站首頁(yè)目標關(guān)鍵詞建議1-3個(gè)目標。對于目標關(guān)鍵詞@的選擇有幾個(gè)建議1.定位:網(wǎng)站內容和業(yè)務(wù)相關(guān)2.分析:用戶(hù)體驗和競爭對手的分析網(wǎng)站@ >3. 篩選:為了優(yōu)化,如果目標關(guān)鍵詞在前三個(gè)建議中都達不到,最好不要做,用戶(hù)目標不強,最好不要做它,并避免行業(yè)領(lǐng)導者的目標 網(wǎng)站關(guān)鍵詞 。二.寫(xiě)3個(gè)標簽1.標題標簽:2.關(guān)鍵詞標簽:3.描述標簽:關(guān)鍵詞2@>子導航網(wǎng)站二級導航就是加一行target<
織夢(mèng)德德cms技術(shù)資料
dedecms調用文章方法發(fā)布時(shí)間11-20 style([field:pubdate function='strftime("%m-%d",@me)'/]) 2009年5月15日 style ([field:pubdate function='strftime("%b %d, %Y",@me)'/]) 2009-12-27 18:30:02 style [field:pubdate function="GetDateTimeMK(@me) "/] 200…
織夢(mèng)Dedecms模板防盜的四種方法
織夢(mèng)(Dedecms) 模板也是一種財富。如果你不希望自己辛辛苦苦的模板被盜,如果網(wǎng)上有一些和自己一模一樣的網(wǎng)站,那就需要做好模板了。防小偷。本文采集自網(wǎng)上,但網(wǎng)絡(luò )版沒(méi)有提供通過(guò)Nginx 301重定向實(shí)現dedecms模板防盜和403文件禁止實(shí)現織夢(mèng)模板防盜的方法。以下是織夢(mèng)模板防盜的四種方法,希望對大家有所幫助。1.系統文件修復方法 系統文件修復方法 這個(gè)方法好像比較麻煩一點(diǎn)。也需要對織夢(mèng)(Dedecms)系統有一定的熟悉度,才建議這樣做……
熱點(diǎn)話(huà)題
SpringMVC上傳csv文件
使用 while 語(yǔ)句求 1 100 的累積和
如何檢索 git 已刪除工作區的內容
網(wǎng)易 duilib 運行 vs
2015無(wú)法卸載,提示安裝包丟失或損壞
grafana api獲取監視器圖像
Android googlemap 搜索附近
Android仿生開(kāi)源
ubuntu usb驅動(dòng)沒(méi)有權限
特征計數的注釋文件
ssh 連接到 linux
WPF序列化控制xaml
mssql 調試觸發(fā)器
如何解決source insight中文評論顯示亂碼
thinkphp5.1 加載資源文件常量
github android發(fā)光動(dòng)畫(huà)
DESTOON在后臺取shell
python中類(lèi)繼承對象和不繼承的區別
c# Lucene全文搜索
先docker mount再下載
推薦文章:紅隊信息搜集工具(附下載地址)
ratel(獾) 是一個(gè)由rust開(kāi)發(fā)的信息搜集工具,專(zhuān)注web資產(chǎn)發(fā)現,支持從fofa,zoomeye API查詢(xún),提供詳細的配置參數,可靠,可以從錯誤中恢復查詢(xún),自動(dòng)去重。
同時(shí)也支持主動(dòng)掃描端口,探測http,提取https證書(shū)中域名。
ratel 提供細粒度的http poc探測模塊,支持多請求的poc,利用自定義正則表達式提取響應內容并作為后續請求的變量。ratel輸出格式為csv。
下載及詳細用法地址:
好文推薦
歡迎關(guān)注 系統安全運維 查看全部
精選文章:【織夢(mèng)/dedecms 當文章轉載時(shí)不需要設置圖片水印的設置
織夢(mèng)dedecms縮寫(xiě)標題調用標簽使用指南
在使用織夢(mèng)DEDEcms建站的過(guò)程中,為了讓被調用的文章的標題簡(jiǎn)短而相對完整(原標題太長(cháng)),我們不得不使用調用縮寫(xiě)標題的方法,使標題顯示為短標題,指向標題時(shí)顯示完整標題。并得到文章的靜態(tài)地址鏈接我們來(lái)看看DEDE織夢(mèng)cms的簡(jiǎn)稱(chēng)調用方法: 使用的代碼如下: 復制代碼 代碼如下: {dede :arclist titlelen='60' orderby='pubdate' row='6' typeid='5'}
做好織夢(mèng)dedecms安全防護的所有方法
很多同學(xué)遇到網(wǎng)站被攻擊絞死,而且大部分都不是競爭對手做的。在大多數情況下,黑客使用工具對入侵進(jìn)行批量掃描。因此,安全防護非常重要??棄?mèng)安裝時(shí)注意:修改默認數據庫前綴:在安裝dedecms時(shí)修改數據庫的表前綴,盡量不要使用默認前綴dede_,改其他英文字母小寫(xiě)即可。防止黑客猜測。安裝完成后,去掉所有然后帶后門(mén)和漏洞1.修改默認后臺路徑: 功能:是為了防止黑客猜測你的后臺,進(jìn)行其他操作。進(jìn)入網(wǎng)站的根目錄,可以看到dede文件夾,重命名為But。比如改成禮三寶,
織夢(mèng)dedecms獲取當前頁(yè)面URL地址的調用方法
織夢(mèng)內容頁(yè)面如何調用當前頁(yè)面url?相信很多對織夢(mèng)感興趣的朋友都會(huì )考慮這個(gè)問(wèn)題:在文章的內容中加入本文的鏈接,除了保護自己的版權,還可以增加外鏈網(wǎng)站收錄。網(wǎng)上有很多帖子,但是大部分只能調用相對地址,還得在前面加一個(gè)網(wǎng)站域名,這個(gè)方法還可以,但是這個(gè)模板會(huì )鬧是用來(lái)建其他網(wǎng)站的,所以不可行??棄?mèng)dedecms獲取當前頁(yè)面URL地址的正確方法:在調用相對地址前添加網(wǎng)站根地址標簽{dede:global.cfg_basehost/}標簽。
織夢(mèng)dedecms數據庫結構字段說(shuō)明-簡(jiǎn)要說(shuō)明
dede_addonarticle 附加文章表格輔助 int(11) 文章編號 typeid int(11) 類(lèi)別列號正文 mediumtext 文章內容 dede_addonflash 附加 Flash 表格輔助 int( 11) FLASH number typeid int(11) Category column number filesize varchar(10) File size playtime varchar(10) Playing duration flashtype varchar(10)@ > 工作類(lèi)型 flashrank smallint(6) 工作排名 wid...
織夢(mèng)Dedecms主文件夾目錄及模板文件說(shuō)明
雖然織夢(mèng)Dedecms曾因為安全問(wèn)題飽受詬病,但漏洞并不能掩蓋漏洞。在用戶(hù)數量和時(shí)間方面,織夢(mèng)Dedecms是國內排名第一的幾款cms建站程序。想要學(xué)習cms的二次開(kāi)發(fā),必須學(xué)習織夢(mèng)Dedecms。對于織夢(mèng)Dede。以下是默認的織夢(mèng)Dedecms程序根目錄。
如何判斷網(wǎng)站織夢(mèng)Dedecms的版本
該方法可以確定目標網(wǎng)站使用的是哪個(gè)版本的織夢(mèng)Dedecms,以及應用補丁的日期。在官方版本的 URL 路徑后添加 /data/admin/ver.txt 附加歷史更新:2010-08-18 安全更新 2010-08-03 安全更新 20100708 是最新版本 5.6 20100324 是5.5 20100429及以后都是5.6版本,對應的日期就是補丁日期,可以知道哪些漏洞沒(méi)有修復5.6版本更新……
織夢(mèng)德德cms網(wǎng)站內部SEO詳解

一.確定網(wǎng)站關(guān)鍵詞的目標最重要的方面,一般網(wǎng)站首頁(yè)目標關(guān)鍵詞建議1-3個(gè)目標。對于目標關(guān)鍵詞@的選擇有幾個(gè)建議1.定位:網(wǎng)站內容和業(yè)務(wù)相關(guān)2.分析:用戶(hù)體驗和競爭對手的分析網(wǎng)站@ >3. 篩選:為了優(yōu)化,如果目標關(guān)鍵詞在前三個(gè)建議中都達不到,最好不要做,用戶(hù)目標不強,最好不要做它,并避免行業(yè)領(lǐng)導者的目標 網(wǎng)站關(guān)鍵詞 。二.寫(xiě)3個(gè)標簽1.標題標簽:2.關(guān)鍵詞標簽:3.描述標簽:關(guān)鍵詞2@>子導航網(wǎng)站二級導航就是加一行target<
織夢(mèng)德德cms技術(shù)資料
dedecms調用文章方法發(fā)布時(shí)間11-20 style([field:pubdate function='strftime("%m-%d",@me)'/]) 2009年5月15日 style ([field:pubdate function='strftime("%b %d, %Y",@me)'/]) 2009-12-27 18:30:02 style [field:pubdate function="GetDateTimeMK(@me) "/] 200…
織夢(mèng)Dedecms模板防盜的四種方法
織夢(mèng)(Dedecms) 模板也是一種財富。如果你不希望自己辛辛苦苦的模板被盜,如果網(wǎng)上有一些和自己一模一樣的網(wǎng)站,那就需要做好模板了。防小偷。本文采集自網(wǎng)上,但網(wǎng)絡(luò )版沒(méi)有提供通過(guò)Nginx 301重定向實(shí)現dedecms模板防盜和403文件禁止實(shí)現織夢(mèng)模板防盜的方法。以下是織夢(mèng)模板防盜的四種方法,希望對大家有所幫助。1.系統文件修復方法 系統文件修復方法 這個(gè)方法好像比較麻煩一點(diǎn)。也需要對織夢(mèng)(Dedecms)系統有一定的熟悉度,才建議這樣做……
熱點(diǎn)話(huà)題
SpringMVC上傳csv文件
使用 while 語(yǔ)句求 1 100 的累積和
如何檢索 git 已刪除工作區的內容
網(wǎng)易 duilib 運行 vs
2015無(wú)法卸載,提示安裝包丟失或損壞
grafana api獲取監視器圖像
Android googlemap 搜索附近

Android仿生開(kāi)源
ubuntu usb驅動(dòng)沒(méi)有權限
特征計數的注釋文件
ssh 連接到 linux
WPF序列化控制xaml
mssql 調試觸發(fā)器
如何解決source insight中文評論顯示亂碼
thinkphp5.1 加載資源文件常量
github android發(fā)光動(dòng)畫(huà)
DESTOON在后臺取shell
python中類(lèi)繼承對象和不繼承的區別
c# Lucene全文搜索
先docker mount再下載
推薦文章:紅隊信息搜集工具(附下載地址)
ratel(獾) 是一個(gè)由rust開(kāi)發(fā)的信息搜集工具,專(zhuān)注web資產(chǎn)發(fā)現,支持從fofa,zoomeye API查詢(xún),提供詳細的配置參數,可靠,可以從錯誤中恢復查詢(xún),自動(dòng)去重。
同時(shí)也支持主動(dòng)掃描端口,探測http,提取https證書(shū)中域名。

ratel 提供細粒度的http poc探測模塊,支持多請求的poc,利用自定義正則表達式提取響應內容并作為后續請求的變量。ratel輸出格式為csv。
下載及詳細用法地址:

好文推薦
歡迎關(guān)注 系統安全運維
解決方案:抖音數據采集教程,Android群控黑盒調用,Sekiro使用手冊
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 244 次瀏覽 ? 2022-09-27 17:15
抖音資料采集教程,Android群控黑盒調用,Sekiro手冊0x0前言
之前試過(guò)用virjar的hermesagent,后來(lái)老大基于長(cháng)鏈接迭代了一個(gè)新的只狼。我一直想看它,但被推遲了。今天正好抽空試了一下,順便寫(xiě)了個(gè)筆記。有錯誤。各位大俠請指正
0x1只狼簡(jiǎn)介
SEKIRO是android下的API服務(wù)暴露框架,可用于app反向、app數據抓取、android群控等場(chǎng)景
與其他群控框架相比,特點(diǎn)如下:
只狼架構
server:
暴露一個(gè)TCP端口和兩個(gè)HTTP端口
管理通過(guò)TCP連接的client和user發(fā)來(lái)的http 請求
client:
通過(guò)TCP和server連接,響應server發(fā)來(lái)的請求
工作流程是這樣的:
1. client通過(guò)TCP和server建立長(cháng)連接
2. user發(fā)送http請求給server
3. server根據用戶(hù)發(fā)來(lái)的http請求的參數,通過(guò)TCP將請求轉發(fā)給client
4. client收到請求并響應server
5. server將從client收到的請求返回給user
具體可以看項目的readme,很詳細:項目傳送門(mén)
0x2 服務(wù)器部署
server端在`sekiro-server/src/main/resources/appliation.properties`中可以配置三個(gè)服務(wù)端端口, 主要服務(wù)端安全策略的出入口需要開(kāi)放這個(gè)三個(gè)端口
#tomcat 占用端口
server.port=5602
#長(cháng)鏈接服務(wù)占用端口
natServerPort=5600
# 異步http占用端口
natHttpServerPort=5601
# websocket占用端口
webSocketServerPort=5603
如果自定義端口,client需要調用SekiroClient.start(String serverHost, int serverPort, final String clientID, String group)中去連接server
執行命令:./gradlew sekiro-server:bootJar 在 sekiro-server/build/libs/sekiro-server-0.0.1-SNAPSHOT.jar 中查找 all-in-one jar包
0x3 客戶(hù)端
public class MainActivity extends AppCompatActivity {
public static int Add(int n1, int n2)
{
return n1 + n2;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(MainActivity.this, "3 + 2 = " + Add(3, 2), Toast.LENGTH_LONG).show();
}
}
Log.i(TAG, "connect server....");
//服務(wù)端host
String testHost = "your_host";
//客戶(hù)端標識
String clientId = UUID.randomUUID().toString();
//接口組名稱(chēng)
String groupName = "addDemoTest2";
//暴露的接口名稱(chēng)
String actionName = "myAdd";
//拿classloader
clzLoader = lpparam.classLoader;
//連接服務(wù)端并且注冊處理的handler
SekiroClient.start(testHost, clientId, groupName)
.registerHandler(actionName, new SekiroRequestHandler(){
@Override
<p>
public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse){
//當服務(wù)端分配任務(wù)時(shí), 這里處理邏輯, 并把結果返回給服務(wù)端, 服務(wù)端再返回給調用者
Class clz = XposedHelpers.findClass("com.example.administrator.adddemo.MainActivity", clzLoader);
int arg1 = sekiroRequest.getInt("arg1");
int arg2 = sekiroRequest.getInt("arg2");
Log.i(TAG, String.format("arg1 : %d, arg2 : %d", arg1, arg2));
Object result = XposedHelpers.callStaticMethod(clz, "Add", arg1, arg2);
Log.i(TAG, "result : " + result);
sekiroResponse.success(result);
}
});</p>
//build.gradle里android{}添加錯誤的path
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/INDEX.LIST'
exclude ('META-INF/io.netty.versions.properties')
}
0x4 嘗試調用
格式: your_server_ip:[natHttpServerPort]/[invoke_type]?group=[group_id]&action=[action_name]¶m1=[arg]
例子: https://x.x.x.x:5602/asyncInvo ... 3D300
感謝和參考
只狼練習
更多短視頻數據實(shí)時(shí)采集接口請查看文檔:TiToData
免責聲明:本文檔僅供學(xué)習參考,請勿用于非法用途!否則后果自負。
程序員信標
轉載請注明原文鏈接:抖音資料采集教程、Android群控黑盒調用、Sekiro用戶(hù)手冊
教程:抖音采集工具更新了
我幾天前發(fā)布了這個(gè)工具,但是有人說(shuō)它不起作用,有人說(shuō)它不起作用。我今天查了一下。作者更新了,更新的工具更好用。作者軟件更新地址:,訪(fǎng)問(wèn)密碼:52pj
該軟件非常易于使用:
先復制抖音鏈接,然后點(diǎn)擊“添加采集”,將抖音鏈接復制進(jìn)去,點(diǎn)擊“保存”。
然后點(diǎn)擊“開(kāi)始采集”,軟件會(huì )自動(dòng)啟動(dòng)到采集,采集下載完成后會(huì )彈出完成對話(huà)框。
請說(shuō)明,我不是軟件作者,如果您對使用該軟件有任何疑問(wèn),請不要問(wèn)我。本軟件移至我愛(ài)論壇()。您可以在五愛(ài)論壇搜索“抖音采集tools”找到軟件作者。 查看全部
解決方案:抖音數據采集教程,Android群控黑盒調用,Sekiro使用手冊
抖音資料采集教程,Android群控黑盒調用,Sekiro手冊0x0前言
之前試過(guò)用virjar的hermesagent,后來(lái)老大基于長(cháng)鏈接迭代了一個(gè)新的只狼。我一直想看它,但被推遲了。今天正好抽空試了一下,順便寫(xiě)了個(gè)筆記。有錯誤。各位大俠請指正
0x1只狼簡(jiǎn)介
SEKIRO是android下的API服務(wù)暴露框架,可用于app反向、app數據抓取、android群控等場(chǎng)景
與其他群控框架相比,特點(diǎn)如下:
只狼架構
server:
暴露一個(gè)TCP端口和兩個(gè)HTTP端口
管理通過(guò)TCP連接的client和user發(fā)來(lái)的http 請求
client:
通過(guò)TCP和server連接,響應server發(fā)來(lái)的請求
工作流程是這樣的:
1. client通過(guò)TCP和server建立長(cháng)連接
2. user發(fā)送http請求給server
3. server根據用戶(hù)發(fā)來(lái)的http請求的參數,通過(guò)TCP將請求轉發(fā)給client
4. client收到請求并響應server
5. server將從client收到的請求返回給user
具體可以看項目的readme,很詳細:項目傳送門(mén)
0x2 服務(wù)器部署
server端在`sekiro-server/src/main/resources/appliation.properties`中可以配置三個(gè)服務(wù)端端口, 主要服務(wù)端安全策略的出入口需要開(kāi)放這個(gè)三個(gè)端口
#tomcat 占用端口
server.port=5602
#長(cháng)鏈接服務(wù)占用端口
natServerPort=5600
# 異步http占用端口
natHttpServerPort=5601
# websocket占用端口
webSocketServerPort=5603
如果自定義端口,client需要調用SekiroClient.start(String serverHost, int serverPort, final String clientID, String group)中去連接server
執行命令:./gradlew sekiro-server:bootJar 在 sekiro-server/build/libs/sekiro-server-0.0.1-SNAPSHOT.jar 中查找 all-in-one jar包

0x3 客戶(hù)端
public class MainActivity extends AppCompatActivity {
public static int Add(int n1, int n2)
{
return n1 + n2;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(MainActivity.this, "3 + 2 = " + Add(3, 2), Toast.LENGTH_LONG).show();
}
}
Log.i(TAG, "connect server....");
//服務(wù)端host
String testHost = "your_host";
//客戶(hù)端標識
String clientId = UUID.randomUUID().toString();
//接口組名稱(chēng)
String groupName = "addDemoTest2";
//暴露的接口名稱(chēng)
String actionName = "myAdd";
//拿classloader
clzLoader = lpparam.classLoader;
//連接服務(wù)端并且注冊處理的handler
SekiroClient.start(testHost, clientId, groupName)
.registerHandler(actionName, new SekiroRequestHandler(){
@Override
<p>

public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse){
//當服務(wù)端分配任務(wù)時(shí), 這里處理邏輯, 并把結果返回給服務(wù)端, 服務(wù)端再返回給調用者
Class clz = XposedHelpers.findClass("com.example.administrator.adddemo.MainActivity", clzLoader);
int arg1 = sekiroRequest.getInt("arg1");
int arg2 = sekiroRequest.getInt("arg2");
Log.i(TAG, String.format("arg1 : %d, arg2 : %d", arg1, arg2));
Object result = XposedHelpers.callStaticMethod(clz, "Add", arg1, arg2);
Log.i(TAG, "result : " + result);
sekiroResponse.success(result);
}
});</p>
//build.gradle里android{}添加錯誤的path
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/INDEX.LIST'
exclude ('META-INF/io.netty.versions.properties')
}
0x4 嘗試調用
格式: your_server_ip:[natHttpServerPort]/[invoke_type]?group=[group_id]&action=[action_name]¶m1=[arg]
例子: https://x.x.x.x:5602/asyncInvo ... 3D300
感謝和參考
只狼練習
更多短視頻數據實(shí)時(shí)采集接口請查看文檔:TiToData
免責聲明:本文檔僅供學(xué)習參考,請勿用于非法用途!否則后果自負。
程序員信標
轉載請注明原文鏈接:抖音資料采集教程、Android群控黑盒調用、Sekiro用戶(hù)手冊
教程:抖音采集工具更新了
我幾天前發(fā)布了這個(gè)工具,但是有人說(shuō)它不起作用,有人說(shuō)它不起作用。我今天查了一下。作者更新了,更新的工具更好用。作者軟件更新地址:,訪(fǎng)問(wèn)密碼:52pj

該軟件非常易于使用:
先復制抖音鏈接,然后點(diǎn)擊“添加采集”,將抖音鏈接復制進(jìn)去,點(diǎn)擊“保存”。

然后點(diǎn)擊“開(kāi)始采集”,軟件會(huì )自動(dòng)啟動(dòng)到采集,采集下載完成后會(huì )彈出完成對話(huà)框。
請說(shuō)明,我不是軟件作者,如果您對使用該軟件有任何疑問(wèn),請不要問(wèn)我。本軟件移至我愛(ài)論壇()。您可以在五愛(ài)論壇搜索“抖音采集tools”找到軟件作者。
技巧:Java性能分析神器-JProfiler詳解
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 165 次瀏覽 ? 2022-09-27 12:19
偶然在云棲社區發(fā)現有人推薦Jprofiler,我就安裝了版本使用。首先聲明本軟件為商用,不建議大家使用破解版!
讓我們開(kāi)始我們的 Jprofiler 之旅吧。
一.什么是JProfiler
JProfiler 是由 ej-technologies GmbH 開(kāi)發(fā)的性能瓶頸分析工具(該公司還開(kāi)發(fā)部署工具)。
特點(diǎn):
二.數據采集
Q1.既然JProfiler是一個(gè)性能瓶頸分析工具,那么這些分析的相關(guān)數據是從哪里來(lái)的呢?
Q2. JProfiler 如何采集和呈現這些數據?
A1.分析的數據主要來(lái)自以下兩部分
1.部分分析接口來(lái)自jvm **JVMTI**(JVM Tool Interface),JDK必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理函數。然后它可以啟用或禁用選定的事件
例如:對象生命周期、線(xiàn)程生命周期等信息
2.部分來(lái)自instruments類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計函數)
例如:方法執行時(shí)間、次數、方法棧等信息
A2.數據采集原理如圖2所示
1. 用戶(hù)在 JProfiler GUI 中發(fā)出監控命令(通常通過(guò)單擊按鈕)
2. JProfiler GUI JVM 通過(guò) socket(默認端口 8849).
向被分析 jvm 中的 JProfile Agent 發(fā)送指令
3. JProfiler Agent(如果對Agent不清楚,請看文章Part 3“啟動(dòng)模式”) 收到指令后,將指令轉換成相關(guān)事件或需要執行的指令被監聽(tīng)注冊去JVMTI或者直接讓JVMTI執行一個(gè)功能(比如dump jvm內存)
4. JVMTI 根據注冊的事件采集當前 jvm 的信息。例如:線(xiàn)程的生命周期; jvm的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;堆內存等實(shí)時(shí)信息。
5. JProfiler Agent 將 采集 好的信息保存在**內存**中,并按照一定的規則進(jìn)行統計(如果所有數據都發(fā)送到 JProfiler GUI 中,它會(huì )比較分析的應用網(wǎng)絡(luò )大影響)
6. 返回 JProfiler GUI Socket。
7. JProfiler GUI Socket 將接收到的信息返回給 JProfiler GUI Render
8. JProfiler GUI Render 渲染最終顯示效果
三.數據采集模式和啟動(dòng)模式
A1.JProfier采集有兩種方式:采樣(Sampling采集)和Instrumentation
注意:JProfiler 本身并不表示 采集 類(lèi)型的數據,這里的 采集 類(lèi)型是 采集 類(lèi)型用于方法調用。因為JProfiler的大部分核心功能都依賴(lài)于方法調用采集的數據,所以可以直接認為是JProfiler的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
四. JProfiler核心概念Filter:需要分析什么類(lèi)。收錄和不收錄兩種類(lèi)型的過(guò)濾器。
Profiling Settings: Receipt 采集 strategy: Sampling and Instrumentation, 部分數據采集細節可定制。
觸發(fā)器:一般在**離線(xiàn)**模式下使用,告訴JProfiler Agent什么時(shí)候觸發(fā)什么行為來(lái)采集指定信息。
Live memory:關(guān)于類(lèi)/類(lèi)實(shí)例的信息。比如對象的個(gè)數和大小,對象創(chuàng )建的方法執行棧,對象創(chuàng )建的熱點(diǎn)。
Heap walker:靜態(tài)分析一定時(shí)間內采集到的內存對象信息,功能強大,好用。收錄對象的傳出引用、傳入引用、最大對象等
CPU視圖:CPU消耗分布和時(shí)間(cpu時(shí)間或運行時(shí)間);方法執行圖;方法執行統計(最大值、最小值、平均運行時(shí)間等)
Thread:當前jvm所有線(xiàn)程的運行狀態(tài),持有鎖的線(xiàn)程的狀態(tài),可以dump線(xiàn)程。
監視器和鎖:所有線(xiàn)程都持有鎖和鎖信息
Telemetries:趨勢圖(遙測視圖),包括堆、線(xiàn)程、gc、類(lèi)等。
空間有限。我將在這里介紹jprofiler。以后會(huì )分享更多的工作內容。有興趣的朋友可以關(guān)注! !
技巧:如何寫(xiě)一篇高質(zhì)量有利于SEO優(yōu)化的文章?
做SEO不僅需要分析網(wǎng)站的結構、流量、關(guān)鍵詞、搜索引擎爬取等數據,SEO人經(jīng)常做的一件事就是定期發(fā)布和更新文章的內容。做SEO的都知道,發(fā)布的內容文章不能過(guò)多的復制粘貼別人的文章內容,這樣會(huì )讓搜索引擎覺(jué)得本站的內容已經(jīng)是別人的了,所以它不會(huì )訪(fǎng)問(wèn)該網(wǎng)站,該網(wǎng)站的內容也不會(huì )被抓取。如果過(guò)于頻繁地復制別人的信息,對SEO優(yōu)化是最不利的。所以,想要網(wǎng)站排名高且穩定,發(fā)布的文章肯定比原創(chuàng )文章好,偶爾有的偽原創(chuàng )也可以。
原創(chuàng )文章 夠用了,但是不明顯,如何快速寫(xiě)出有利于SEO的優(yōu)質(zhì)文章?寫(xiě)一個(gè) 文章 并不難,寫(xiě)一個(gè) 文章 既浪費時(shí)間又無(wú)聊,所以很多 SEO 很難堅持 原創(chuàng ) 的內容。但是,如果掌握好方法,對行業(yè)有深入的了解,參考一些好的同行網(wǎng)站文章,借鑒別人的寫(xiě)法,還是可以寫(xiě)出高質(zhì)量的對 SEO 有益的文章 文章 。跟著(zhù)雙思網(wǎng)小編一起來(lái)學(xué)習如何寫(xiě)出高質(zhì)量的SEO文章。
一、什么文章對SEO優(yōu)化好
1、段落清晰,文字間距合理,圖文協(xié)調。
2、文章邏輯清晰,對用戶(hù)有一定的價(jià)值,吸引用戶(hù)閱讀。
3、文章原創(chuàng ),有圖有文,有自己的看法。
4、主體清晰,關(guān)鍵詞合理部署文章。
5、文章清晰易讀。
如果你寫(xiě)SEO文章并按照上面的要求進(jìn)行編輯,對SEO優(yōu)化是非常有利的。文章原創(chuàng )、文章有價(jià)值,可以吸引用戶(hù)閱讀。這篇文章是 SEO文章 的核心。當然,如果想讓這個(gè)文章被搜索引擎抓取,有圖有文,合理的分布也是必不可少的。
二、如何快速寫(xiě)一篇SEO文章文章
1、了解行業(yè)
要想寫(xiě)出好的文章,就必須做市場(chǎng)調研,而好的SEO文章也離不開(kāi)對行業(yè)的了解。如果一個(gè)人連行業(yè)都不了解,很難寫(xiě)出適合這個(gè)行業(yè)的文章。而如果你不了解這個(gè)行業(yè),你就不知道用戶(hù)的需求在哪里。寫(xiě)文章就是為用戶(hù)寫(xiě),根據用戶(hù)的需要寫(xiě),讓文章能提升網(wǎng)站的質(zhì)量。
2、分析對等站點(diǎn)
寫(xiě)出高質(zhì)量的文章,離不開(kāi)分析同行的高質(zhì)量文章。我們可以分析同行文章的優(yōu)質(zhì)站點(diǎn),找到更多的同行文章進(jìn)行分析,整理成自己的想法,隨著(zhù)時(shí)間的推移形成自己的特色,這樣就可以快速寫(xiě)出優(yōu)質(zhì)文章文章。
3、文章標題
作為一名SEO文章,不僅內容精彩,標題也很重要。一個(gè)好的標題在SEO優(yōu)化中起著(zhù)至關(guān)重要的作用。對于用戶(hù)來(lái)說(shuō),一個(gè)好的文章標題可以吸引用戶(hù)閱讀。對于搜索引擎來(lái)說(shuō),一個(gè)好的標題對于搜索爬取排名至關(guān)重要,而關(guān)鍵詞布局至關(guān)重要。
4、段落清晰,邏輯清晰
一個(gè)好的文章必須有清晰的段落和邏輯思維。這樣,寫(xiě)一篇文章文章就變得簡(jiǎn)單了。如果你遵循邏輯思維,思維就會(huì )清晰,寫(xiě)文章的時(shí)間會(huì )變得更快。
5、關(guān)鍵詞布局
一個(gè)好的seo文章不同于平時(shí)的文章,seo文章要能夠被搜索引擎抓取,并給出排名來(lái)提高整體網(wǎng)站質(zhì)量,為此,寫(xiě)出來(lái)的文章也需要合理分配文章topics關(guān)鍵詞,這個(gè)關(guān)鍵詞可以告訴搜索引擎這個(gè)文章@的核心> 是什么。
6、插圖和文字
一個(gè)好的文章不可能全是文字,需要一張合理的圖片才能讓整個(gè)文章更加生動(dòng)。這樣的一段內容可以吸引用戶(hù)留下腳步和瀏覽。文章,可以證明用戶(hù)喜歡,用戶(hù)喜歡,搜索引擎喜歡,搜索引擎喜歡,自然排名還不錯,目的是提升網(wǎng)站@的整體排名> 可以實(shí)現。
綜上所述,通過(guò)這種方法,何愁寫(xiě)不出高質(zhì)量的SEO文章。簡(jiǎn)單來(lái)說(shuō),寫(xiě)一篇高質(zhì)量的文章文章需要符合用戶(hù)體驗,這樣文章才能吸引用戶(hù)閱讀,而了解用戶(hù)需求是seo的核心。 查看全部
技巧:Java性能分析神器-JProfiler詳解
偶然在云棲社區發(fā)現有人推薦Jprofiler,我就安裝了版本使用。首先聲明本軟件為商用,不建議大家使用破解版!
讓我們開(kāi)始我們的 Jprofiler 之旅吧。
一.什么是JProfiler
JProfiler 是由 ej-technologies GmbH 開(kāi)發(fā)的性能瓶頸分析工具(該公司還開(kāi)發(fā)部署工具)。
特點(diǎn):
二.數據采集
Q1.既然JProfiler是一個(gè)性能瓶頸分析工具,那么這些分析的相關(guān)數據是從哪里來(lái)的呢?
Q2. JProfiler 如何采集和呈現這些數據?
A1.分析的數據主要來(lái)自以下兩部分
1.部分分析接口來(lái)自jvm **JVMTI**(JVM Tool Interface),JDK必須>=1.6
JVMTI 是一個(gè)基于事件的系統。分析代理庫可以為不同的事件注冊處理函數。然后它可以啟用或禁用選定的事件
例如:對象生命周期、線(xiàn)程生命周期等信息
2.部分來(lái)自instruments類(lèi)(可以理解為類(lèi)的重寫(xiě),增加了JProfiler相關(guān)的統計函數)
例如:方法執行時(shí)間、次數、方法棧等信息
A2.數據采集原理如圖2所示

1. 用戶(hù)在 JProfiler GUI 中發(fā)出監控命令(通常通過(guò)單擊按鈕)
2. JProfiler GUI JVM 通過(guò) socket(默認端口 8849).
向被分析 jvm 中的 JProfile Agent 發(fā)送指令
3. JProfiler Agent(如果對Agent不清楚,請看文章Part 3“啟動(dòng)模式”) 收到指令后,將指令轉換成相關(guān)事件或需要執行的指令被監聽(tīng)注冊去JVMTI或者直接讓JVMTI執行一個(gè)功能(比如dump jvm內存)
4. JVMTI 根據注冊的事件采集當前 jvm 的信息。例如:線(xiàn)程的生命周期; jvm的生命周期;類(lèi)的生命周期;對象實(shí)例的生命周期;堆內存等實(shí)時(shí)信息。
5. JProfiler Agent 將 采集 好的信息保存在**內存**中,并按照一定的規則進(jìn)行統計(如果所有數據都發(fā)送到 JProfiler GUI 中,它會(huì )比較分析的應用網(wǎng)絡(luò )大影響)
6. 返回 JProfiler GUI Socket。
7. JProfiler GUI Socket 將接收到的信息返回給 JProfiler GUI Render
8. JProfiler GUI Render 渲染最終顯示效果
三.數據采集模式和啟動(dòng)模式
A1.JProfier采集有兩種方式:采樣(Sampling采集)和Instrumentation
注意:JProfiler 本身并不表示 采集 類(lèi)型的數據,這里的 采集 類(lèi)型是 采集 類(lèi)型用于方法調用。因為JProfiler的大部分核心功能都依賴(lài)于方法調用采集的數據,所以可以直接認為是JProfiler的數據采集類(lèi)型。
A2:?jiǎn)?dòng)模式:
四. JProfiler核心概念Filter:需要分析什么類(lèi)。收錄和不收錄兩種類(lèi)型的過(guò)濾器。

Profiling Settings: Receipt 采集 strategy: Sampling and Instrumentation, 部分數據采集細節可定制。
觸發(fā)器:一般在**離線(xiàn)**模式下使用,告訴JProfiler Agent什么時(shí)候觸發(fā)什么行為來(lái)采集指定信息。
Live memory:關(guān)于類(lèi)/類(lèi)實(shí)例的信息。比如對象的個(gè)數和大小,對象創(chuàng )建的方法執行棧,對象創(chuàng )建的熱點(diǎn)。
Heap walker:靜態(tài)分析一定時(shí)間內采集到的內存對象信息,功能強大,好用。收錄對象的傳出引用、傳入引用、最大對象等
CPU視圖:CPU消耗分布和時(shí)間(cpu時(shí)間或運行時(shí)間);方法執行圖;方法執行統計(最大值、最小值、平均運行時(shí)間等)
Thread:當前jvm所有線(xiàn)程的運行狀態(tài),持有鎖的線(xiàn)程的狀態(tài),可以dump線(xiàn)程。
監視器和鎖:所有線(xiàn)程都持有鎖和鎖信息
Telemetries:趨勢圖(遙測視圖),包括堆、線(xiàn)程、gc、類(lèi)等。
空間有限。我將在這里介紹jprofiler。以后會(huì )分享更多的工作內容。有興趣的朋友可以關(guān)注! !
技巧:如何寫(xiě)一篇高質(zhì)量有利于SEO優(yōu)化的文章?
做SEO不僅需要分析網(wǎng)站的結構、流量、關(guān)鍵詞、搜索引擎爬取等數據,SEO人經(jīng)常做的一件事就是定期發(fā)布和更新文章的內容。做SEO的都知道,發(fā)布的內容文章不能過(guò)多的復制粘貼別人的文章內容,這樣會(huì )讓搜索引擎覺(jué)得本站的內容已經(jīng)是別人的了,所以它不會(huì )訪(fǎng)問(wèn)該網(wǎng)站,該網(wǎng)站的內容也不會(huì )被抓取。如果過(guò)于頻繁地復制別人的信息,對SEO優(yōu)化是最不利的。所以,想要網(wǎng)站排名高且穩定,發(fā)布的文章肯定比原創(chuàng )文章好,偶爾有的偽原創(chuàng )也可以。
原創(chuàng )文章 夠用了,但是不明顯,如何快速寫(xiě)出有利于SEO的優(yōu)質(zhì)文章?寫(xiě)一個(gè) 文章 并不難,寫(xiě)一個(gè) 文章 既浪費時(shí)間又無(wú)聊,所以很多 SEO 很難堅持 原創(chuàng ) 的內容。但是,如果掌握好方法,對行業(yè)有深入的了解,參考一些好的同行網(wǎng)站文章,借鑒別人的寫(xiě)法,還是可以寫(xiě)出高質(zhì)量的對 SEO 有益的文章 文章 。跟著(zhù)雙思網(wǎng)小編一起來(lái)學(xué)習如何寫(xiě)出高質(zhì)量的SEO文章。
一、什么文章對SEO優(yōu)化好
1、段落清晰,文字間距合理,圖文協(xié)調。
2、文章邏輯清晰,對用戶(hù)有一定的價(jià)值,吸引用戶(hù)閱讀。
3、文章原創(chuàng ),有圖有文,有自己的看法。
4、主體清晰,關(guān)鍵詞合理部署文章。
5、文章清晰易讀。

如果你寫(xiě)SEO文章并按照上面的要求進(jìn)行編輯,對SEO優(yōu)化是非常有利的。文章原創(chuàng )、文章有價(jià)值,可以吸引用戶(hù)閱讀。這篇文章是 SEO文章 的核心。當然,如果想讓這個(gè)文章被搜索引擎抓取,有圖有文,合理的分布也是必不可少的。
二、如何快速寫(xiě)一篇SEO文章文章
1、了解行業(yè)
要想寫(xiě)出好的文章,就必須做市場(chǎng)調研,而好的SEO文章也離不開(kāi)對行業(yè)的了解。如果一個(gè)人連行業(yè)都不了解,很難寫(xiě)出適合這個(gè)行業(yè)的文章。而如果你不了解這個(gè)行業(yè),你就不知道用戶(hù)的需求在哪里。寫(xiě)文章就是為用戶(hù)寫(xiě),根據用戶(hù)的需要寫(xiě),讓文章能提升網(wǎng)站的質(zhì)量。
2、分析對等站點(diǎn)
寫(xiě)出高質(zhì)量的文章,離不開(kāi)分析同行的高質(zhì)量文章。我們可以分析同行文章的優(yōu)質(zhì)站點(diǎn),找到更多的同行文章進(jìn)行分析,整理成自己的想法,隨著(zhù)時(shí)間的推移形成自己的特色,這樣就可以快速寫(xiě)出優(yōu)質(zhì)文章文章。
3、文章標題
作為一名SEO文章,不僅內容精彩,標題也很重要。一個(gè)好的標題在SEO優(yōu)化中起著(zhù)至關(guān)重要的作用。對于用戶(hù)來(lái)說(shuō),一個(gè)好的文章標題可以吸引用戶(hù)閱讀。對于搜索引擎來(lái)說(shuō),一個(gè)好的標題對于搜索爬取排名至關(guān)重要,而關(guān)鍵詞布局至關(guān)重要。

4、段落清晰,邏輯清晰
一個(gè)好的文章必須有清晰的段落和邏輯思維。這樣,寫(xiě)一篇文章文章就變得簡(jiǎn)單了。如果你遵循邏輯思維,思維就會(huì )清晰,寫(xiě)文章的時(shí)間會(huì )變得更快。
5、關(guān)鍵詞布局
一個(gè)好的seo文章不同于平時(shí)的文章,seo文章要能夠被搜索引擎抓取,并給出排名來(lái)提高整體網(wǎng)站質(zhì)量,為此,寫(xiě)出來(lái)的文章也需要合理分配文章topics關(guān)鍵詞,這個(gè)關(guān)鍵詞可以告訴搜索引擎這個(gè)文章@的核心> 是什么。
6、插圖和文字
一個(gè)好的文章不可能全是文字,需要一張合理的圖片才能讓整個(gè)文章更加生動(dòng)。這樣的一段內容可以吸引用戶(hù)留下腳步和瀏覽。文章,可以證明用戶(hù)喜歡,用戶(hù)喜歡,搜索引擎喜歡,搜索引擎喜歡,自然排名還不錯,目的是提升網(wǎng)站@的整體排名> 可以實(shí)現。
綜上所述,通過(guò)這種方法,何愁寫(xiě)不出高質(zhì)量的SEO文章。簡(jiǎn)單來(lái)說(shuō),寫(xiě)一篇高質(zhì)量的文章文章需要符合用戶(hù)體驗,這樣文章才能吸引用戶(hù)閱讀,而了解用戶(hù)需求是seo的核心。
文章采集調用 深圳品牌推廣哪家好深圳品牌推廣哪里找
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 114 次瀏覽 ? 2022-09-20 21:39
隨著(zhù)百度的算法不斷更新,SEO站長(cháng)工具也對詞庫算法進(jìn)行了升級,細心的人們可能會(huì )發(fā)現,現在很多站點(diǎn)的詞庫都得到了大幅提升,并且排名也更加精準了,能給優(yōu)化人員們提供更精準的參考依據,那么在現今的優(yōu)化過(guò)程中,深圳網(wǎng)絡(luò )推廣又該如何通過(guò)堅持新的文章生成方法來(lái)讓流量暴漲呢?
1、自動(dòng)生成文章程序和樣板
通過(guò)自己寫(xiě)了個(gè)php自動(dòng)處理文章的程序,其原理就是自己動(dòng)手采集一些與關(guān)鍵詞相關(guān)的文章,然后通過(guò)PHP程序進(jìn)行以分號,句號等來(lái)分割成一句句話(huà),然后輸出到一個(gè)文本里面。然后通過(guò)另外一個(gè)php程序進(jìn)行隨機調用,形成每篇文章3個(gè)段落的模板。
2、大量拓展相關(guān)長(cháng)尾詞,堅持每日發(fā)布
深圳網(wǎng)絡(luò )推廣表示可以根據網(wǎng)站以及采集文章的主要核心內容,進(jìn)行挖掘相關(guān)關(guān)鍵詞,并進(jìn)行更合理的拓展,然后每天就堅持按照相關(guān)的關(guān)鍵詞長(cháng)尾詞做標題進(jìn)行更新網(wǎng)站,但也要注意進(jìn)行語(yǔ)句的檢查通順等。
現在做網(wǎng)站SEO優(yōu)化越來(lái)越不容易,競爭力也越來(lái)越大,深圳網(wǎng)絡(luò )推廣的優(yōu)化人員們也要不斷地學(xué)習和探索新的優(yōu)化方法,來(lái)對優(yōu)化進(jìn)行不斷地調整,幫助網(wǎng)站排名越來(lái)越好。 查看全部
文章采集調用 深圳品牌推廣哪家好深圳品牌推廣哪里找
隨著(zhù)百度的算法不斷更新,SEO站長(cháng)工具也對詞庫算法進(jìn)行了升級,細心的人們可能會(huì )發(fā)現,現在很多站點(diǎn)的詞庫都得到了大幅提升,并且排名也更加精準了,能給優(yōu)化人員們提供更精準的參考依據,那么在現今的優(yōu)化過(guò)程中,深圳網(wǎng)絡(luò )推廣又該如何通過(guò)堅持新的文章生成方法來(lái)讓流量暴漲呢?

1、自動(dòng)生成文章程序和樣板
通過(guò)自己寫(xiě)了個(gè)php自動(dòng)處理文章的程序,其原理就是自己動(dòng)手采集一些與關(guān)鍵詞相關(guān)的文章,然后通過(guò)PHP程序進(jìn)行以分號,句號等來(lái)分割成一句句話(huà),然后輸出到一個(gè)文本里面。然后通過(guò)另外一個(gè)php程序進(jìn)行隨機調用,形成每篇文章3個(gè)段落的模板。

2、大量拓展相關(guān)長(cháng)尾詞,堅持每日發(fā)布
深圳網(wǎng)絡(luò )推廣表示可以根據網(wǎng)站以及采集文章的主要核心內容,進(jìn)行挖掘相關(guān)關(guān)鍵詞,并進(jìn)行更合理的拓展,然后每天就堅持按照相關(guān)的關(guān)鍵詞長(cháng)尾詞做標題進(jìn)行更新網(wǎng)站,但也要注意進(jìn)行語(yǔ)句的檢查通順等。
現在做網(wǎng)站SEO優(yōu)化越來(lái)越不容易,競爭力也越來(lái)越大,深圳網(wǎng)絡(luò )推廣的優(yōu)化人員們也要不斷地學(xué)習和探索新的優(yōu)化方法,來(lái)對優(yōu)化進(jìn)行不斷地調整,幫助網(wǎng)站排名越來(lái)越好。
python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2022-09-17 09:01
文章采集調用十多個(gè)網(wǎng)站(包括個(gè)人博客)采集的內容,內容包括wp-cruiser爬蟲(chóng)基礎算法與深度學(xué)習+tensorflow機器學(xué)習。這里關(guān)于wp-cruiser安裝,這篇已經(jīng)有詳細介紹,網(wǎng)上有具體的安裝教程,可以搜索了解下。主要的原理是基于wp-cruiser算法實(shí)現的。我們更關(guān)心的是最終效果如何?源代碼和相關(guān)解釋在cookiefailures.py文件,放在我的github地址。
這個(gè)文件源碼,之前已經(jīng)放到github上,代碼打算公開(kāi),并統一按照doc格式提交。github地址:yaw-zhang/wp-cruiser項目部署請參考鏈接。
被采集對象(即知乎)采用多站點(diǎn)-多觸點(diǎn)方式進(jìn)行采集。本文已獲得作者授權,希望對學(xué)習python爬蟲(chóng)或者python爬蟲(chóng)開(kāi)發(fā)感興趣的朋友,能夠認真閱讀本文,在這里把本人的總結提煉下,分享給大家。python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰。整理與實(shí)戰可以加入爬蟲(chóng)開(kāi)發(fā)從0到1的實(shí)戰訓練營(yíng),有興趣的同學(xué),可以加入。
一.思維導圖本項目整體結構為:urllib/requests庫獲取登錄頁(yè)面的url,利用beautifulsoup庫解析頁(yè)面獲取行政區劃信息gb/tm字段解析與組合批量采集行政區劃信息selenium庫用于模擬登錄抓取頁(yè)面bs4解析頁(yè)面頁(yè)面vs.post請求,爬蟲(chóng)的正確姿勢及爬蟲(chóng)開(kāi)發(fā)框架與任務(wù)分配。二.本文主要解決幾個(gè)問(wèn)題1.爬蟲(chóng)采集哪些網(wǎng)站?2.爬蟲(chóng)如何解析頁(yè)面?3.如何將爬取到的網(wǎng)站頁(yè)面在requests中封裝為field?三.實(shí)現結構1.urllib庫登錄/授權/登錄方式(ssl,和session,cookie)2.beautifulsoup庫爬取/解析請求相關(guān)頁(yè)面3.爬蟲(chóng)解析爬取頁(yè)面4.抓取登錄頁(yè)面5.獲取授權登錄頁(yè)面6.獲取行政區劃信息/local_map頁(yè)面7.抓取獲取group_name頁(yè)面8.抓取獲取指定區劃頁(yè)面9.爬取post請求信息的信息。
5.有幾個(gè)請求?分別包括哪些參數,請求會(huì )不會(huì )被封ip?6.請求參數中傳遞了哪些參數?請求間有什么聯(lián)系?7.登錄登錄成功返回url請求后還是不能登錄或者登錄成功后不能解析頁(yè)面.登錄成功后會(huì )不會(huì )成功授權獲取登錄相關(guān)信息然后就不能登錄,或者授權獲取之后又不能抓取相關(guān)信息等問(wèn)題.1.用登錄登錄看似簡(jiǎn)單,但是爬蟲(chóng)未必好爬取,畢竟不是全自動(dòng)登錄。
一般采用幾種:初始化自動(dòng)登錄;二次登錄第三方登錄;手動(dòng)登錄+授權登錄。2.獲取登錄頁(yè)面,一般根據瀏覽器實(shí)現,分為基于get請求登錄和post請求登錄。舉個(gè)例子:requests請求登錄,要做的事情,比如設置頭、響應驗證碼、驗證碼破解等,數據格式是xml,所以需要轉成json。并且會(huì )生成封裝的x。 查看全部
python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰
文章采集調用十多個(gè)網(wǎng)站(包括個(gè)人博客)采集的內容,內容包括wp-cruiser爬蟲(chóng)基礎算法與深度學(xué)習+tensorflow機器學(xué)習。這里關(guān)于wp-cruiser安裝,這篇已經(jīng)有詳細介紹,網(wǎng)上有具體的安裝教程,可以搜索了解下。主要的原理是基于wp-cruiser算法實(shí)現的。我們更關(guān)心的是最終效果如何?源代碼和相關(guān)解釋在cookiefailures.py文件,放在我的github地址。

這個(gè)文件源碼,之前已經(jīng)放到github上,代碼打算公開(kāi),并統一按照doc格式提交。github地址:yaw-zhang/wp-cruiser項目部署請參考鏈接。
被采集對象(即知乎)采用多站點(diǎn)-多觸點(diǎn)方式進(jìn)行采集。本文已獲得作者授權,希望對學(xué)習python爬蟲(chóng)或者python爬蟲(chóng)開(kāi)發(fā)感興趣的朋友,能夠認真閱讀本文,在這里把本人的總結提煉下,分享給大家。python網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)之爬蟲(chóng)的開(kāi)發(fā)--整理與實(shí)戰。整理與實(shí)戰可以加入爬蟲(chóng)開(kāi)發(fā)從0到1的實(shí)戰訓練營(yíng),有興趣的同學(xué),可以加入。

一.思維導圖本項目整體結構為:urllib/requests庫獲取登錄頁(yè)面的url,利用beautifulsoup庫解析頁(yè)面獲取行政區劃信息gb/tm字段解析與組合批量采集行政區劃信息selenium庫用于模擬登錄抓取頁(yè)面bs4解析頁(yè)面頁(yè)面vs.post請求,爬蟲(chóng)的正確姿勢及爬蟲(chóng)開(kāi)發(fā)框架與任務(wù)分配。二.本文主要解決幾個(gè)問(wèn)題1.爬蟲(chóng)采集哪些網(wǎng)站?2.爬蟲(chóng)如何解析頁(yè)面?3.如何將爬取到的網(wǎng)站頁(yè)面在requests中封裝為field?三.實(shí)現結構1.urllib庫登錄/授權/登錄方式(ssl,和session,cookie)2.beautifulsoup庫爬取/解析請求相關(guān)頁(yè)面3.爬蟲(chóng)解析爬取頁(yè)面4.抓取登錄頁(yè)面5.獲取授權登錄頁(yè)面6.獲取行政區劃信息/local_map頁(yè)面7.抓取獲取group_name頁(yè)面8.抓取獲取指定區劃頁(yè)面9.爬取post請求信息的信息。
5.有幾個(gè)請求?分別包括哪些參數,請求會(huì )不會(huì )被封ip?6.請求參數中傳遞了哪些參數?請求間有什么聯(lián)系?7.登錄登錄成功返回url請求后還是不能登錄或者登錄成功后不能解析頁(yè)面.登錄成功后會(huì )不會(huì )成功授權獲取登錄相關(guān)信息然后就不能登錄,或者授權獲取之后又不能抓取相關(guān)信息等問(wèn)題.1.用登錄登錄看似簡(jiǎn)單,但是爬蟲(chóng)未必好爬取,畢竟不是全自動(dòng)登錄。
一般采用幾種:初始化自動(dòng)登錄;二次登錄第三方登錄;手動(dòng)登錄+授權登錄。2.獲取登錄頁(yè)面,一般根據瀏覽器實(shí)現,分為基于get請求登錄和post請求登錄。舉個(gè)例子:requests請求登錄,要做的事情,比如設置頭、響應驗證碼、驗證碼破解等,數據格式是xml,所以需要轉成json。并且會(huì )生成封裝的x。
文章采集調用 外貿b2b海外采購退稅c2c收款行香港對公賬戶(hù)提現
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2022-09-16 14:04
文章采集調用固定ip,但是不能采集國內外的信息,需要采集國外的信息是因為,開(kāi)通外貿b2b海外采購退稅提供中國的站點(diǎn),能實(shí)現支付寶跨境收款,將國外收取到的款項通過(guò)支付寶轉到國內賬戶(hù),實(shí)現c2c收款方式,那么,
1、在產(chǎn)品詳情頁(yè)面,
2、填寫(xiě)收款公司,
3、填寫(xiě)收款金額
4、填寫(xiě)收款賬號信息
5、填寫(xiě)收款公司郵箱,請告知對方郵箱地址,
6、確認后,即可收款國外網(wǎng)站的款項,并且無(wú)法將款項退回國內對賬戶(hù)。
需要謹慎操作,
1、國外收款公司是否與amazon、亞馬遜,
2、國外收款公司提供的銀行賬號信息,
3、國外收款公司提供的收款賬號,是否為visa、mastercard等國際收單公司,
4、國外收款公司的提現賬號信息是否一致
5、國外收款公司是否支持中國賣(mài)家賬號提現
6、國外收款公司的官網(wǎng)有無(wú)支付寶收款二維碼
我們是可以支持香港云平臺收款的。收款行香港對公賬戶(hù),云平臺會(huì )給推薦多家香港銀行機構的合作資格。國內支付平臺收款也支持香港對公賬戶(hù)提現到公司賬戶(hù),國內不支持跨境支付。 查看全部
文章采集調用 外貿b2b海外采購退稅c2c收款行香港對公賬戶(hù)提現
文章采集調用固定ip,但是不能采集國內外的信息,需要采集國外的信息是因為,開(kāi)通外貿b2b海外采購退稅提供中國的站點(diǎn),能實(shí)現支付寶跨境收款,將國外收取到的款項通過(guò)支付寶轉到國內賬戶(hù),實(shí)現c2c收款方式,那么,
1、在產(chǎn)品詳情頁(yè)面,
2、填寫(xiě)收款公司,
3、填寫(xiě)收款金額

4、填寫(xiě)收款賬號信息
5、填寫(xiě)收款公司郵箱,請告知對方郵箱地址,
6、確認后,即可收款國外網(wǎng)站的款項,并且無(wú)法將款項退回國內對賬戶(hù)。
需要謹慎操作,
1、國外收款公司是否與amazon、亞馬遜,

2、國外收款公司提供的銀行賬號信息,
3、國外收款公司提供的收款賬號,是否為visa、mastercard等國際收單公司,
4、國外收款公司的提現賬號信息是否一致
5、國外收款公司是否支持中國賣(mài)家賬號提現
6、國外收款公司的官網(wǎng)有無(wú)支付寶收款二維碼
我們是可以支持香港云平臺收款的。收款行香港對公賬戶(hù),云平臺會(huì )給推薦多家香港銀行機構的合作資格。國內支付平臺收款也支持香港對公賬戶(hù)提現到公司賬戶(hù),國內不支持跨境支付。
Golang性能分析工具pprof使用總結
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 105 次瀏覽 ? 2022-08-31 10:01
pprof是Golang自帶的一款開(kāi)箱即用的性能監控和分析工具, 使用非常簡(jiǎn)單方便。
1. pprof使用
pprof使用主要有兩種方式,一種是在項目中導入runtime/pprof,另一種是導入net/http/pprof, 兩者的差異如下:
使用示例如下:
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />
package main<br /><br />import (<br /> "fmt"<br /> "os"<br /> "runtime/pprof"<br /> "time"<br />)<br /><br />func main() {<br /> // 創(chuàng )建分析文件<br /> file, err := os.Create("./cpu.prof")<br /> if err != nil {<br /> fmt.Printf("創(chuàng )建采集文件失敗, err:%v\n", err)<br /> return<br /> }<br /><br /> // 進(jìn)行cpu數據的獲取<br /> pprof.StartCPUProfile(file)<br /> defer pprof.StopCPUProfile()<br /><br /> time.Sleep(10 * time.Second)<br />}<br /><br />
之后通過(guò)命令行分析cpu.prof文件進(jìn)行性能分析,由于該方式使用不多,這里不進(jìn)行深度總結,感興趣可以查閱相關(guān)文章,這次我們重點(diǎn)總結http形式采集數據。
http形式使用十分簡(jiǎn)單,importnet/http/pprof即可,會(huì )自動(dòng)調用package里面的init方法,進(jìn)行初始化,如下:
1<br />2<br />3<br />4<br />5<br />
import _ "net/http/pprof"<br /><br />go func() {<br /> http.ListenAndServe("localhost:8080", nil)<br />}()
之后就可以通過(guò):8080/debug/pprof/[類(lèi)型]獲取對應的采樣數據。支持的”[類(lèi)型]”有:
類(lèi)型描述
allocs
內存分配情況的采樣信息
blocks
阻塞操作情況的采樣信息
cmdline
顯示程序啟動(dòng)命令參數及其參數
goroutine
顯示當前所有協(xié)程的堆棧信息
heap
堆上的內存分配情況的采樣信息
mutex
鎖競爭情況的采樣信息
profile
cpu占用情況的采樣信息,點(diǎn)擊會(huì )下載文件
threadcreate
系統線(xiàn)程創(chuàng )建情況的采樣信息
trace
程序運行跟蹤信息
重點(diǎn)我們關(guān)注以下幾種類(lèi)型:
2. 分析實(shí)踐2.1 CPU使用分析
通過(guò)以下命令分析CPU使用情況。
1<br />
go tool pprof http://localhost:8080/debug/pprof/profile
等待30秒后,執行top命令可以看到如下結果:
先簡(jiǎn)單了解一下結果中flat,sum,cum的含義:
類(lèi)型描述舉例
flat
該函數占用CPU的耗時(shí)
selectnbrecv占用CPU的耗時(shí)是12.29s
flat%
該函數占用CPU的耗時(shí)的百分比
selectnbrecv耗時(shí):12.29s,cpu總耗時(shí):29.14,12.29/29.14=42.18
sum%
top命令中排在它上面的函數以及本函數flat%之和
chanrecv:42.18%+30.47% = 72.65%
cum
當前函數加上該函數調用之前的累計CPU耗時(shí)
chanrecv:8.88+0.54=9.42
cum%
當前函數加上該函數調用之前的累計CPU耗時(shí)的百分比
9.42/29.14=32.33%
通過(guò)以上結果,我們可以看到占用CPU比較高的方法,接下來(lái)可以通過(guò)list WirteString(list+方法名)查看占用CPU最高的方法代碼明細:
通過(guò)代碼明細我們可以看到,字符串拼接占用的CPU資源最多,可以針對這行代碼進(jìn)行優(yōu)化。
2.2 內存使用分析
內存使用分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊heap標簽進(jìn)行查看,如下:
直接在網(wǎng)頁(yè)上查看并不是特別便利,一般情況下我們采用go tool pprof命令下載Profile采樣文件進(jìn)行可視化分析, 可采用如下命令:
1<br />
go tool pprof --http=:1234 go tool pprof http://localhost:8080/debug/pprof/heap<br />
以上命令會(huì )打開(kāi)一個(gè)網(wǎng)頁(yè),頁(yè)面效果如下:
左上的下拉條可以選擇不同的可視化方式查看不同的數據:
選項卡SAMPLE中space相關(guān)是展示內存大小,單位是Byte;而objects相關(guān)展示的對象,單位是個(gè),是有差異的。例如inuse_space展示的是現在正在使用的內存,被分配但是還沒(méi)有被釋放,alloc_space展示的是程序啟動(dòng)到現在的分配內存,包括那些已經(jīng)被釋放的內存,我們一般用這個(gè)來(lái)定位代碼中創(chuàng )建臨時(shí)變量的大戶(hù);
通過(guò)VIEW選項卡,我們可以切換不同的視圖形式來(lái)查看分析結果。
Top
源碼形式
火焰圖形式
2.3 協(xié)程分析
協(xié)程分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊goroutine標簽進(jìn)行查看, 也可以采用go tool pprof命令下載采樣文件進(jìn)行可視化分析。
在goroutine分析頁(yè)面我們可以看到協(xié)程數量和每個(gè)方法產(chǎn)生的協(xié)程數量。
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />
goroutine profile: total 108<br />83 @ 0x438196 0x40666c 0x406098 0xc10cbd 0x4687c1<br /># 0xc10cbc jzserver/core/os/gtimer.(*Timer).loop.func1+0x7c /Documents/gotest/core/os/gtimer/gtimer_timer_loop.go:15<br /><br />11 @ 0x438196 0x447f32 0x91ac0c 0x4687c1<br /># 0x91ac0b jzserver/core/net/gnet.(*MsgHandler).startOneWorker+0xab /Documents/gotest/core/net/gnet/gnet_msg_handler.go:76<br /><br />1 @ 0x40bb54 0x464f18 0xc13279 0x4687c1<br /># 0x464f17 os/signal.signal_recv+0x97 /go/go1.17.6/src/runtime/sigqueue.go:169<br /># 0xc13278 os/signal.loop+0x18 /go/go1.17.6/src/os/signal/signal_unix.go:24<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1509c 0xd8a1a5 0x437dc7 0x4687c1<br /># 0xc1509b jzserver/main/internal.WaitStopSignal+0xbb /Documents/gotest/main/internal/signal.go:15<br /># 0xd8a1a4 main.main+0x144 /Documents/gotest/main/game_server.go:75<br /># 0x437dc6 runtime.main+0x226 /go/go1.17.6/src/runtime/proc.go:255<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1536c 0x4687c1<br /># 0xc1536b jzserver/main/internal.WaitReloadConfigSignal.func1+0x2b /Documents/gotest/main/internal/signal.go:47<br /><br />1 @ 0x438196 0x40666c 0x4060d8 0xc45431 0x4687c1<br /># 0xc45430 jzserver/core/net/gwebsocket.(*Server).Run+0x30 /Documents/gotest/core/net/gwebsocket/gwebsocket_server.go:152<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x4abb3a 0xc0c1d3 0xc0c1ae 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x4abb39 io.ReadAtLeast+0x99 /go/go1.17.6/src/io/io.go:328<br /># 0xc0c1d2 io.ReadFull+0x132 /go/go1.17.6/src/io/io.go:347<br /># 0xc0c1ad jzserver/core/net/gtcp.(*Connection).StartReader+0x10d /Documents/gotest/core/net/gtcp/gtcp_connection.go:100<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x6c57df 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x6c57de net/http.(*connReader).backgroundRead+0x3e /go/go1.17.6/src/net/http/server.go:672<br /><br />
我們將鏈接后面的debug=1改為debug=2(以unrecovered panic的格式打印堆棧,可讀性更高),可以見(jiàn)到各協(xié)程等待時(shí)長(cháng),可用于分析goroutine泄漏
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />
goroutine 57914819 [running]:<br />runtime/pprof.writeGoroutineStacks({0x10a4760, 0xc000990fc0})<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:693 +0x70<br />runtime/pprof.writeGoroutine({0x10a4760, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:682 +0x2b<br />runtime/pprof.(*Profile).WriteTo(0xeadca0, {0x10a4760, 0xc000990fc0}, 0xc)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:331 +0x14b<br />net/http/pprof.handler.ServeHTTP({0xc000952191, 0x1822580}, {0x10bd528, 0xc000990fc0}, 0xc000952184)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:253 +0x49a<br />net/http/pprof.Index({0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:371 +0x12e<br />net/http.HandlerFunc.ServeHTTP(0x0, {0x10bd528, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/net/http/server.go:2047 +0x2f<br />net/http.(*ServeMux).ServeHTTP(0xc00095219b, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2425 +0x149<br />net/http.serverHandler.ServeHTTP({0xc00168d800}, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2879 +0x43b<br />net/http.(*conn).serve(0xc0015f5220, {0x10c06c0, 0xc000472210})<br /> /gotest/go1.17.6/src/net/http/server.go:1930 +0xb08<br />created by net/http.(*Server).Serve<br /> /gotest/go1.17.6/src/net/http/server.go:3034 +0x4e8<br /><br />goroutine 1 [chan receive, 7547 minutes]:<br />jzserver/main/internal.WaitStopSignal()<br /> /gotest/main/internal/signal.go:15 +0xbc<br />main.main()<br /> /gotest/main/game_server.go:75 +0x145<br /><br />goroutine 50 [select, 48 minutes]:<br />database/sql.(*DB).connectionCleaner(0xc0000a24e0, 0xc0001ca8d0)<br /> /gotest/go1.17.6/src/database/sql/sql.go:1068 +0xbd<br />created by database/sql.(*DB).startCleanerLocked<br /> /gotest/go1.17.6/src/database/sql/sql.go:1055 +0x105<br /><br />goroutine 49 [chan receive]:<br />jzserver/core/os/gtimer.(*Timer).loop.func1()<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:15 +0x7d<br />created by jzserver/core/os/gtimer.(*Timer).loop<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:7 +0x5b<br /><br />goroutine 6 [select, 7547 minutes]:<br />database/sql.(*DB).connectionOpener(0xc0000a24e0, {0x10c0618, 0xc00021c440})<br /> /gotest/go1.17.6/src/database/sql/sql.go:1196 +0x93<br />created by database/sql.OpenDB<br /> /gotest/go1.17.6/src/database/sql/sql.go:794 +0x188
3. 其他總結
1<br />
brew install graphviz<br />
其他系統安裝參考Graphviz Download。 查看全部
Golang性能分析工具pprof使用總結
pprof是Golang自帶的一款開(kāi)箱即用的性能監控和分析工具, 使用非常簡(jiǎn)單方便。
1. pprof使用
pprof使用主要有兩種方式,一種是在項目中導入runtime/pprof,另一種是導入net/http/pprof, 兩者的差異如下:
使用示例如下:
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />
package main<br /><br />import (<br /> "fmt"<br /> "os"<br /> "runtime/pprof"<br /> "time"<br />)<br /><br />func main() {<br /> // 創(chuàng )建分析文件<br /> file, err := os.Create("./cpu.prof")<br /> if err != nil {<br /> fmt.Printf("創(chuàng )建采集文件失敗, err:%v\n", err)<br /> return<br /> }<br /><br /> // 進(jìn)行cpu數據的獲取<br /> pprof.StartCPUProfile(file)<br /> defer pprof.StopCPUProfile()<br /><br /> time.Sleep(10 * time.Second)<br />}<br /><br />
之后通過(guò)命令行分析cpu.prof文件進(jìn)行性能分析,由于該方式使用不多,這里不進(jìn)行深度總結,感興趣可以查閱相關(guān)文章,這次我們重點(diǎn)總結http形式采集數據。
http形式使用十分簡(jiǎn)單,importnet/http/pprof即可,會(huì )自動(dòng)調用package里面的init方法,進(jìn)行初始化,如下:
1<br />2<br />3<br />4<br />5<br />
import _ "net/http/pprof"<br /><br />go func() {<br /> http.ListenAndServe("localhost:8080", nil)<br />}()
之后就可以通過(guò):8080/debug/pprof/[類(lèi)型]獲取對應的采樣數據。支持的”[類(lèi)型]”有:
類(lèi)型描述
allocs
內存分配情況的采樣信息
blocks
阻塞操作情況的采樣信息
cmdline
顯示程序啟動(dòng)命令參數及其參數
goroutine
顯示當前所有協(xié)程的堆棧信息
heap
堆上的內存分配情況的采樣信息
mutex
鎖競爭情況的采樣信息
profile
cpu占用情況的采樣信息,點(diǎn)擊會(huì )下載文件
threadcreate
系統線(xiàn)程創(chuàng )建情況的采樣信息
trace
程序運行跟蹤信息

重點(diǎn)我們關(guān)注以下幾種類(lèi)型:
2. 分析實(shí)踐2.1 CPU使用分析
通過(guò)以下命令分析CPU使用情況。
1<br />
go tool pprof http://localhost:8080/debug/pprof/profile
等待30秒后,執行top命令可以看到如下結果:
先簡(jiǎn)單了解一下結果中flat,sum,cum的含義:
類(lèi)型描述舉例
flat
該函數占用CPU的耗時(shí)
selectnbrecv占用CPU的耗時(shí)是12.29s
flat%
該函數占用CPU的耗時(shí)的百分比
selectnbrecv耗時(shí):12.29s,cpu總耗時(shí):29.14,12.29/29.14=42.18
sum%
top命令中排在它上面的函數以及本函數flat%之和
chanrecv:42.18%+30.47% = 72.65%
cum
當前函數加上該函數調用之前的累計CPU耗時(shí)
chanrecv:8.88+0.54=9.42
cum%
當前函數加上該函數調用之前的累計CPU耗時(shí)的百分比
9.42/29.14=32.33%
通過(guò)以上結果,我們可以看到占用CPU比較高的方法,接下來(lái)可以通過(guò)list WirteString(list+方法名)查看占用CPU最高的方法代碼明細:
通過(guò)代碼明細我們可以看到,字符串拼接占用的CPU資源最多,可以針對這行代碼進(jìn)行優(yōu)化。
2.2 內存使用分析
內存使用分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊heap標簽進(jìn)行查看,如下:

直接在網(wǎng)頁(yè)上查看并不是特別便利,一般情況下我們采用go tool pprof命令下載Profile采樣文件進(jìn)行可視化分析, 可采用如下命令:
1<br />
go tool pprof --http=:1234 go tool pprof http://localhost:8080/debug/pprof/heap<br />
以上命令會(huì )打開(kāi)一個(gè)網(wǎng)頁(yè),頁(yè)面效果如下:
左上的下拉條可以選擇不同的可視化方式查看不同的數據:
選項卡SAMPLE中space相關(guān)是展示內存大小,單位是Byte;而objects相關(guān)展示的對象,單位是個(gè),是有差異的。例如inuse_space展示的是現在正在使用的內存,被分配但是還沒(méi)有被釋放,alloc_space展示的是程序啟動(dòng)到現在的分配內存,包括那些已經(jīng)被釋放的內存,我們一般用這個(gè)來(lái)定位代碼中創(chuàng )建臨時(shí)變量的大戶(hù);
通過(guò)VIEW選項卡,我們可以切換不同的視圖形式來(lái)查看分析結果。
Top
源碼形式
火焰圖形式
2.3 協(xié)程分析
協(xié)程分析我們可以直接在網(wǎng)頁(yè)上點(diǎn)擊goroutine標簽進(jìn)行查看, 也可以采用go tool pprof命令下載采樣文件進(jìn)行可視化分析。
在goroutine分析頁(yè)面我們可以看到協(xié)程數量和每個(gè)方法產(chǎn)生的協(xié)程數量。
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />
goroutine profile: total 108<br />83 @ 0x438196 0x40666c 0x406098 0xc10cbd 0x4687c1<br /># 0xc10cbc jzserver/core/os/gtimer.(*Timer).loop.func1+0x7c /Documents/gotest/core/os/gtimer/gtimer_timer_loop.go:15<br /><br />11 @ 0x438196 0x447f32 0x91ac0c 0x4687c1<br /># 0x91ac0b jzserver/core/net/gnet.(*MsgHandler).startOneWorker+0xab /Documents/gotest/core/net/gnet/gnet_msg_handler.go:76<br /><br />1 @ 0x40bb54 0x464f18 0xc13279 0x4687c1<br /># 0x464f17 os/signal.signal_recv+0x97 /go/go1.17.6/src/runtime/sigqueue.go:169<br /># 0xc13278 os/signal.loop+0x18 /go/go1.17.6/src/os/signal/signal_unix.go:24<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1509c 0xd8a1a5 0x437dc7 0x4687c1<br /># 0xc1509b jzserver/main/internal.WaitStopSignal+0xbb /Documents/gotest/main/internal/signal.go:15<br /># 0xd8a1a4 main.main+0x144 /Documents/gotest/main/game_server.go:75<br /># 0x437dc6 runtime.main+0x226 /go/go1.17.6/src/runtime/proc.go:255<br /><br />1 @ 0x438196 0x40666c 0x406098 0xc1536c 0x4687c1<br /># 0xc1536b jzserver/main/internal.WaitReloadConfigSignal.func1+0x2b /Documents/gotest/main/internal/signal.go:47<br /><br />1 @ 0x438196 0x40666c 0x4060d8 0xc45431 0x4687c1<br /># 0xc45430 jzserver/core/net/gwebsocket.(*Server).Run+0x30 /Documents/gotest/core/net/gwebsocket/gwebsocket_server.go:152<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x4abb3a 0xc0c1d3 0xc0c1ae 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x4abb39 io.ReadAtLeast+0x99 /go/go1.17.6/src/io/io.go:328<br /># 0xc0c1d2 io.ReadFull+0x132 /go/go1.17.6/src/io/io.go:347<br /># 0xc0c1ad jzserver/core/net/gtcp.(*Connection).StartReader+0x10d /Documents/gotest/core/net/gtcp/gtcp_connection.go:100<br /><br />1 @ 0x438196 0x430813 0x463069 0x4cecf2 0x4d005a 0x4d0048 0x5f5829 0x602685 0x6c57df 0x4687c1<br /># 0x463068 internal/poll.runtime_pollWait+0x88 /go/go1.17.6/src/runtime/netpoll.go:234<br /># 0x4cecf1 internal/poll.(*pollDesc).wait+0x31 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:84<br /># 0x4d0059 internal/poll.(*pollDesc).waitRead+0x259 /go/go1.17.6/src/internal/poll/fd_poll_runtime.go:89<br /># 0x4d0047 internal/poll.(*FD).Read+0x247 /go/go1.17.6/src/internal/poll/fd_unix.go:167<br /># 0x5f5828 net.(*netFD).Read+0x28 /go/go1.17.6/src/net/fd_posix.go:56<br /># 0x602684 net.(*conn).Read+0x44 /go/go1.17.6/src/net/net.go:183<br /># 0x6c57de net/http.(*connReader).backgroundRead+0x3e /go/go1.17.6/src/net/http/server.go:672<br /><br />
我們將鏈接后面的debug=1改為debug=2(以unrecovered panic的格式打印堆棧,可讀性更高),可以見(jiàn)到各協(xié)程等待時(shí)長(cháng),可用于分析goroutine泄漏
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />
goroutine 57914819 [running]:<br />runtime/pprof.writeGoroutineStacks({0x10a4760, 0xc000990fc0})<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:693 +0x70<br />runtime/pprof.writeGoroutine({0x10a4760, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:682 +0x2b<br />runtime/pprof.(*Profile).WriteTo(0xeadca0, {0x10a4760, 0xc000990fc0}, 0xc)<br /> /gotest/go1.17.6/src/runtime/pprof/pprof.go:331 +0x14b<br />net/http/pprof.handler.ServeHTTP({0xc000952191, 0x1822580}, {0x10bd528, 0xc000990fc0}, 0xc000952184)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:253 +0x49a<br />net/http/pprof.Index({0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/pprof/pprof.go:371 +0x12e<br />net/http.HandlerFunc.ServeHTTP(0x0, {0x10bd528, 0xc000990fc0}, 0x0)<br /> /gotest/go1.17.6/src/net/http/server.go:2047 +0x2f<br />net/http.(*ServeMux).ServeHTTP(0xc00095219b, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2425 +0x149<br />net/http.serverHandler.ServeHTTP({0xc00168d800}, {0x10bd528, 0xc000990fc0}, 0xc000ca8300)<br /> /gotest/go1.17.6/src/net/http/server.go:2879 +0x43b<br />net/http.(*conn).serve(0xc0015f5220, {0x10c06c0, 0xc000472210})<br /> /gotest/go1.17.6/src/net/http/server.go:1930 +0xb08<br />created by net/http.(*Server).Serve<br /> /gotest/go1.17.6/src/net/http/server.go:3034 +0x4e8<br /><br />goroutine 1 [chan receive, 7547 minutes]:<br />jzserver/main/internal.WaitStopSignal()<br /> /gotest/main/internal/signal.go:15 +0xbc<br />main.main()<br /> /gotest/main/game_server.go:75 +0x145<br /><br />goroutine 50 [select, 48 minutes]:<br />database/sql.(*DB).connectionCleaner(0xc0000a24e0, 0xc0001ca8d0)<br /> /gotest/go1.17.6/src/database/sql/sql.go:1068 +0xbd<br />created by database/sql.(*DB).startCleanerLocked<br /> /gotest/go1.17.6/src/database/sql/sql.go:1055 +0x105<br /><br />goroutine 49 [chan receive]:<br />jzserver/core/os/gtimer.(*Timer).loop.func1()<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:15 +0x7d<br />created by jzserver/core/os/gtimer.(*Timer).loop<br /> /gotest/core/os/gtimer/gtimer_timer_loop.go:7 +0x5b<br /><br />goroutine 6 [select, 7547 minutes]:<br />database/sql.(*DB).connectionOpener(0xc0000a24e0, {0x10c0618, 0xc00021c440})<br /> /gotest/go1.17.6/src/database/sql/sql.go:1196 +0x93<br />created by database/sql.OpenDB<br /> /gotest/go1.17.6/src/database/sql/sql.go:794 +0x188
3. 其他總結
1<br />
brew install graphviz<br />
其他系統安裝參考Graphviz Download。
你有真正了解過(guò)國產(chǎn)開(kāi)源框架APM工具——SkyWalking技術(shù)有多牛嗎
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 139 次瀏覽 ? 2022-08-31 09:56
◆SkyWalking技術(shù)
SkyWalking是國內一個(gè)開(kāi)源并提交到Apache孵化器的產(chǎn)品,是用于收集、分析、聚合、可視化來(lái)自不同服務(wù)和本地基礎服務(wù)的數據的可視化的平臺。SkyWalking提供了一個(gè)可以對分布式系統甚至是跨云服務(wù)有清晰了解的簡(jiǎn)單方法。SkyWalking符合OpenTracing規范,同時(shí)提供更加現代化、炫酷的UI,可以更加直觀(guān)地監控應用。SkyWalking的官方架構如下圖所示。
整個(gè)系統分為三部分。
SkyWalking符合OpenTracing規范,調用鏈采集數據格式如下。
◆SkyWalking接入介紹
Idea本地啟動(dòng):
使用jar方式啟動(dòng):
SkyWalking的TraceID與日志組件(Log4j、Logback、ELK等)的集成:
SkyWalking的頁(yè)面展示,以及整體服務(wù)調用情況統計DashBoard,如下圖所示。
調用鏈詳細信息展示,如下圖所示。
監 控 系 統 按 照 原 理 和 作 用 大 致 可 以 分 為 三 類(lèi) :度 量 類(lèi)(Metrics)、日志類(lèi)(Log)、調用鏈類(lèi)(Tracing)。對于不同的監控對象和監控數據類(lèi)型,需要采用對應的技術(shù)棧和監控手段。對于Spring Boot微服務(wù)架構,除了開(kāi)發(fā)框架自帶的生產(chǎn)就緒組件能夠支持服務(wù)的健康狀態(tài)指標查詢(xún),我們還需要引入第三方ELK框架作為日志監控組件,與Zipkin和SkyWalking等組件共同實(shí)現調用鏈監控。 查看全部
你有真正了解過(guò)國產(chǎn)開(kāi)源框架APM工具——SkyWalking技術(shù)有多牛嗎
◆SkyWalking技術(shù)
SkyWalking是國內一個(gè)開(kāi)源并提交到Apache孵化器的產(chǎn)品,是用于收集、分析、聚合、可視化來(lái)自不同服務(wù)和本地基礎服務(wù)的數據的可視化的平臺。SkyWalking提供了一個(gè)可以對分布式系統甚至是跨云服務(wù)有清晰了解的簡(jiǎn)單方法。SkyWalking符合OpenTracing規范,同時(shí)提供更加現代化、炫酷的UI,可以更加直觀(guān)地監控應用。SkyWalking的官方架構如下圖所示。
整個(gè)系統分為三部分。
SkyWalking符合OpenTracing規范,調用鏈采集數據格式如下。

◆SkyWalking接入介紹
Idea本地啟動(dòng):
使用jar方式啟動(dòng):

SkyWalking的TraceID與日志組件(Log4j、Logback、ELK等)的集成:
SkyWalking的頁(yè)面展示,以及整體服務(wù)調用情況統計DashBoard,如下圖所示。
調用鏈詳細信息展示,如下圖所示。
監 控 系 統 按 照 原 理 和 作 用 大 致 可 以 分 為 三 類(lèi) :度 量 類(lèi)(Metrics)、日志類(lèi)(Log)、調用鏈類(lèi)(Tracing)。對于不同的監控對象和監控數據類(lèi)型,需要采用對應的技術(shù)棧和監控手段。對于Spring Boot微服務(wù)架構,除了開(kāi)發(fā)框架自帶的生產(chǎn)就緒組件能夠支持服務(wù)的健康狀態(tài)指標查詢(xún),我們還需要引入第三方ELK框架作為日志監控組件,與Zipkin和SkyWalking等組件共同實(shí)現調用鏈監控。
【實(shí)務(wù)操作】外部數據:用信息不對稱(chēng)解決審計信息不對稱(chēng)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-08-23 13:40
導讀
數字化審計的基石
數據是數字化審計的基石,思路實(shí)現、模型訓練、結果驗證、問(wèn)題支撐等都離不開(kāi)數據。
數據都是從具體的活動(dòng)或場(chǎng)景中產(chǎn)生后,通過(guò)各種技術(shù)抽取、存儲下來(lái)的。
數據抽取過(guò)程是降維的過(guò)程,剝離了場(chǎng)景的細節,而審計人員分析和應用數據的過(guò)程是個(gè)升維的過(guò)程,基于個(gè)人能力、判斷和模型假設等進(jìn)行場(chǎng)景還原。這個(gè)還原過(guò)程,很容易受到審計人員個(gè)人主觀(guān)經(jīng)驗和經(jīng)歷的影響。
正確認識數據、準確判斷數據來(lái)源、客觀(guān)評價(jià)數據價(jià)值,對數字化審計工作很重要。
是否具有對數據所在場(chǎng)景的認知,數據的來(lái)源是否可靠等等,對審計分析或風(fēng)險判斷的全面性、準確性影響很大。
從內部審計的角度,數據按照來(lái)源的不同可以分為內部數據和外部數據。
1內部數據
內部數據是公司內部的經(jīng)營(yíng)管理過(guò)程中生成的數據,一般來(lái)自于業(yè)務(wù)系統、數據倉庫、被審計對象提供的數據包等。
在數字化審計過(guò)程中,內部數據面臨的最大難點(diǎn)是如何克服“數據孤島”,進(jìn)行字段映射,多源數據融合。
2外部數據
外部數據是公司經(jīng)營(yíng)管理之外及所處環(huán)境中相關(guān)的數據。
外部數據主要來(lái)源有互聯(lián)網(wǎng)上的以網(wǎng)頁(yè)形式展現的公開(kāi)信息、開(kāi)源數據集、商業(yè)付費數據和政府開(kāi)放共享的數據。
利用信息不對稱(chēng)
由于行為主體根據不同的目的,總是會(huì )選擇不同的信息展現方式,不同的方式和內容間存在的差異就是矛盾所在,也就是審計可以關(guān)注的觸點(diǎn)。
在數字化審計過(guò)程中,外部數據可以幫助審計人員擴展信息的邊界。
很多時(shí)候利用行為主體在內外部數據中表現出來(lái)的不對稱(chēng),通過(guò)外部數據和內部數據的交叉驗證、“碰庫”,往往會(huì )有很多重要發(fā)現。
舉個(gè)例子,倉庫的保管員在從倉庫中順出重要零配件或成品時(shí),會(huì )最大程度掩蓋信息,不讓人知道其拿出的產(chǎn)品名稱(chēng)、規格型號等。但其順出成品的目的是為了出售獲利,在閑魚(yú)等二手交易平臺上,其會(huì )選擇最大程度展現信息,吸引更多的賣(mài)家。
注意到這個(gè)信息不對稱(chēng)的情況,就可以使用網(wǎng)頁(yè)數據采集工具從二手交易平臺上獲得相關(guān)公司產(chǎn)品的交易情況,內外部數據相結合,反向進(jìn)行追蹤。
網(wǎng)頁(yè)背后的“交互”
1所見(jiàn)
當我們在瀏覽器(Edge、Firefox、Chrome、Safari等)地址欄中輸入一個(gè)網(wǎng)址后,瀏覽器就向目標網(wǎng)站的Web服務(wù)器發(fā)出一個(gè)HTTP報文請求(Request),目標網(wǎng)站的Web服務(wù)器經(jīng)過(guò)校驗確認是一個(gè)正常的請求后,將請求的頁(yè)面文件(包含圖片、鏈接等資源)返回給瀏覽器(Response),瀏覽器收到返回的數據后,調用網(wǎng)頁(yè)文件解析內核進(jìn)行渲染,顯示在瀏覽器窗口中。
?。▓D源:wiki)
打開(kāi)瀏覽器如Edge,按F12鍵(其他瀏覽器也是這個(gè)快捷鍵),進(jìn)入瀏覽器的“開(kāi)發(fā)人員工具”界面。
在瀏覽器窗口的右側就會(huì )出現“開(kāi)發(fā)人員工具”操作區域,在這個(gè)區域中可以瀏覽、跟蹤、調試、分析瀏覽器和Web服務(wù)器的HTTP報文交互。
HTTP報文一般可以分為報文首部(Header)和報文主體(Body)兩塊。報文首部包含Web服務(wù)器或瀏覽器需處理的請求或響應的內容及屬性。
2所得
瀏覽器返回的是一個(gè)超文本標記語(yǔ)言(HyperText Markup Language,HTML)文件(或動(dòng)態(tài)頁(yè)面文件),實(shí)際是文本型的文件。
瀏覽器頁(yè)面右鍵“查看頁(yè)面源代碼”,可以看到文本形式展現的信息。如下圖所示:
?。▓D源:《數字化審計實(shí)務(wù)指南》)
如何從網(wǎng)站返回的各類(lèi)文件中(HTML、PDF、Word等)獲取信息記錄,可參見(jiàn)“看得到,取得到,才是數據”系列推文。
如何獲取外部數據
理論上,在符合數據安全保護等法律法規的前提下,所有在瀏覽器中看到的信息都可以自動(dòng)采集下來(lái)。
但網(wǎng)站的web服務(wù)器技術(shù)千變萬(wàn)化,大多數網(wǎng)站都不是靜態(tài)網(wǎng)頁(yè),信息的采集也需要平衡工具采購、代碼開(kāi)發(fā)需要的時(shí)間和對數據分析的價(jià)值。
外部數據的獲取,根據來(lái)源的不同有信息采集、API接口調用、離線(xiàn)下載和付費購買(mǎi)。
無(wú)論哪一種形式,在獲取過(guò)程中都需要注意遵守《數據安全管理辦法》等相關(guān)的法律法規,需要注意涉及個(gè)人信息的隱私安全保護。
1使用信息采集工具
網(wǎng)頁(yè)信息采集工具非常豐富,各有各的特色。對于比較規范、常規的網(wǎng)頁(yè),信息采集工具是個(gè)時(shí)效比非常高的選擇。
開(kāi)源的網(wǎng)頁(yè)信息采集工具有Heritrix、Hawk( Advanced Crawler& ETL tool written in C#/WPF )等。在線(xiàn)的網(wǎng)頁(yè)信息采集工具有ParseHub等。
可以免費使用部分功能的商業(yè)網(wǎng)頁(yè)信息采集工具有優(yōu)采云、優(yōu)采云、集搜客(GooSeeker)、優(yōu)采云采集等等。
以下的介紹僅僅是個(gè)人使用操作描述,不涉及商業(yè)推廣,不構成推薦建議。
作為后起之秀,優(yōu)采云采集號稱(chēng)“小白神器!”、“前谷歌技術(shù)團隊傾力打造,基于人工智能技術(shù),只需輸入網(wǎng)址就能自動(dòng)識別采集內容”。
?。▓D源:)
優(yōu)采云采集器提供智能模式和流程圖模式兩種操作模式。
智能模式下,只需要輸入首頁(yè)網(wǎng)址,軟件就能智能識別網(wǎng)頁(yè)上的列表(li)、表格(table)、鏈接(a)、圖片(img)等元素,實(shí)現一鍵采集,對常見(jiàn)的網(wǎng)站信息采集比較方便。
流程圖模式下,按照人為瀏覽網(wǎng)頁(yè)的操作方式,通過(guò)軟件自動(dòng)識別和操作提示選擇的方式,自動(dòng)生成采集規則。
如,設置優(yōu)采云采集器打開(kāi)一個(gè)行政處罰公告列表頁(yè)面,軟件會(huì )自動(dòng)識別頁(yè)面上的列表鏈接、翻頁(yè)鏈接,提示選擇是否循環(huán)點(diǎn)擊列表、是否自動(dòng)翻頁(yè),點(diǎn)擊列表鏈接后,自動(dòng)打開(kāi)處罰公告的詳細內容頁(yè)面,然后根據要素點(diǎn)擊選擇需要提取的信息。做完這幾步,就可以生成當前網(wǎng)站的采集規則。
流程圖模式下,軟件還可以模擬人瀏覽網(wǎng)頁(yè)的動(dòng)作,比如輸入文本、點(diǎn)擊按鈕、滾動(dòng)頁(yè)面、等待加載等。
優(yōu)采云采集器目前也支持免費導出全量采集結果。采集結果可以以TXT、EXCEL、CSV和HTML等文件格式導出到本地,也可以直接發(fā)布到MySQL、MongoDB、SQL Server等數據庫中。 查看全部
【實(shí)務(wù)操作】外部數據:用信息不對稱(chēng)解決審計信息不對稱(chēng)
導讀
數字化審計的基石
數據是數字化審計的基石,思路實(shí)現、模型訓練、結果驗證、問(wèn)題支撐等都離不開(kāi)數據。
數據都是從具體的活動(dòng)或場(chǎng)景中產(chǎn)生后,通過(guò)各種技術(shù)抽取、存儲下來(lái)的。
數據抽取過(guò)程是降維的過(guò)程,剝離了場(chǎng)景的細節,而審計人員分析和應用數據的過(guò)程是個(gè)升維的過(guò)程,基于個(gè)人能力、判斷和模型假設等進(jìn)行場(chǎng)景還原。這個(gè)還原過(guò)程,很容易受到審計人員個(gè)人主觀(guān)經(jīng)驗和經(jīng)歷的影響。
正確認識數據、準確判斷數據來(lái)源、客觀(guān)評價(jià)數據價(jià)值,對數字化審計工作很重要。
是否具有對數據所在場(chǎng)景的認知,數據的來(lái)源是否可靠等等,對審計分析或風(fēng)險判斷的全面性、準確性影響很大。
從內部審計的角度,數據按照來(lái)源的不同可以分為內部數據和外部數據。
1內部數據
內部數據是公司內部的經(jīng)營(yíng)管理過(guò)程中生成的數據,一般來(lái)自于業(yè)務(wù)系統、數據倉庫、被審計對象提供的數據包等。
在數字化審計過(guò)程中,內部數據面臨的最大難點(diǎn)是如何克服“數據孤島”,進(jìn)行字段映射,多源數據融合。
2外部數據
外部數據是公司經(jīng)營(yíng)管理之外及所處環(huán)境中相關(guān)的數據。
外部數據主要來(lái)源有互聯(lián)網(wǎng)上的以網(wǎng)頁(yè)形式展現的公開(kāi)信息、開(kāi)源數據集、商業(yè)付費數據和政府開(kāi)放共享的數據。
利用信息不對稱(chēng)

由于行為主體根據不同的目的,總是會(huì )選擇不同的信息展現方式,不同的方式和內容間存在的差異就是矛盾所在,也就是審計可以關(guān)注的觸點(diǎn)。
在數字化審計過(guò)程中,外部數據可以幫助審計人員擴展信息的邊界。
很多時(shí)候利用行為主體在內外部數據中表現出來(lái)的不對稱(chēng),通過(guò)外部數據和內部數據的交叉驗證、“碰庫”,往往會(huì )有很多重要發(fā)現。
舉個(gè)例子,倉庫的保管員在從倉庫中順出重要零配件或成品時(shí),會(huì )最大程度掩蓋信息,不讓人知道其拿出的產(chǎn)品名稱(chēng)、規格型號等。但其順出成品的目的是為了出售獲利,在閑魚(yú)等二手交易平臺上,其會(huì )選擇最大程度展現信息,吸引更多的賣(mài)家。
注意到這個(gè)信息不對稱(chēng)的情況,就可以使用網(wǎng)頁(yè)數據采集工具從二手交易平臺上獲得相關(guān)公司產(chǎn)品的交易情況,內外部數據相結合,反向進(jìn)行追蹤。
網(wǎng)頁(yè)背后的“交互”
1所見(jiàn)
當我們在瀏覽器(Edge、Firefox、Chrome、Safari等)地址欄中輸入一個(gè)網(wǎng)址后,瀏覽器就向目標網(wǎng)站的Web服務(wù)器發(fā)出一個(gè)HTTP報文請求(Request),目標網(wǎng)站的Web服務(wù)器經(jīng)過(guò)校驗確認是一個(gè)正常的請求后,將請求的頁(yè)面文件(包含圖片、鏈接等資源)返回給瀏覽器(Response),瀏覽器收到返回的數據后,調用網(wǎng)頁(yè)文件解析內核進(jìn)行渲染,顯示在瀏覽器窗口中。
?。▓D源:wiki)
打開(kāi)瀏覽器如Edge,按F12鍵(其他瀏覽器也是這個(gè)快捷鍵),進(jìn)入瀏覽器的“開(kāi)發(fā)人員工具”界面。
在瀏覽器窗口的右側就會(huì )出現“開(kāi)發(fā)人員工具”操作區域,在這個(gè)區域中可以瀏覽、跟蹤、調試、分析瀏覽器和Web服務(wù)器的HTTP報文交互。
HTTP報文一般可以分為報文首部(Header)和報文主體(Body)兩塊。報文首部包含Web服務(wù)器或瀏覽器需處理的請求或響應的內容及屬性。
2所得
瀏覽器返回的是一個(gè)超文本標記語(yǔ)言(HyperText Markup Language,HTML)文件(或動(dòng)態(tài)頁(yè)面文件),實(shí)際是文本型的文件。
瀏覽器頁(yè)面右鍵“查看頁(yè)面源代碼”,可以看到文本形式展現的信息。如下圖所示:
?。▓D源:《數字化審計實(shí)務(wù)指南》)
如何從網(wǎng)站返回的各類(lèi)文件中(HTML、PDF、Word等)獲取信息記錄,可參見(jiàn)“看得到,取得到,才是數據”系列推文。

如何獲取外部數據
理論上,在符合數據安全保護等法律法規的前提下,所有在瀏覽器中看到的信息都可以自動(dòng)采集下來(lái)。
但網(wǎng)站的web服務(wù)器技術(shù)千變萬(wàn)化,大多數網(wǎng)站都不是靜態(tài)網(wǎng)頁(yè),信息的采集也需要平衡工具采購、代碼開(kāi)發(fā)需要的時(shí)間和對數據分析的價(jià)值。
外部數據的獲取,根據來(lái)源的不同有信息采集、API接口調用、離線(xiàn)下載和付費購買(mǎi)。
無(wú)論哪一種形式,在獲取過(guò)程中都需要注意遵守《數據安全管理辦法》等相關(guān)的法律法規,需要注意涉及個(gè)人信息的隱私安全保護。
1使用信息采集工具
網(wǎng)頁(yè)信息采集工具非常豐富,各有各的特色。對于比較規范、常規的網(wǎng)頁(yè),信息采集工具是個(gè)時(shí)效比非常高的選擇。
開(kāi)源的網(wǎng)頁(yè)信息采集工具有Heritrix、Hawk( Advanced Crawler& ETL tool written in C#/WPF )等。在線(xiàn)的網(wǎng)頁(yè)信息采集工具有ParseHub等。
可以免費使用部分功能的商業(yè)網(wǎng)頁(yè)信息采集工具有優(yōu)采云、優(yōu)采云、集搜客(GooSeeker)、優(yōu)采云采集等等。
以下的介紹僅僅是個(gè)人使用操作描述,不涉及商業(yè)推廣,不構成推薦建議。
作為后起之秀,優(yōu)采云采集號稱(chēng)“小白神器!”、“前谷歌技術(shù)團隊傾力打造,基于人工智能技術(shù),只需輸入網(wǎng)址就能自動(dòng)識別采集內容”。
?。▓D源:)
優(yōu)采云采集器提供智能模式和流程圖模式兩種操作模式。
智能模式下,只需要輸入首頁(yè)網(wǎng)址,軟件就能智能識別網(wǎng)頁(yè)上的列表(li)、表格(table)、鏈接(a)、圖片(img)等元素,實(shí)現一鍵采集,對常見(jiàn)的網(wǎng)站信息采集比較方便。
流程圖模式下,按照人為瀏覽網(wǎng)頁(yè)的操作方式,通過(guò)軟件自動(dòng)識別和操作提示選擇的方式,自動(dòng)生成采集規則。
如,設置優(yōu)采云采集器打開(kāi)一個(gè)行政處罰公告列表頁(yè)面,軟件會(huì )自動(dòng)識別頁(yè)面上的列表鏈接、翻頁(yè)鏈接,提示選擇是否循環(huán)點(diǎn)擊列表、是否自動(dòng)翻頁(yè),點(diǎn)擊列表鏈接后,自動(dòng)打開(kāi)處罰公告的詳細內容頁(yè)面,然后根據要素點(diǎn)擊選擇需要提取的信息。做完這幾步,就可以生成當前網(wǎng)站的采集規則。
流程圖模式下,軟件還可以模擬人瀏覽網(wǎng)頁(yè)的動(dòng)作,比如輸入文本、點(diǎn)擊按鈕、滾動(dòng)頁(yè)面、等待加載等。
優(yōu)采云采集器目前也支持免費導出全量采集結果。采集結果可以以TXT、EXCEL、CSV和HTML等文件格式導出到本地,也可以直接發(fā)布到MySQL、MongoDB、SQL Server等數據庫中。
文章采集調用的主要有以下四種:apidebugremoteformgov包完成簡(jiǎn)單的文章抓取
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 116 次瀏覽 ? 2022-08-21 12:02
文章采集調用的api主要有以下四種:apidebugremoteformgov開(kāi)發(fā)時(shí),一般建議這四種api都先完整的實(shí)現一下。本文就使用apidebug包完成簡(jiǎn)單的文章抓取。效果如下:基于apidebug包,目前已經(jīng)實(shí)現了:最新tip文章抓取結果-tips注:tips包是更新版本,抓取時(shí)需要更新包,具體更新方法網(wǎng)上很多,我這里就不贅述了。
<p>2.建立抓取文章的表格,即“//content”表,并給出主要的文章id、string、書(shū)籍id、手機號碼,這個(gè)代碼網(wǎng)上已經(jīng)有不少人實(shí)現過(guò)了。3.本文中,這個(gè)表格只用到了apidebug包中的api函數,即getunspiderinstance(),具體對應的api函數如下:voidgetunspiderinstance(contextcontext){longstirrate=(long)getunspider.run(context);if(stirrate 查看全部
文章采集調用的主要有以下四種:apidebugremoteformgov包完成簡(jiǎn)單的文章抓取

文章采集調用的api主要有以下四種:apidebugremoteformgov開(kāi)發(fā)時(shí),一般建議這四種api都先完整的實(shí)現一下。本文就使用apidebug包完成簡(jiǎn)單的文章抓取。效果如下:基于apidebug包,目前已經(jīng)實(shí)現了:最新tip文章抓取結果-tips注:tips包是更新版本,抓取時(shí)需要更新包,具體更新方法網(wǎng)上很多,我這里就不贅述了。

<p>2.建立抓取文章的表格,即“//content”表,并給出主要的文章id、string、書(shū)籍id、手機號碼,這個(gè)代碼網(wǎng)上已經(jīng)有不少人實(shí)現過(guò)了。3.本文中,這個(gè)表格只用到了apidebug包中的api函數,即getunspiderinstance(),具體對應的api函數如下:voidgetunspiderinstance(contextcontext){longstirrate=(long)getunspider.run(context);if(stirrate


