国产免费牲交视频无遮挡_偷偷鲁视频成人免费视频_中文无码 日韩精品_曰韩无码人妻中文字幕

其他新聞

其他新聞

python做網(wǎng)站更新監(jiān)控(python定時(shí)爬取網(wǎng)站更新)

時(shí)間:2023-11-28 信途科技其他新聞

  借助這份對初學(xué)者友好的指南,您可以構(gòu)建自己的自定義Python腳本來自動測量網(wǎng)站的關(guān)鍵速度和性能指標(biāo)。

  在過去的一個(gè)月中,Google宣布了許多通過關(guān)鍵速度和性能指標(biāo)來衡量用戶體驗(yàn)的方法。

  巧合的是,我一直在努力編寫一個(gè)Python腳本,該腳本使用Google PageSpeed Insights(PSI)API一次收集多個(gè)頁面的指標(biāo),而無需為每個(gè)單獨(dú)的URL運(yùn)行測試。

  收到Google的公告后,我認(rèn)為現(xiàn)在是共享它的絕佳時(shí)機(jī),并解釋了如何創(chuàng)建對初學(xué)者友好的Python腳本。

  關(guān)于腳本的最好的事情是,一旦建立了基礎(chǔ),就可以提取許多不同的指標(biāo),這些指標(biāo)可以在頁面速度測試以及Lighthouse分析中找到。

網(wǎng)絡(luò)重要指標(biāo)簡介

  5月初,Google推出了Core Web Vitals,它是其關(guān)鍵Web Vitals指標(biāo)的一部分。

  這些指標(biāo)用于提供有關(guān)網(wǎng)站上用戶體驗(yàn)質(zhì)量的指導(dǎo)。

  Google將其描述為“幫助量化您的網(wǎng)站體驗(yàn)并確定改進(jìn)機(jī)會”的一種方式,進(jìn)一步強(qiáng)調(diào)了它們向關(guān)注用戶體驗(yàn)的轉(zhuǎn)變。

  核心網(wǎng)絡(luò)生命力是真實(shí)的,以用戶為中心的指標(biāo),用于衡量用戶體驗(yàn)的關(guān)鍵方面。加載時(shí)間,互動性和穩(wěn)定性。

  除此之外,Google 上周宣布,他們將引入一個(gè)新的搜索排名信號,它將這些指標(biāo)與現(xiàn)有頁面體驗(yàn)信號(例如移動設(shè)備友好性和HTTPS安全性)結(jié)合在一起,以確保它們繼續(xù)為高質(zhì)量網(wǎng)站提供服務(wù)給用戶。

監(jiān)控性能指標(biāo)

  預(yù)計(jì)此更新將于2021年推出,Google已確認(rèn)不需要立即采取行動。

  但是,為了幫助我們?yōu)檫@些更改做準(zhǔn)備,他們更新了用于測量頁面速度的工具,包括PSI,Google Lighthouse和Google Search Console Speed Report。

Pagespeed Insights API從何入手?

  Google的PageSpeed Insights是查看網(wǎng)頁效果摘要的有用工具,它使用現(xiàn)場數(shù)據(jù)和實(shí)驗(yàn)室數(shù)據(jù)來生成結(jié)果。

  這是獲得少數(shù)URL概述的好方法,因?yàn)樗侵痦撌褂玫摹?/p>

  但是,如果您在大型站點(diǎn)上工作,并且希望獲得大規(guī)模的見解,那么該API可以有利于一次分析多個(gè)頁面,而無需單獨(dú)插入U(xiǎn)RL。

用于衡量性能的Python腳本

  我創(chuàng)建了以下Python腳本來大規(guī)模度量關(guān)鍵性能指標(biāo),以節(jié)省手動測試每個(gè)URL所花費(fèi)的時(shí)間。

  該腳本使用Python將請求發(fā)送到Google PSI API,以收集和提取在PSI和Lighthouse中顯示的指標(biāo)。

  我決定在Google Colab中編寫此腳本,因?yàn)檫@是開始編寫Python并允許輕松共享的好方法,因此本文將使用Google Colab貫穿整個(gè)安裝過程。

  但是,它也可以在本地運(yùn)行,對數(shù)據(jù)的上傳和下載進(jìn)行一些調(diào)整。

  請務(wù)必注意,某些步驟可能需要一些時(shí)間才能完成,尤其是當(dāng)每個(gè)URL通過API運(yùn)行時(shí),為了不使請求過載。

  因此,您可以在后臺運(yùn)行腳本,并在完成步驟后返回到腳本。

  讓我們逐步介紹啟動和運(yùn)行此腳本所需的步驟。

步驟1:安裝所需的軟件包

  在開始編寫任何代碼之前,我們需要安裝一些Python程序包,然后才能使用該腳本。這些使用導(dǎo)入功能很容易安裝。

我們需要的軟件包是:

urllib:用于處理,打開,閱讀和解析URL。json:允許您將JSON文件轉(zhuǎn)換為Python或?qū)ython文件轉(zhuǎn)換為JSON。request:一個(gè)HTTP庫,用于發(fā)送各種HTTP請求。pandas:主要用于數(shù)據(jù)分析和處理,我們正在使用它來創(chuàng)建DataFrames。time:一個(gè)用于處理時(shí)間的模塊,我們正在使用它在請求之間提供時(shí)間間隔。文件:通過Google Colab,您可以上傳和下載文件。io:用于訪問文件的默認(rèn)接口。# Import required packages import jsonimport requestsimport pandas as pdimport urllibimport timefrom google.colab import filesimport io 第2步:設(shè)置API請求

  下一步是設(shè)置API請求。完整的說明可以在這里找到,但是從本質(zhì)上講,該命令將如下所示:

https://xintu.googleapis.com/pagespeedonline/v5/runPagespeed?url={yourURL}/&strategy=mobile/&key={yourAPIKey}

  這將允許您附加URL,策略(臺式機(jī)或移動設(shè)備)和API密鑰。

  要在Python中使用它,我們將使用urllib請求庫urllib.request.urlopen并將其添加到名為result的變量中,以便我們可以存儲結(jié)果并在腳本中再次使用它們。

# Define URL url = 'https://xintu.example.co.uk'# API request urlresult = urllib.request.urlopen('https://xintu.googleapis.com/pagespeedonline/v5/runPagespeed?url={}/&strategy=mobile'\.format(url)).read().decode('UTF-8')print(result)步驟3:測試API

  為了測試API的正確設(shè)置以及對測試過程中生成的內(nèi)容的理解,我使用簡單的urllib.request方法通過API運(yùn)行了一個(gè)URL。

  完成此操作后,我將結(jié)果轉(zhuǎn)換為json文件并下載了它,以便查看結(jié)果。

# Convert to json formatresult_json = json.loads(result)print(result_json)with open('result.json', 'w') as outfile: json.dump(result_json, outfile)files.download('result.json')

(請注意,此方法用于在Google Colab中轉(zhuǎn)換和下載JSON文件。)

步驟4:讀取JSON檔案

  JSON文件顯示字段數(shù)據(jù)(存儲在loadingExperience下)和實(shí)驗(yàn)室數(shù)據(jù)(可以在lighthouseResult下找到)。

  為了提取所需的指標(biāo),我們可以利用JSON文件的格式,因?yàn)槲覀兡軌蚩吹矫總€(gè)部分下面的指標(biāo)。

第5步:上傳CSV并存儲為Pandas數(shù)據(jù)框

  下一步是上傳我們要通過PSI API運(yùn)行的URL的CSV文件。您可以通過抓取工具(例如DeepCrawl)生成站點(diǎn)URL的列表。

  當(dāng)我們使用API??時(shí),建議您在此處使用較小的URL示例集,尤其是在您擁有大型站點(diǎn)的情況下。

  例如,您可以使用訪問量最高的頁面或產(chǎn)生最大收入的頁面。另外,如果您的站點(diǎn)有模板,則非常適合測試其中的模板。

  您還可以在此處添加column-header變量,我們將在遍歷列表時(shí)使用該變量。確保此名稱與您上傳的CSV文件中的列標(biāo)題名稱匹配:

uploaded = files.upload()#if your column header is something other than 'url' please define it here column_header='url'

(請注意,此方法用于在Google Colab中上傳CSV文件。)

  將其上傳后,我們將使用Pandas庫將CSV轉(zhuǎn)換為DataFrame,我們可以在以下步驟中進(jìn)行迭代。

# Get the filename from the upload so we can read it into a CSV.for key in uploaded.keys(): filename = key# Read the selected file into a Pandas Dataframedf = pd.read_csv(io.BytesIO(uploaded[filename]))df.head()

  DataFrame看起來像這樣,從零索引開始。

步驟6:將結(jié)果保存到響應(yīng)對象

  下一步涉及使用for循環(huán)來迭代剛剛通過PSI API創(chuàng)建的URL的DataFrame。

  for循環(huán)使我們可以遍歷上載的列表并為每個(gè)項(xiàng)目執(zhí)行命令。然后,我們可以將結(jié)果保存到響應(yīng)對象中,并將其轉(zhuǎn)換為JSON文件。

response_object = {}# Iterate through the dffor x in range(0, len(df)): # Define request parameter url = df.iloc[x][column_header] # Make request pagespeed_results = urllib.request.urlopen('https://xintu.googleapis.com/pagespeedonline/v5/runPagespeed?url={}&strategy=mobile'.format(url)).read().decode('UTF-8') # Convert to json format pagespeed_results_json = json.loads(pagespeed_results) # Insert returned json response into response_object response_object[url] = pagespeed_results_json time.sleep(30) print(response_object[url])

  我們將在此處使用范圍內(nèi)的x,它表示循環(huán)中正在運(yùn)行的URL,以及(0,len)允許循環(huán)遍歷DataFrame中的所有URL,無論包含多少個(gè)URL 。

  該響應(yīng)對象防止通過重寫相互循環(huán),你的網(wǎng)址,使我們能夠保存數(shù)據(jù)以備將來使用。

  這也是在將其轉(zhuǎn)換為JSON文件之前,將使用列標(biāo)題變量定義URL請求參數(shù)的地方。

  我還將此處的睡眠時(shí)間設(shè)置為30秒,以減少連續(xù)進(jìn)行的API調(diào)用次數(shù)。

  另外,如果您希望更快地提出請求,則可以在URL命令的末尾附加一個(gè)API密鑰。

  縮進(jìn)在這里也很重要,因?yàn)槊總€(gè)步驟都是for循環(huán)的一部分,因此必須在命令中縮進(jìn)它們。

步驟7:創(chuàng)建一個(gè)數(shù)據(jù)框來存儲響應(yīng)

  我們還需要創(chuàng)建一個(gè)DataFrame來存儲我們要從響應(yīng)對象中提取的指標(biāo)。

  DataFrame是類似于表的數(shù)據(jù)結(jié)構(gòu),具有存儲數(shù)據(jù)的列和行。我們只需要為每個(gè)指標(biāo)添加一列并適當(dāng)?shù)孛缦滤荆?/p># Create dataframe to store responsesdf_pagespeed_results = pd.DataFrame(columns= ['url', 'Overall_Category', 'Largest_Contentful_Paint', 'First_Input_Delay', 'Cumulative_Layout_Shift', 'First_Contentful_Paint', 'Time_to_Interactive', 'Total_Blocking_Time', 'Speed_Index']) print(df_pagespeed_results)

  出于此腳本的目的,我使用了Core Web Vital指標(biāo)以及當(dāng)前Lighthouse版本中使用的其他負(fù)載和交互性指標(biāo)。

  這些指標(biāo)各自具有不同的權(quán)重,然后將它們用于總體績效得分:

LCPFIDCLSFCPTTITBT

  您可以在上方鏈接的各個(gè)目標(biāo)網(wǎng)頁上找到有關(guān)每個(gè)指標(biāo)的更多信息以及如何解釋分?jǐn)?shù)的信息。

  我還選擇包括速度指數(shù)和整體類別,這些類別將提供慢速,平均或快速得分。

步驟8:從響應(yīng)對象中提取指標(biāo)

  保存響應(yīng)對象后,我們現(xiàn)在可以對其進(jìn)行過濾并僅提取所需的指標(biāo)。

  在這里,我們將再次使用for循環(huán)遍歷響應(yīng)對象文件,并設(shè)置一系列列表索引以僅返回特定指標(biāo)。

  為此,我們將從DataFrame中定義列名稱,以及為每個(gè)URL從中提取每個(gè)指標(biāo)的響應(yīng)對象的特定類別。

for (url, x) in zip( response_object.keys(), range(0, len(response_object))): # URLs df_pagespeed_results.loc[x, 'url'] =\ response_object[url]['lighthouseResult']['finalUrl'] # Overall Category df_pagespeed_results.loc[x, 'Overall_Category'] =\ response_object[url]['loadingExperience']['overall_category'] # Core Web Vitals # Largest Contentful Paint df_pagespeed_results.loc[x, 'Largest_Contentful_Paint'] =\ response_object[url]['lighthouseResult']['audits']['largest-contentful-paint']['displayValue'] # First Input Delay fid = response_object[url]['loadingExperience']['metrics']['FIRST_INPUT_DELAY_MS'] df_pagespeed_results.loc[x, 'First_Input_Delay'] = fid['percentile'] # Cumulative Layout Shift df_pagespeed_results.loc[x, 'Cumulative_Layout_Shift'] =\ response_object[url]['lighthouseResult']['audits']['cumulative-layout-shift']['displayValue'] # Additional Loading Metrics # First Contentful Paint df_pagespeed_results.loc[x, 'First_Contentful_Paint'] =\ response_object[url]['lighthouseResult']['audits']['first-contentful-paint']['displayValue'] # Additional Interactivity Metrics # Time to Interactive df_pagespeed_results.loc[x, 'Time_to_Interactive'] =\ response_object[url]['lighthouseResult']['audits']['interactive']['displayValue'] # Total Blocking Time df_pagespeed_results.loc[x, 'Total_Blocking_Time'] =\ response_object[url]['lighthouseResult']['audits']['total-blocking-time']['displayValue'] # Speed Index df_pagespeed_results.loc[x, 'Speed_Index'] =\ response_object[url]['lighthouseResult']['audits']['speed-index']['displayValue']

  我已將此腳本設(shè)置為提取上面提到的關(guān)鍵指標(biāo),因此您可以立即使用它來收集此數(shù)據(jù)。

  但是,可以提取在PSI測試以及Lighthouse分析中都可以找到的許多其他有用指標(biāo)。

  在此JSON文件可用于查看每個(gè)指標(biāo)在列表中的位置。

  例如,在從Lighthouse審核中提取指標(biāo)(例如“互動時(shí)間”的顯示值)時(shí),將使用以下內(nèi)容:

df_pagespeed_results.loc[x, 'Time_to_Interactive'] =\response_object[url]['lighthouseResult']['audits']['interactive']['displayValue']

  再一次,重要的是要確保每一個(gè)都位于循環(huán)中,否則它們將不會包含在迭代中,并且只會為一個(gè)URL生成一個(gè)結(jié)果。

步驟9:將DataFrame轉(zhuǎn)換為CSV文件

  最后一步是創(chuàng)建一個(gè)摘要文件以收集所有結(jié)果,因此我們可以將其轉(zhuǎn)換為易于分析的格式,例如CSV文件。

summary = df_pagespeed_resultsdf_pagespeed_results.head()#Download csv file summary.to_csv('pagespeed_results.csv')files.download('pagespeed_results.csv')

(請注意,此方法用于在Google Colab中轉(zhuǎn)換和下載CSV文件。)

進(jìn)一步探索數(shù)據(jù)

  目前,我們導(dǎo)出的所有指標(biāo)都存儲為字符串,這是用于文本和字符的Python數(shù)據(jù)類型。

  由于我們提取的某些指標(biāo)實(shí)際上是數(shù)字值,因此您可能希望將字符串轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)類型,例如整數(shù)和浮點(diǎn)數(shù)。

  整數(shù),也稱為int,是整數(shù)的數(shù)據(jù)類型,例如1和10。

  浮點(diǎn)數(shù),也稱為浮點(diǎn)數(shù),是十進(jìn)制點(diǎn)數(shù),例如1.0和10.1。

  為了將字符串轉(zhuǎn)換為數(shù)字,我們需要執(zhí)行兩個(gè)步驟,第一步是將's'字符(用于表示秒)替換為空格。

  我們通過在每列上使用.str.replace方法來執(zhí)行此操作。

#Replace the 's' with a blank space so we can turn into numbersdf_pagespeed_results['Largest_Contentful_Paint'] = df_pagespeed_results.Largest_Contentful_Paint.str.replace('s', '')df_pagespeed_results['First_Contentful_Paint'] = df_pagespeed_results.First_Contentful_Paint.str.replace('s', '')df_pagespeed_results['Time_to_Interactive'] = df_pagespeed_results.Time_to_Interactive.str.replace('s', '')df_pagespeed_results['Total_Blocking_Time'] = df_pagespeed_results.Total_Blocking_Time.str.replace('ms', '')df_pagespeed_results['Speed_Index'] = df_pagespeed_results.Speed_Index.str.replace('s', '')

  然后,我們將使用.astype()方法將字符串轉(zhuǎn)換為整數(shù)或浮點(diǎn)數(shù):

#Turn strings into intergers or floatsdf_pagespeed_results['Largest_Contentful_Paint'] = df_pagespeed_results.Largest_Contentful_Paint.astype(float)df_pagespeed_results['Cumulative_Layout_Shift'] = df_pagespeed_results.Cumulative_Layout_Shift.astype(int)df_pagespeed_results['First_Contentful_Paint'] = df_pagespeed_results.First_Contentful_Paint.astype(float)df_pagespeed_results['Time_to_Interactive'] = df_pagespeed_results.Time_to_Interactive.astype(float)df_pagespeed_results['Speed_Index'] = df_pagespeed_results.Speed_Index.astype(float)

  完成此操作后,您可以使用多種不同的方法進(jìn)一步評估數(shù)據(jù)。

  例如,您可以使用數(shù)據(jù)可視化庫(例如matplotlib或seaborn)來可視化指標(biāo),以及測量指標(biāo)如何隨時(shí)間變化并將結(jié)果分組為慢速,中速和快速存儲桶。

  由于我們已經(jīng)介紹了很多內(nèi)容,因此我不會在本文中介紹這些內(nèi)容,但是如果您想了解更多信息,請隨時(shí)與我們聯(lián)系。

結(jié)論

  該腳本最終幫助我測量了一組URL的關(guān)鍵頁面速度和性能指標(biāo),并可視化了結(jié)果以識別需要改進(jìn)的頁面。

  它還允許您隨時(shí)間監(jiān)視結(jié)果并量化已進(jìn)行的改進(jìn)。

  我還創(chuàng)建了一個(gè)腳本來專門測量三個(gè)核心Web Vitals的百分比和類別。

  我希望這對希望自動化其性能測試并進(jìn)一步探索PSI API的人有所幫助。

  請隨時(shí)保存此Colab文件的副本,并使用它來幫助測量和監(jiān)視您的頁面速度,或者按照自己的步驟進(jìn)行操作。您可以在此處訪問我在本文中分享的所有代碼段。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長刪除。

轉(zhuǎn)載請注明出處http://macbookprostickers.com/xintu/2125.html

相關(guān)文章

手機(jī)網(wǎng)站建站費(fèi)用(手機(jī)網(wǎng)站如何建站)

伴隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,移動端用戶數(shù)量在不斷的增加,據(jù)統(tǒng)計(jì),2019年中國網(wǎng)民達(dá)到8.29億,手機(jī)端網(wǎng)民達(dá)到8.17億,遠(yuǎn)遠(yuǎn)超過PC端,對企業(yè)而言,這是一個(gè)很好的商機(jī),也是重要的精準(zhǔn)客戶來源入口,...

肇慶免費(fèi)模板建站(肇慶企業(yè)網(wǎng)站建站模板)

一、申報(bào)對象  1.2018年全市范圍內(nèi)經(jīng)國家、省批準(zhǔn)或備案新增的28個(gè)(不含省財(cái)政轉(zhuǎn)移支付的3個(gè))廣東省博士工作站和2個(gè)博士后創(chuàng)新實(shí)踐基地;  2.2020年全市范圍內(nèi)經(jīng)省批準(zhǔn)或備案新增的17個(gè)(...

「電器網(wǎng)站」電器網(wǎng)站制作價(jià)格

今天給各位分享電器網(wǎng)站的知識,其中也會對電器網(wǎng)站制作價(jià)格進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注和分享本站。本文導(dǎo)讀目錄: 1、網(wǎng)上買電器哪個(gè)網(wǎng)站好? 2、有哪些比較好的賣電器的網(wǎng)站啊...

從網(wǎng)絡(luò)營銷百度的本質(zhì),網(wǎng)絡(luò)營銷的本質(zhì)對象是什么

商業(yè)思維模式你不知道的高級營銷模式,看你是如何心甘情愿的被騙的 內(nèi)容營銷零基礎(chǔ)入門指南內(nèi)容營銷的定義 推廣營銷網(wǎng)絡(luò)網(wǎng)絡(luò)營銷的本質(zhì)是什么?;ヂ?lián)網(wǎng)營銷有別于傳統(tǒng)營銷渠道,從文本上能夠看得出是“互聯(lián)網(wǎng)”,即...

網(wǎng)絡(luò)營銷的擬人化怎么理解的簡單介紹

判斷題網(wǎng)絡(luò)營銷的職能是通過各種網(wǎng)絡(luò)營銷方法來實(shí)現(xiàn)的,同一個(gè)職能可能需要多 刷刷題為你提供網(wǎng)絡(luò)營銷有擬人化的特點(diǎn),表現(xiàn)在 的答案解析 知識點(diǎn) 歡迎編。推行網(wǎng)絡(luò)營銷等相關(guān)政策是非常有必要的,也是大勢所趨...

關(guān)鍵詞seo排名還選火18星(關(guān)鍵詞seo排名)

做seo都應(yīng)該明白首選域的作用關(guān)鍵詞seo排名還選火18星,但在一些環(huán)境中關(guān)鍵詞seo排名還選火18星,一個(gè)網(wǎng)站會有不止一個(gè)域名都解析到同一個(gè)網(wǎng)站上,這么做,有利于營銷但不利于seo。那么,一個(gè)網(wǎng)站多...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費(fèi)
    效果付費(fèi)

    先出效果再付費(fèi)

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶時(shí)間

  • 1對1服務(wù)
    1對1服務(wù)

    專屬客服對接咨詢

  • 持續(xù)更新
    持續(xù)更新

    不斷升級維護(hù),更好服務(wù)用戶