愛車如愛妃 大聲告訴我!你喜歡平的還是凸的?_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

而作為B級車,舒適型定位,偏向於家用或商務,那麼廠家也會妥善處理好後排的隆起高度,來提升中間乘客的舒適度。值得大家注意的是,後排是否凸起與車輛本身的強度還是安全性沒有一毛錢關係。事實上,早在設計之初,廠家就已經把底盤的零部件通通考慮進去,而不是中途“挖空”後排而犧牲車身質量。



談到後排空間的舒適度,很多人只關心軸距、高低、座椅等等,卻很少注意到後排平整度如何。其實,後排平整度也是評價後排競爭力至關重要的指標,而且相信大家無論是買車還是坐車,對於後排中央的乘坐體驗也是十分關心的。

但如今不少轎車的後排中央地板總是會莫名其妙地凸起一部分,侵佔着有限的後排空間不說,更重要的是影響了後排中間乘客的舒適度。當然,也不乏見到有些車幾乎把後排地板處理得很平整。那麼,兩者之間的差距又是由什麼引起的?

簡單來說,後排凸與不凸與車輛本身的机械結構與布局有關。後排凸起,是因為考慮到排氣管、傳動軸,甚至一些剎車管線等重要零部件需通過汽車底盤的中央部分,而為了保護這些零部件的安全性,往往只能放置在後排的凸起位置,從而抬高零部件的離地間距。對於SUV、MpV這一類的車型,則是由於自身的離地間隙較高,沒有必要刻意讓位給這些零部件,因此,SUV的後排凸起相對比較少見,但並不代表就沒有。

其次,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

現在許多車企都具有平台化造車理念,以致於旗下的車型在結構上通常有不同程度的相似,後排的凸起自然也秉承了品牌的一貫傳統,比如說大眾、馬自達。而在這樣的背景下,即便是前驅車,其後排地板仍會凸起。這是由於同一款車型還分成了四驅與兩驅,車企為了兼顧到四驅車特殊的結構布局,同時受制於成本只能選擇在前驅車上繼續採用這樣的設計。所以,單純地通過後排的凸起與否,進而來判斷車輛到底是四驅還是兩驅是不夠準確的。

當然,後排的凸起也與產品定位、設計理念等不無關係。一般來說,如果是A級車,運動型定位,那麼後排的凸起比較常見,在消費者看來倒也無傷大雅。而作為B級車,舒適型定位,偏向於家用或商務,那麼廠家也會妥善處理好後排的隆起高度,來提升中間乘客的舒適度。

值得大家注意的是,後排是否凸起與車輛本身的強度還是安全性沒有一毛錢關係。事實上,早在設計之初,廠家就已經把底盤的零部件通通考慮進去,而不是中途“挖空”後排而犧牲車身質量。就目前來說,後排凸起的現象明顯集中在德系車上,包括大眾、寶馬等品牌。而後排地板幾乎全平整的,一般在日系車、韓系車以及國產車身上的概率較大,不過也有些日系車的後排隆起還是比較明顯,如軒逸、新思域等。

說到這,不妨推薦幾款後排地板幾乎全平的車型,來告別尷尬的“劈腿”坐姿。

豐田卡羅拉

售價:10.78-17.58萬

後排平整度:

艾瑞澤7

售價:7.29-21.29萬

後排平整度:

長安睿騁

售價:10.88-20.18萬

後排平整度:

現代名圖

售價:12.98-17.68萬

後排平整度:

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

為了它們搬磚也值!30萬最值得買的豪華SUV_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

0T 211馬力+7擋雙離合,GLA的動力系統和Q3比較相似。駕駛感受也是典型的德系車的感覺,底盤紮實緊緻。動力系統匹配良好。但是由於奔馳的逼格更高,同時GLA外觀看起來更時尚,內飾看起來也更高檔,所以即使GLA的價格比Q3貴,但是GLA的銷量一點也不低。

其實大部分國人買車最喜歡的還是隨大流,並不喜歡搞什麼特殊類型的選擇,30萬元買豪華品牌的SUV,那麼絕對繞不過BBA這道坎。

華晨寶馬-寶馬X1

寶馬X1的車身尺寸為4565*1821*1624mm,軸距為2780mm,雖然定位緊湊型SUV,但是這尺寸甚至快接近中型SUV的尺寸了。和老款比起來,新X1真的是發生了翻天覆地的變化,外觀上看起來更像是一台SUV了,塊頭很大,看起來結實有力,就彷彿縮小版的X3。

X1的動力系統為1.5T 136馬力+6擋手自一體,2.0T 192馬力/2.0T 231馬力+8擋手自一體,其中動力系統也是最大的變化點,採用了全新的動力系統,同時換成了前驅布局,這樣下來的好處就是可以最大程度的利用空間,所以X1相對於老款X1來說,後排空間變得十分巨大,滿足了國人對於大空間的追求,但是讓人不滿意的就是一向以操控著稱的寶馬竟然用了3缸前驅的,即使這樣,但是價格依然那麼貴,這引起消費者很大的不滿。

坦白的說,操控方面,前驅確實不如后驅來的暢快,但是一般消費者也不是那麼容易就可以察覺出來前驅和后驅所帶來的操控的不同。再加上寶馬在國內的知名度,所以即使X1的價格貴,但是也有一些消費者買單。但是小編覺得X1的銷量想要有更大的改善,除了降價,沒有其它方法,畢竟成本更低的產品,但是價格卻沒有降低,消費者又不是不懂車。所以,價格更接地氣,

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

才是銷量的保證。

北京奔馳-奔馳GLA

GLA的車身尺寸為4431*1804*1532mm,軸距為2699mm,GLA的定位和Q3更為相似,都屬於城市時尚緊湊型SUV,目標人群為年輕消費者,相比較Q3,GLA看起來要更加的年輕時尚,車身更加的低矮修長。

GLA的動力系統為1.6T 156馬力/2.0T 184馬力/2.0T 211馬力+7擋雙離合,GLA的動力系統和Q3比較相似。駕駛感受也是典型的德系車的感覺,底盤紮實緊緻。動力系統匹配良好。但是由於奔馳的逼格更高,同時GLA外觀看起來更時尚,內飾看起來也更高檔,所以即使GLA的價格比Q3貴,但是GLA的銷量一點也不低。畢竟對於很多消費者來說,二十萬多一點的裸車價格,可以買到這麼漂亮的奔馳,還是一台SYV,這樣的吸引力還是很大的。

一汽-大眾奧迪-奧迪Q3

奧迪Q3的車身尺寸為4398*1841*1591mm,軸距為2603mm,雖然和X1一樣,都是定位緊湊型SUV,但是Q3的尺寸要明顯小於X1,與其說是Q3的尺寸小,倒不如說是X1不按照常理出牌,搞了一個那麼大尺寸的SUV,和X1比起來,Q3顯得更小巧可愛,更適合女性消費者駕駛。

Q3的動力系統為1.4T 150馬力+6擋雙離合,2.0T 180馬力/2.0T 220馬力+7擋雙離合,由於奧迪的雙離合調教的也比較拿手,所以如果是普通家用的話,1.4T車型就夠用了,因為我們都知道雙離合的效率比較高,如果調教的好,駕駛感受會很不錯。同時1.4T車型不但價格便宜,而且油耗也比較低。

但是對於不差錢的消費者來說,小編還是很推薦2.0T的quattro 四驅車型,這才是奧迪最為精華的部分,quattro 四驅車型駕駛起來的感覺就是穩,准,狠。但是大部分消費者只是為了一個奧迪的標緻或者一個簡單的代步工具,所以一般不會考慮什麼四驅車型。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

Google 正式收購 Neverware,CloudReady 系統與 Chrome OS 真正稱兄道弟_包裝設計

5{icon} {views}

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

還記得 Cloudready 系統嗎?這個被譽為讓舊電腦華麗變身成 Chromebook 的系統實際上骨子裡跟 Chrome OS 有著相近的核心,只是 Cloudready 系統是基於 Chromium OS 的系統,雖然核心仍然是 Google,但與 Chrome OS 仍然有著不小的差異。最大的不同就是 Chrome OS 具備 Google 原廠服務,而 Cloudready 沒有 Google 商店等服務內容,也不支援 Android App。不過這個問題或許有了新的解答。因為 Google 正式把 CloudReady 的母公司 Neverware 收購起來,未來 Cloudready 等於直接納入 Google 傘下,成為 Chrome OS 真正意義上的親兄弟,自然也有機會獲得來自 Google 的維護與服務更新:

▲CloudReady 是一套能在一般電腦上運作的類 Chrome OS 系統,其家用版(Home Edition)目前仍然接受一般人下載及免費使用

CloudReady 是一個跟 Chrome OS 形似而實非的產品,這個出自 Neverware 公司之手的系統乃是建立在 Chromium OS 的基礎上設計的作業系統。多數核心功能均與 Chrome OS 十分相似,但部分功能並非 Chrome OS 所具備,且 CloudReady 的部分功能設計也非 Chrome OS 所具備。筆者曾於 2017 年介紹過 CloudReady 可作為 LiveUSB 開機使用的特色,可參見本文。確切的說,CloudReady 並非百分之百照搬 Chrome OS 的系統,但卻做出了 Chrome OS 做不到的特性。像是可透過開機隨身碟在一般電腦上執行的特點,就是 Chrome OS 原版並未加入的功能。

缺乏 Google 核心功能,CloudReady 少了 Chrome OS 原生服務的點綴

很多人或許是透過一些片面的資訊認識到 Chrome OS,也知道目前這個出自 Google 之手的作業系統目前僅隨機安裝使用,換句話說,如果你並未購買 Chromebook ,也就無法使用到純正的 Chrome OS。但對於一些預算有限的用戶來說,Chromebook 雖然多數定價廉宜,卻仍難說服自己為了體驗系統而直接購買未必真正必須的機器。這時 CloudReady 就有其存在意義:

▲Chrome OS 對一般人來說可能僅止於片面資訊,要實際摸過玩過也許除了買台 Chromebook 外,還可以透過 CloudReady 系統。

該系統與 Chrome OS 核心相同,可透過專用軟體安裝在隨身碟上,於一般電腦上開機使用。相對來說系統限制幾乎沒有,而且能讓不熟悉 Chrome OS 或其生態的用戶有了一個試用的機會。即便少了 1% 的官方軟體或服務,但卻能體驗到 99%  相似的 Chrome OS,以交易來說仍然十分划算。就算評估過後仍然要繼續使用 CloudReady 的服務,Neverware 也有額外的付費服務可供參考:

▲CloudReady 透過自家專用軟體可安裝在 USB 隨身碟中,以 LiveUSB 的形式開機使用

不過,隨著 Neverware 正式被 Google 收購開始,CloudReady 系統也將成為 Google 旗下產品之一。具備了親兒子等級的待遇後,CloudReady 的優點或許會被 Chrome OS 吸收。但 CloudReady 也可能就此消失在世人面前。Neverware 也在併購消息傳出後發表聲明指出,CloudReady 現有的客戶仍可享有 Neverware 提供的官方支援,免費下載使用的 Home 版也仍可繼續下載使用:

▲CloudReady Home Edition 目前仍可免費使用,日後的更新也許會跟著 Chrome OS 的步調走(圖片來源)

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

但,收購後的 CloudReady 自此將正式成為 Google 的一份子,未來不論是購買授權或是下載使用的途徑,或許都隨著 Google 高層的一念之間而有所變動。即便這點令人不捨,但這已經成為既成事實,只能祝福 Neverware 與 CloudReady 系統未來能在 Google 手中發光發熱。

值得一提的是,Neverware 與 Google 之間的聯繫其實很久以前就開始,早在三年前 Google 投資 Neverware 的 B 輪融資開始,雙方的合作就越來越緊密,Neverware 與 Google Chrome OS 小組間也有不少交流。雖然不知道 CloudReady 系統的未來為何,但在 Google 的手上,想必比別的公司拿到手還來得好。

消息來源

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

數據分析 | 基於智能標籤,精準管理數據_網頁設計

5{icon} {views}

台北網頁設計公司這麼多該如何選擇?

網動是一群專業、熱情、向前行的工作團隊,我們擁有靈活的組織與溝通的能力,能傾聽客戶聲音,激發創意的火花,呈現完美的作品

本文源碼:GitHub·點這裏 || GitEE·點這裏

一、場景分析

1、場景案例

互聯網行業的朋友一定了解或者聽說過下列幾個場景:

阿里:千人千面,意思不同用戶使用阿里相關的產品感覺是不一樣的,例如支付寶首頁的推薦內容,和其他相關推薦流信息是完全不同的。

騰訊:社交廣告,不同用戶的朋友圈或者其他媒體場景下的廣告信息是不同的,會基於用戶特徵推薦。

頭條:信息價值,根據用戶瀏覽信息,分析用戶相關喜好,針對分析結果推薦相關的信息流,越關注某類內容,獲取相關的信息越多。

如上幾種場景的邏輯就是:基於不斷分析用戶的行為,生成用戶的特徵畫像,然後再基於用戶標籤,定製化的推薦相關內容。

2、基本概念

通過上面的場景,衍生出來兩個概念:

用戶畫像

用戶畫像,作為一種勾畫目標用戶、聯繫用戶訴求與設計方向的有效工具,把該用戶相關聯的數據的可視化的展現,就形成了用戶畫像。用戶畫像在各領域得到了廣泛的應用,最初是在電商領域得到應用的,在大數據時代背景下,用戶信息充斥在網絡中,將用戶的每個具體信息抽象成標籤,利用這些標籤將用戶形象具體化,從而為用戶提供有針對性的服務。

標籤數據

標籤在生活中非常常見,比如商品標籤,個人標籤,行業標籤,例如提到996就想到程序員,提到程序員就想到格子衫。

標籤是把分散的多方數據進行整合納入統一的技術平台,並對這些數據進行標準化和細分,進行結構化存儲和更新管理,讓業務線可以把這些細分結果推向現有的互動營銷環境里的平台,產生價值,這些數據稱為標籤數據,也就是常說的標籤庫。數據標籤的概念也是在最近幾年大數據的發展中不斷火熱起來的。

標籤價值

  • 精細運營的基礎,有效提高流量精準和效率。
  • 幫助產品快速定位需求人群,進行精準營銷;
  • 能幫助客戶更快切入到市場周期中;
  • 深入的預測分析客戶並作出及時反應;
  • 基於標籤的開發智能推薦系統;
  • 基於某類用戶的分析,洞察行業特徵;

標籤的核心價值,或者說最常用的場景:實時智能推薦,精準化数字營銷。

二、數據標籤

1、標籤劃分

屬性標籤

屬性標籤是變化最小的,例如用戶實名認證之後,基於身份信息獲取相關:性別,生日,出生年月,年齡,等相關標籤。變動頻率小,且最具有精準性。

行為標籤

行為標籤就是用戶通過在產品上的一系列操作,基於行為日誌分析得出:例如購買能力、消費愛好、季節性消費標籤等。在信息流的APP上,通過相關瀏覽行為,不斷推薦用戶感興趣的內容就是基於該邏輯。

規則標籤

根據業務場景需求,配置指定規則,基於規則生成分析結果,例如:

  • 近7天活躍用戶:近7天,每天都登錄的用戶作為規則生成;
  • 丟失用戶:六個月內沒有任何操作,可以發放高額優惠劵;
  • 潛在用戶:使用或產生瀏覽數據,但是未發生任何交易行為;

這類標籤可以基於動態的規則配置,經過計算和分析,生成描述結果,也就是規則標籤。

擬合標籤

擬合類的標籤最具有複雜性,通過用戶上述幾種標籤,智能組合分析,給的預測值,例如:未婚、瀏覽相關婚禮內容,通過分析預測用戶將要舉辦婚禮,得到一個擬合結果:預測將要結婚。這個預測邏輯也可以反向執行,用戶購買嬰兒用品:預測已婚已育。

這就是數據時代常說的一句話:用戶在某個應用上一通操作之後,算法分析的結果可能比用戶對自己的描述還要真實。

2、標籤加工流程

數據採集

數據採集的渠道相對較多,比如同一APP內的各種業務線:購物、支付、理財、外賣、信息瀏覽等等。通過數據通道傳輸到統一的數據聚合平台。有了這些海量日誌數據的支撐,才具有數據分析的基礎條件。不管是數據智能,深度學習,算法等都是建立在海量數據的基礎條件上,這樣才能獲取具有價值的分析結果。

數據加工

結合如上業務,通過對海量數據的加工,分析和提取,獲取相對精準的用戶標籤,這裏還有關鍵的一步,就是對已有的用戶標籤進行不斷的驗證和修復,尤其是規則類和擬合類的相關標籤。

標籤庫

網頁設計最專業,超強功能平台可客製化

窩窩以「數位行銷」「品牌經營」「網站與應用程式」「印刷品設計」等四大主軸,為每一位客戶客製建立行銷脈絡及洞燭市場先機。

通過標籤庫,管理複雜的標籤結果,除了複雜的標籤,和基於時間線的標籤變,標籤數據到這裏,已經具有相當大的價值,可以圍繞標籤庫開放一些收費服務,例如常見的,用戶在某電商APP瀏覽某些商品,可以在某信息流平台看到商品推薦。大數據時代就是這麼令人感覺智能和窒息。

標籤業務

數據走了一大圈轉換成標籤,自然還是要回歸到業務層面,通過對標籤數據的用戶的分析,可以進行精準營銷,和智能推薦等相關操作,電商應用中可以提高成交量,信息流中可以更好的吸引用戶。

應用層

把上述業務開發成服務,集成到具有的應用層面,不斷提升應用服務的質量,不斷的吸引用戶,提供服務。當然用戶的數據不斷在應用層面產生,在轉到數據採集服務中,最終形成完整的閉環流程。

3、應用案例

從流程和業務層面描述都是簡單的,到開發層面都會變得複雜和不好處理,這可能就是產品和開發之間的隔閡。

標籤的數據類型

不同標籤的分析結果需要用不同的數據類型描述,在標籤體系中,常用描述標籤的數據類型如下:枚舉、數值、日期、布爾、文本類型。不同的類型需要不一樣的分析流程。

商品和標籤

這裏提供一個基礎案例,用商品的標籤來分析商品,例如通過商品產地,價格,狀態等條件,來查詢產品庫有多少符合條件的商品。

數據表設計

主要分四張表:標籤分類,標籤庫,標籤值,標籤數據。

CREATE TABLE `tc_tag_catalog` (
	`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
	`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱',
	`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	`update_time` datetime DEFAULT NULL COMMENT '更新時間',
	`state` INT (1) DEFAULT '1' COMMENT '狀態1啟用,2禁用',
	PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標籤層級目錄';

CREATE TABLE `tc_tag_cloud` (
	`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
	`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
	`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標籤名稱',
	`tag_code` INT (11) DEFAULT NULL COMMENT '標籤編碼',
	`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
	`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類型',
	`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	`update_time` datetime DEFAULT NULL COMMENT '更新時間',
	`remark` VARCHAR (150) DEFAULT NULL COMMENT '備註',
	`state` INT (1) DEFAULT '1' COMMENT '狀態1啟用,2禁用',
	PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標籤雲';

CREATE TABLE `tc_tag_data_enum` (
	`tag_code` INT (11) NOT NULL COMMENT '標籤編碼',
	`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
	`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標籤枚舉值';

CREATE TABLE `tc_tag_data_set` (
	`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
	`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱',
	`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價',
	`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
	`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產地',
	`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標籤數據集';

模擬入參接口

這裏的參數應該是基於需求,動態選取,進行組織到一起:

例如圖片中這裏給定的標籤值列表,稱為枚舉值。

@RestController
public class AnalyzeController {

    @Resource
    private TagDataSetService tagDataSetService ;

    @GetMapping("/analyze")
    public String analyze (){
        List<TagParam> tagParamList = new ArrayList<>() ;

        TagParam tagParam1 = new TagParam(1,"產地","origin_place") ;
        List<String> valueList1 = new ArrayList<>() ;
        valueList1.add("深圳");
        valueList1.add("廣東");
        tagParam1.setValueList(valueList1);
        tagParamList.add(tagParam1) ;

        TagParam tagParam2 = new TagParam(2,"價格","unit_price") ;
        List<String> valueList2 = new ArrayList<>() ;
        valueList2.add("1999");
        tagParam2.setValueList(valueList2);
        tagParamList.add(tagParam2) ;

        TagParam tagParam3 = new TagParam(3,"生產日期","create_time") ;
        List<String> valueList3 = new ArrayList<>() ;
        valueList3.add("2020-05-01 13:43:54");
        tagParam3.setValueList(valueList3);
        tagParamList.add(tagParam3) ;

        TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
        List<String> valueList4 = new ArrayList<>() ;
        valueList4.add("1");
        tagParam4.setValueList(valueList4);
        tagParamList.add(tagParam4) ;

        TagParam tagParam5 = new TagParam(5,"產品名稱","product_name") ;
        List<String> valueList5 = new ArrayList<>() ;
        valueList5.add("智能");
        tagParam5.setValueList(valueList5);
        tagParamList.add(tagParam5) ;

        Integer count = tagDataSetService.analyze(tagParamList) ;

        return "Result:" + count ;
    }
}

參數解析查詢

通過對參數的解析,最終形成查詢的SQL語句,獲取精準的結果數據。

@Service
public class TagDataSetServiceImpl extends ServiceImpl<TagDataSetMapper, TagDataSet> implements TagDataSetService {

    @Resource
    private TagDataSetMapper tagDataSetMapper ;

    @Override
    public Integer analyze(List<TagParam> tagParamList) {
        StringBuffer querySQL = new StringBuffer() ;
        for (TagParam tagParam:tagParamList){
            querySQL.append(" AND ") ;
            querySQL.append(tagParam.getBindColumn()) ;
            // 1枚舉,2數值,3日期,4布爾,5值類型
            List<String> valueList = tagParam.getValueList();
            switch (tagParam.getDataType()){
                case 1:
                    querySQL.append(" IN (") ;
                    for (int i = 0 ; i < valueList.size() ;i++){
                        if (i != valueList.size()-1){
                            querySQL.append("'").append(valueList.get(i)).append("',");
                        } else {
                            querySQL.append("'").append(valueList.get(i)).append("'");
                        }
                    }
                    querySQL.append(" )") ;
                    break;
                case 2:
                    querySQL.append("=").append(tagParam.getValueList().get(0)) ;
                    break;
                case 3:
                    querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
                    break;
                case 4:
                    querySQL.append("=").append(tagParam.getValueList().get(0)) ;
                    break;
                case 5:
                    querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
                    break;
                default:
                    break;
            }
        }
        /* 最終執行的 SQL
            SELECT COUNT(*) FROM tc_tag_data_set
            WHERE 1 = 1
            AND origin_place IN ('深圳', '廣東')
            AND unit_price = 1999
            AND create_time >= '2020-05-01 13:43:54'
            AND is_shelves = 1
            AND product_name LIKE '%智能%'
         */
        String whereCondition = String.valueOf(querySQL);
        return tagDataSetMapper.analyze(whereCondition);
    }
}

可能有人會說這不就是個查詢流程嗎?如果有這樣的疑問,把上述案例換成用戶查詢,標籤數據的價值會更直觀。

三、智能畫像

1、基本概念

用戶畫像

作為一種勾畫目標用戶、聯繫用戶訴求與設計方向的有效工具,用戶畫像在各領域得到了廣泛的應用。最初是在電商領域得到應用的,在大數據時代背景下,用戶信息充斥在網絡中,將用戶的每個具體信息抽象成標籤,利用這些標籤將用戶形象具體化,從而為用戶提供有針對性的服務。

行業畫像

通過行業屬性標籤,行業下用戶標籤的綜合分析,生成行業分析報告,提供極有價值的導向,這是最近兩年極其熱門的應用。

畫像補全

通過不斷分析用戶數據,豐富標籤庫,使用戶的畫像更加豐富立體。

2、畫像報告

通過標籤數據的分析,生成一份分析報告,報告內容包含豐富的用戶標籤統計數據。

例如:90后畫像報告

這個報告,互聯網用戶一定或多或少都看到過。主要是一些標籤統計,共性標籤展示,或者哪些群體對90后三觀影響最大,收入來源,學歷等各種分析解讀。

四、源代碼地址

GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent

推薦閱讀:《架構設計系列》,蘿蔔青菜,各有所需

序號 標題
01 架構設計:單服務.集群.分佈式,基本區別和聯繫
02 架構設計:分佈式業務系統中,全局ID生成策略
03 架構設計:分佈式系統調度,Zookeeper集群化管理
04 架構設計:接口冪等性原則,防重複提交Token管理
05 架構設計:緩存管理模式,監控和內存回收策略

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※推薦評價好的iphone維修中心

擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢

基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(二)_貨運

5{icon} {views}

※智慧手機時代的來臨,RWD網頁設計為架站首選

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

系列文章

  1. 基於 abp vNext 和 .NET Core 開發博客項目 – 使用 abp cli 搭建項目
  2. 基於 abp vNext 和 .NET Core 開發博客項目 – 給項目瘦身,讓它跑起來
  3. 基於 abp vNext 和 .NET Core 開發博客項目 – 完善與美化,Swagger登場
  4. 基於 abp vNext 和 .NET Core 開發博客項目 – 數據訪問和代碼優先
  5. 基於 abp vNext 和 .NET Core 開發博客項目 – 自定義倉儲之增刪改查
  6. 基於 abp vNext 和 .NET Core 開發博客項目 – 統一規範API,包裝返回模型
  7. 基於 abp vNext 和 .NET Core 開發博客項目 – 再說Swagger,分組、描述、小綠鎖
  8. 基於 abp vNext 和 .NET Core 開發博客項目 – 接入GitHub,用JWT保護你的API
  9. 基於 abp vNext 和 .NET Core 開發博客項目 – 異常處理和日誌記錄
  10. 基於 abp vNext 和 .NET Core 開發博客項目 – 使用Redis緩存數據
  11. 基於 abp vNext 和 .NET Core 開發博客項目 – 集成Hangfire實現定時任務處理
  12. 基於 abp vNext 和 .NET Core 開發博客項目 – 用AutoMapper搞定對象映射
  13. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(一)
  14. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(二)
  15. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(三)
  16. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(一)
  17. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(二)
  18. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(三)
  19. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(四)
  20. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(五)
  21. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(一)
  22. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(二)
  23. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(三)
  24. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(四)
  25. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(五)
  26. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(六)
  27. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(七)
  28. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(八)
  29. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(九)
  30. 基於 abp vNext 和 .NET Core 開發博客項目 – 終結篇之發布項目

上一篇(https://www.cnblogs.com/meowv/p/12971041.html)使用HtmlAgilityPack抓取壁紙數據成功將圖片存入數據庫,本篇繼續來完成一個全網各大平台的熱點新聞數據的抓取。

同樣的,可以先預覽一下我個人博客中的成品:https://meowv.com/hot ,和抓取壁紙的套路一樣,大同小異。

本次要抓取的源有18個,分別是博客園、V2EX、SegmentFault、掘金、微信熱門、豆瓣精選、IT之家、36氪、百度貼吧、百度熱搜、微博熱搜、知乎熱榜、知乎日報、網易新聞、GitHub、抖音熱點、抖音視頻、抖音正能量。

還是將數據存入數據庫,按部就班先將實體類和自定義倉儲創建好,實體取名HotNews。貼一下代碼:

//HotNews.cs
using System;
using Volo.Abp.Domain.Entities;

namespace Meowv.Blog.Domain.HotNews
{
    public class HotNews : Entity<Guid>
    {
        /// <summary>
        /// 標題
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// 鏈接
        /// </summary>
        public string Url { get; set; }

        /// <summary>
        /// SourceId
        /// </summary>
        public int SourceId { get; set; }

        /// <summary>
        /// 創建時間
        /// </summary>
        public DateTime CreateTime { get; set; }
    }
}

剩下的大家自己完成,最終數據庫生成一張空的數據表,meowv_hotnews 。

然後還是將我們各大平台放到一個枚舉類HotNewsEnum.cs中。

//HotNewsEnum.cs
using System.ComponentModel;

namespace Meowv.Blog.Domain.Shared.Enum
{
    public enum HotNewsEnum
    {
        [Description("博客園")]
        cnblogs = 1,

        [Description("V2EX")]
        v2ex = 2,

        [Description("SegmentFault")]
        segmentfault = 3,

        [Description("掘金")]
        juejin = 4,

        [Description("微信熱門")]
        weixin = 5,

        [Description("豆瓣精選")]
        douban = 6,

        [Description("IT之家")]
        ithome = 7,

        [Description("36氪")]
        kr36 = 8,

        [Description("百度貼吧")]
        tieba = 9,

        [Description("百度熱搜")]
        baidu = 10,

        [Description("微博熱搜")]
        weibo = 11,

        [Description("知乎熱榜")]
        zhihu = 12,

        [Description("知乎日報")]
        zhihudaily = 13,

        [Description("網易新聞")]
        news163 = 14,

        [Description("GitHub")]
        github = 15,

        [Description("抖音熱點")]
        douyin_hot = 16,

        [Description("抖音視頻")]
        douyin_video = 17,

        [Description("抖音正能量")]
        douyin_positive = 18
    }
}

和上一篇抓取壁紙一樣,做一些準備工作。

.Application.Contracts層添加HotNewsJobItem<T>,在.BackgroundJobs層添加HotNewsJob用來處理爬蟲邏輯,用構造函數方式注入倉儲IHotNewsRepository

//HotNewsJobItem.cs
using Meowv.Blog.Domain.Shared.Enum;

namespace Meowv.Blog.Application.Contracts.HotNews
{
    public class HotNewsJobItem<T>
    {
        /// <summary>
        /// <see cref="Result"/>
        /// </summary>
        public T Result { get; set; }

        /// <summary>
        /// 來源
        /// </summary>
        public HotNewsEnum Source { get; set; }
    }
}
//HotNewsJob.CS
using Meowv.Blog.Domain.HotNews.Repositories;
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace Meowv.Blog.BackgroundJobs.Jobs.HotNews
{
    public class HotNewsJob : IBackgroundJob
    {
        private readonly IHttpClientFactory _httpClient;
        private readonly IHotNewsRepository _hotNewsRepository;

        public HotNewsJob(IHttpClientFactory httpClient,
                          IHotNewsRepository hotNewsRepository)
        {
            _httpClient = httpClient;
            _hotNewsRepository = hotNewsRepository;
        }

        public async Task ExecuteAsync()
        {
            throw new NotImplementedException();
        }
    }
}

接下來明確數據源地址,因為以上數據源有的返回是HTML,有的直接返回JSON數據。為了方便調用,我這裏還注入了IHttpClientFactory

整理好的待抓取數據源列表是這樣的。

...
var hotnewsUrls = new List<HotNewsJobItem<string>>
{
    new HotNewsJobItem<string> { Result = "https://www.cnblogs.com", Source = HotNewsEnum.cnblogs },
    new HotNewsJobItem<string> { Result = "https://www.v2ex.com/?tab=hot", Source = HotNewsEnum.v2ex },
    new HotNewsJobItem<string> { Result = "https://segmentfault.com/hottest", Source = HotNewsEnum.segmentfault },
    new HotNewsJobItem<string> { Result = "https://web-api.juejin.im/query", Source = HotNewsEnum.juejin },
    new HotNewsJobItem<string> { Result = "https://weixin.sogou.com", Source = HotNewsEnum.weixin },
    new HotNewsJobItem<string> { Result = "https://www.douban.com/group/explore", Source = HotNewsEnum.douban },
    new HotNewsJobItem<string> { Result = "https://www.ithome.com", Source = HotNewsEnum.ithome },
    new HotNewsJobItem<string> { Result = "https://36kr.com/newsflashes", Source = HotNewsEnum.kr36 },
    new HotNewsJobItem<string> { Result = "http://tieba.baidu.com/hottopic/browse/topicList", Source = HotNewsEnum.tieba },
    new HotNewsJobItem<string> { Result = "http://top.baidu.com/buzz?b=341", Source = HotNewsEnum.baidu },
    new HotNewsJobItem<string> { Result = "https://s.weibo.com/top/summary/summary", Source = HotNewsEnum.weibo },
    new HotNewsJobItem<string> { Result = "https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true", Source = HotNewsEnum.zhihu },
    new HotNewsJobItem<string> { Result = "https://daily.zhihu.com", Source = HotNewsEnum.zhihudaily },
    new HotNewsJobItem<string> { Result = "http://news.163.com/special/0001386F/rank_whole.html", Source = HotNewsEnum.news163 },
    new HotNewsJobItem<string> { Result = "https://github.com/trending", Source = HotNewsEnum.github },
    new HotNewsJobItem<string> { Result = "https://www.iesdouyin.com/web/api/v2/hotsearch/billboard/word", Source = HotNewsEnum.douyin_hot },
    new HotNewsJobItem<string> { Result = "https://www.iesdouyin.com/web/api/v2/hotsearch/billboard/aweme", Source = HotNewsEnum.douyin_video },
    new HotNewsJobItem<string> { Result = "https://www.iesdouyin.com/web/api/v2/hotsearch/billboard/aweme/?type=positive", Source = HotNewsEnum.douyin_positive },
};
...

其中有幾個比較特殊的,掘金、百度熱搜、網易新聞。

掘金需要發送Post請求,返回的是JSON數據,並且需要指定特有的請求頭和請求數據,所以使用IHttpClientFactory創建了HttpClient對象。

百度熱搜、網易新聞兩個老大哥玩套路,網頁編碼是GB2312的,所以要專門為其指定編碼方式,不然取到的數據都是亂碼。

※評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

...
var web = new HtmlWeb();
var list_task = new List<Task<HotNewsJobItem<object>>>();

hotnewsUrls.ForEach(item =>
{
    var task = Task.Run(async () =>
    {
        var obj = new object();

        if (item.Source == HotNewsEnum.juejin)
        {
            using var client = _httpClient.CreateClient();
            client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.14 Safari/537.36 Edg/83.0.478.13");
            client.DefaultRequestHeaders.Add("X-Agent", "Juejin/Web");
            var data = "{\"extensions\":{\"query\":{ \"id\":\"21207e9ddb1de777adeaca7a2fb38030\"}},\"operationName\":\"\",\"query\":\"\",\"variables\":{ \"first\":20,\"after\":\"\",\"order\":\"THREE_DAYS_HOTTEST\"}}";
            var buffer = data.SerializeUtf8();
            var byteContent = new ByteArrayContent(buffer);
            byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var httpResponse = await client.PostAsync(item.Result, byteContent);
            obj = await httpResponse.Content.ReadAsStringAsync();
        }
        else
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            obj = await web.LoadFromWebAsync(item.Result, (item.Source == HotNewsEnum.baidu || item.Source == HotNewsEnum.news163) ? Encoding.GetEncoding("GB2312") : Encoding.UTF8);
        }

        return new HotNewsJobItem<object>
        {
            Result = obj,
            Source = item.Source
        };
    });
    list_task.Add(task);
});
Task.WaitAll(list_task.ToArray());

循環 hotnewsUrls ,可以看到HotNewsJobItem我們返回的是object類型,因為有JSON又有HtmlDocument對象。所以這裏為了能夠統一接收,就是用了object。

針對掘金做了單獨處理,使用HttpClient發送Post請求,返回JSON字符串數據。

針對百度熱搜和網易新聞,使用Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);註冊編碼提供程序,然後在web.LoadFromWebAsync(...)加載網頁數據的時候指定網頁編碼,我使用了一個三元表達式來處理。

完成上面這一步,就可以循環 list_task,使用XPath語法,或者解析JSON數據,去拿到數據了。

...
var hotNews = new List<HotNews>();
foreach (var list in list_task)
{
    var item = await list;
    var sourceId = (int)item.Source;

    ...

    if (hotNews.Any())
    {
        await _hotNewsRepository.DeleteAsync(x => true);
        await _hotNewsRepository.BulkInsertAsync(hotNews);
    }
}

這個爬蟲同樣很簡單,只要拿到標題和鏈接即可,所以主要目標是尋找到頁面上的a標籤列表。這個我覺得也沒必要一個個去分析了,直接上代碼。

// 博客園
 if (item.Source == HotNewsEnum.cnblogs)
 {
     var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='post_item_body']/h3/a").ToList();
     nodes.ForEach(x =>
     {
         hotNews.Add(new HotNews
         {
             Title = x.InnerText,
             Url = x.GetAttributeValue("href", ""),
             SourceId = sourceId,
             CreateTime = DateTime.Now
         });
     });
 }
// V2EX
if (item.Source == HotNewsEnum.v2ex)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//span[@class='item_title']/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = $"https://www.v2ex.com{x.GetAttributeValue("href", "")}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
 // SegmentFault
 if (item.Source == HotNewsEnum.segmentfault)
 {
     var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='news__item-info clearfix']/a").Where(x => x.InnerText.IsNotNullOrEmpty()).ToList();
     nodes.ForEach(x =>
     {
         hotNews.Add(new HotNews
         {
             Title = x.SelectSingleNode(".//h4").InnerText,
             Url = $"https://segmentfault.com{x.GetAttributeValue("href", "")}",
             SourceId = sourceId,
             CreateTime = DateTime.Now
         });
     });
 }
// 掘金
if (item.Source == HotNewsEnum.juejin)
{
    var obj = JObject.Parse((string)item.Result);
    var nodes = obj["data"]["articleFeed"]["items"]["edges"];
    foreach (var node in nodes)
    {
        hotNews.Add(new HotNews
        {
            Title = node["node"]["title"].ToString(),
            Url = node["node"]["originalUrl"].ToString(),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    }
}
// 微信熱門
if (item.Source == HotNewsEnum.weixin)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//ul[@class='news-list']/li/div[@class='txt-box']/h3/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = x.GetAttributeValue("href", ""),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 豆瓣精選
if (item.Source == HotNewsEnum.douban)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='channel-item']/div[@class='bd']/h3/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = x.GetAttributeValue("href", ""),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// IT之家
if (item.Source == HotNewsEnum.ithome)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='lst lst-2 hot-list']/div[1]/ul/li/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = x.GetAttributeValue("href", ""),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 36氪
if (item.Source == HotNewsEnum.kr36)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='hotlist-main']/div[@class='hotlist-item-toptwo']/a[2]|//div[@class='hotlist-main']/div[@class='hotlist-item-other clearfloat']/div[@class='hotlist-item-other-info']/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = $"https://36kr.com{x.GetAttributeValue("href", "")}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 百度貼吧
if (item.Source == HotNewsEnum.tieba)
{
    var obj = JObject.Parse(((HtmlDocument)item.Result).ParsedText);
    var nodes = obj["data"]["bang_topic"]["topic_list"];
    foreach (var node in nodes)
    {
        hotNews.Add(new HotNews
        {
            Title = node["topic_name"].ToString(),
            Url = node["topic_url"].ToString().Replace("amp;", ""),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    }
}
// 百度熱搜
if (item.Source == HotNewsEnum.baidu)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//table[@class='list-table']//tr/td[@class='keyword']/a[@class='list-title']").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = x.GetAttributeValue("href", ""),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 微博熱搜
if (item.Source == HotNewsEnum.weibo)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//table/tbody/tr/td[2]/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = $"https://s.weibo.com{x.GetAttributeValue("href", "").Replace("#", "%23")}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 知乎熱榜
if (item.Source == HotNewsEnum.zhihu)
{
    var obj = JObject.Parse(((HtmlDocument)item.Result).ParsedText);
    var nodes = obj["data"];
    foreach (var node in nodes)
    {
        hotNews.Add(new HotNews
        {
            Title = node["target"]["title"].ToString(),
            Url = $"https://www.zhihu.com/question/{node["target"]["id"]}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    }
}
// 知乎日報
if (item.Source == HotNewsEnum.zhihudaily)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='box']/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = $"https://daily.zhihu.com{x.GetAttributeValue("href", "")}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 網易新聞
if (item.Source == HotNewsEnum.news163)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//div[@class='area-half left']/div[@class='tabBox']/div[@class='tabContents active']/table//tr/td[1]/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText,
            Url = x.GetAttributeValue("href", ""),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// GitHub
if (item.Source == HotNewsEnum.github)
{
    var nodes = ((HtmlDocument)item.Result).DocumentNode.SelectNodes("//article[@class='Box-row']/h1/a").ToList();
    nodes.ForEach(x =>
    {
        hotNews.Add(new HotNews
        {
            Title = x.InnerText.Trim().Replace("\n", "").Replace(" ", ""),
            Url = $"https://github.com{x.GetAttributeValue("href", "")}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    });
}
// 抖音熱點
if (item.Source == HotNewsEnum.douyin_hot)
{
    var obj = JObject.Parse(((HtmlDocument)item.Result).ParsedText);
    var nodes = obj["word_list"];
    foreach (var node in nodes)
    {
        hotNews.Add(new HotNews
        {
            Title = node["word"].ToString(),
            Url = $"#{node["hot_value"]}",
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    }
}
// 抖音視頻 & 抖音正能量
if (item.Source == HotNewsEnum.douyin_video || item.Source == HotNewsEnum.douyin_positive)
{
    var obj = JObject.Parse(((HtmlDocument)item.Result).ParsedText);
    var nodes = obj["aweme_list"];
    foreach (var node in nodes)
    {
        hotNews.Add(new HotNews
        {
            Title = node["aweme_info"]["desc"].ToString(),
            Url = node["aweme_info"]["share_url"].ToString(),
            SourceId = sourceId,
            CreateTime = DateTime.Now
        });
    }
}

item.Result轉換成指定類型,最終拿到數據后,我們先刪除所有數據后再批量插入。

然後新建擴展方法UseHotNewsJob(),在模塊類中調用。

//MeowvBlogBackgroundJobsExtensions.cs
...
        /// <summary>
        /// 每日熱點數據抓取
        /// </summary>
        /// <param name="context"></param>
        public static void UseHotNewsJob(this IServiceProvider service)
        {
            var job = service.GetService<HotNewsJob>();

            RecurringJob.AddOrUpdate("每日熱點數據抓取", () => job.ExecuteAsync(), CronType.Hour(1, 2));
        }
...

指定定時任務為每2小時運行一次。

...
        public override void OnApplicationInitialization(ApplicationInitializationContext context)
        {
            ...
            var service = context.ServiceProvider;
            ...
            service.UseHotNewsJob();
        }

編譯運行,此時周期性作業就會出現我們的定時任務了。

默認時間沒到是不會執行的,我們手動執行等待一會看看效果。

執行完成后,成功將所有熱點數據保存在數據庫中,說明我們的爬蟲已經搞定了,並且Hangfire會按照給定的規則去循環執行,你學會了嗎?

開源地址:https://github.com/Meowv/Blog/tree/blog_tutorial

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

現在合資SUV門檻越來越低了 質量好設計好 15萬以內就能落地_包裝設計

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

3廣汽菲克Jeep-自由

時下汽車市場對SUV的熱度是史無前例的,能夠有錢買路虎,買雷克薩斯固然是好,但是預算不多的朋友,想購買一輛SUV往往只能選擇售價十萬左右的小型SUV。事實上,省油、耐操,是國人對汽車的普遍需求,那小型SUV領域,這些合資車表現又如何呢?

1長安福特-翼博

指導價:9.48-12.78萬元

一句話:底盤好於預期,1.5L動力伐善可陳

翼博的造型給人短小精悍的感覺,正面看過去映入眼帘的是那個多邊形的大面積進氣格柵,彷彿與短小的車身不太協調,但是單看車頭的話確實是蠻大氣的。側面可以看到車身線條是稍微前傾的,下包圍是黑色塑料材質,顯得車身更高。車尾造型方正,外掛的備胎很有特色。

內飾中控和嘉年華如出一轍,中控面板微微斜傾,比較親近駕駛者,內飾主要是塑料材質,不太有高級感,但按鍵的質感並不差,中控有一個尺寸較小的單色屏,集成了SYNC多媒體系統,雖然不是最新的SYNC3,但是基本的多媒體功能還是能夠滿足的。

翼博搭載1.0T+5MT或者1.5L+5MT/6速雙離合的動力系統,最大馬力分別是125pS和110pS,1.5L版本的動力表現確實不太积極,而且13年上市的車型,雙離合的調校還未夠火候,低擋位的頓挫還是比較明顯。至於1.0T版本的動力就积極很多,1500轉左右就能感受到翼博已經活躍起來,只可惜沒有自動擋車型。

有人可能會擔心,翼博這個短而高的車身,會不會造成比較差的行駛穩定性?然而事實並不是,翼博的高速穩定性十分出色,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

甚至超出了同級別的水準。高速併線時車身十分穩定,可以感受到翼博的懸挂質感十分紮實,整體調校是偏舒適的。

2東風標緻-2008

指導價:9.97-16.37萬元

一句話:內飾做工有待提升,行駛品質驚喜滿滿

標緻2008造型圓潤,車身姿勢較低,外形看起來更加偏向於一輛跨界車。前臉造型比較含蓄,鍍鉻中網沒有使用大口式設計,車標也被放在了引擎蓋上,這也是標緻上一代車型比較普遍的一個設計。側面造型看起來更像一輛跨界車了,還能看到尾燈位置有一個“C”字造型,很有設計感。

2008的內飾簡潔內斂而不是時尚感,整體氛圍十分和諧。內飾面板分上下兩層,分別是硬質塑料盒軟質的織物材料,手觸及的地方都是柔軟的。只是內飾在做工上還是有不完美的地方,如空調的旋鈕,天窗控制區乾脆的塑料板,在做工上都不夠好。

動力方面,標緻2008搭載1.2T、1.6L和1.6T的發動機,自吸版本的變速箱為4AT,渦輪版本的變速箱為6AT,不怕老實說,最推薦的還是1.2T的車型,136pS的馬力,放棄了老舊的4AT,無論是動力表現、燃油經濟性,還是性價比,都是三個排量裏面最好的,家用足夠,平時代步也不會十分寒酸。

底盤和轉向的調校一直都是法系車的強項,我們確實不用擔心。標緻2008的懸挂調校偏向舒適,但並不是那種無底線的柔軟,在支撐性方面也有一定的表現,整體操控雖然不能說是指哪打哪,但是併線和轉彎的時候絲毫不用擔心會有嚴重的側傾,家用車有這個行駛品質,算是很不錯的了。

3廣汽菲克Jeep-自由本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

逼格有多高?關鍵看車門!這些車門我能玩一年!_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

馬自達RX-8使用對開門的初衷和寶馬i3較為相似,主要是為了方便乘客進入後排座椅,不過即使是再怎麼方便,相信也沒幾個人願意坐在RX-8的後排。鷗翼式車門向300 SL Gulling致敬的奔馳SLS-AMG,僅靠鷗翼式車門就能夠收集眾人的目光,雖然鷗翼門非常炫酷,但是日常的使用當中難免會顯得麻煩,看門前要觀察上下左右各個方位,確保有足夠空間才能夠開門。

《女子騎車突遇汽車開門:被撞倒地遭碾壓身亡》、《騎車男子遭前方車輛開門撞倒 又被公交碾壓》類似這樣的新聞幾乎每個月都能夠看見,每次看到這樣的新聞都會不禁感嘆,為什麼這麼多血的教訓擺在面前,都不懂得珍惜生命。

其實在現實中,有很多人都是沒有觀察後方路況就隨意開門的,只不過是運氣好,沒有發生意外而已。無論是在路上開車還是騎車走路,我們都要對停在路邊的車輛額外注意,盡量遠離車門,真的可能隨時來一個謀殺式的開門。

在路邊停車后開門下車前,一定要觀察後方路況,這樣的話都不知道說了多少千百遍了,既然大家都不放在心上,那麼我們也就不管了(就是這麼任性),我們來看看車門的“藝術”吧。

1989年,寶馬推出了一款很特別的跑車-寶馬Z1,它擁有着隱藏式的車門,開門時通過伸縮的方式隱藏在車身內,這樣的車門結構,能夠從源頭降低發生意外的幾率,可惜這輛神奇的寶馬Z1總共才生產了8000輛,並且只在德國和美國銷售,估計現在存活的已經很少,並且都是在收藏家手中了。

對開式車門有着“自殺式車門”的稱號,經常被人調侃,主要都是說車輛行駛當中後車門無意打開會發生怎樣怎樣的情況,其實廠家也會想到這些情況,在開門邏輯與安全性上都不斷在優化。

勞斯萊斯一直在堅持使用對開式車門,賦予了對開式車門優雅的調性,而不是什麼炫酷,據說勞斯萊斯的對開門設計,

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

還有隱藏在車門內的雨傘,就是為了女星門走紅毯設計的,能夠提供一個相對私密的空間方便下車。

寶馬i3的對開門設計非常激進,取消了車輛B柱的設計,直接用車門車門作為支撐,i3的對開門最主要目的是方面後排乘客上下車,並且有利於提供更大的車廂空間。

馬自達RX-8使用對開門的初衷和寶馬i3較為相似,主要是為了方便乘客進入後排座椅,不過即使是再怎麼方便,相信也沒幾個人願意坐在RX-8的後排。

向300 SL Gulling致敬的奔馳SLS-AMG,僅靠鷗翼式車門就能夠收集眾人的目光,雖然鷗翼門非常炫酷,但是日常的使用當中難免會顯得麻煩,看門前要觀察上下左右各個方位,確保有足夠空間才能夠開門。

如果要問什麼是鷗翼門的終極形態,那麼就不得不說到特斯拉-MODEL X了,電動開啟的鷗翼門,能夠通過傳感器探知周圍情況,從而調整車門開啟角度,即使是狹窄的空間也能夠開啟車門。

剪刀門一直都是蘭博基尼的慣用伎倆,就像是傳統文化一樣,兩者不可分離。剪刀門改裝文化也十分博大精深,改裝剪刀門也不用付出高昂的費用,所以在很多改裝車展、聚會上都能夠看見。

既像鷗翼門,也像剪刀門,將兩者融合之後,就是蝴蝶門。法拉利的靈魂-法拉利ENZO就是使用蝴蝶門,還有速度怪獸LaFerrari、奔馳SLR、邁凱倫p1。

不知道將科尼賽克-Agera的車門稱之為旋轉式車門合不合適,反正它不是隱藏式,不是對開式,不是鷗翼式,不是蝴蝶門,也不是剪刀門,非常特別,打開車門后,整個車門就像是擰瓶蓋一樣旋轉出來。

雖然這種旋轉式車門不需要很大的垂直空間,但是一定要非常留意橫向空間,千萬不要靠近馬路牙子,因為車門打開后就像是放在地上一樣,離地間隙很小。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

你一定不知道!白富美最愛小車在國外僅僅只是用來買菜_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

真正的初代甲殼蟲——大眾Type 1,在戰後的1946年才得以重新量產並且投入民用。隨後的數十年甲殼蟲成為了熱銷車型的代名詞,在1972年前後,甲殼蟲超越率先開展流水線生產的福特T型轎車成為全球銷量最高的轎車。設計簡單,品質耐用的大眾甲殼蟲讓眾多消費者異常喜愛,直至二十一世紀初,甲殼蟲的累計產量已經超過兩千萬台。

甲殼蟲,大眾品牌旗下知名度極高的車型,在國內擁有甲殼蟲的車主一般非富即貴。動輒三十多萬的售價在國內甚至可以接觸到BBA級別的豪華品牌,但或許你並不知道,這款深得國內白富美女性車主喜愛的小型座駕其實在德國僅僅是一台買菜級的小車。

大眾(進口)甲殼蟲

指導價格:19.18-33.00萬

首先得說說大眾這個品牌,大眾的德文Volkswagen直譯過來便是“人民汽車”;1933年戰爭狂人希特勒當選成為德國總理,國民汽車計劃的構想也應運而生,有着同樣的“人民汽車”計劃的費迪南德-波爾舍博士則成為了大眾汽車的功勛設計師。

甲殼蟲這款車不是大眾集團旗下最昂貴的,但是身份絕對是最尊貴的,1937年,德國大眾汽車公司成立,1938年,大眾汽車開始生產第一款車型——KdF-Wagen。這款以“快樂就是力量(KdF)”命名的轎車便是後來的甲殼蟲(Beetle)。

由於二戰,原本設立生產KdF汽車的工廠以及KdF車型都被轉為軍事用途,民眾並沒有機會享受到用車的幸福。真正的初代甲殼蟲——大眾Type 1,在戰後的1946年才得以重新量產並且投入民用。

隨後的數十年甲殼蟲成為了熱銷車型的代名詞,在1972年前後,

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

甲殼蟲超越率先開展流水線生產的福特T型轎車成為全球銷量最高的轎車。設計簡單,品質耐用的大眾甲殼蟲讓眾多消費者異常喜愛,直至二十一世紀初,甲殼蟲的累計產量已經超過兩千萬台。

編輯總結:甲殼蟲其實在德國就是以廉價為特點的車型,這也成為外國特別是歐洲國家家庭用戶首選車型之一,但是在汽車普及相對較晚的中國,車身尺寸小,而且雙門設計的甲殼蟲並不適應國內群眾的用車訴求,而成為國內人民群眾廣泛接受的車型是當年的捷達以及桑塔納。

到目前為止,甲殼蟲依舊採取的是純進口的方式在國內進行銷售,現款的甲殼蟲依舊保持了當年初代甲殼蟲應該有的特點,三門掀背以及敞篷的設計,讓甲殼蟲成為了很多追求用車個性化人士的青睞之選。

現在國內的甲殼蟲普遍是作為有車家庭的第二台車,而且駕駛的基本上是以女性車主居多,的確,操控輕便敏捷,外觀設計圓潤可愛的高顏值的確很受女車主的喜愛。

其實小編個人還是對於甲殼蟲國產化有着那麼一絲期待,畢竟在當今的中國汽車消費市場,購車人群年輕化,車型選擇個性化的趨勢已經越來越明顯。這麼一款年輕人普遍抱有好感,但是由於售價比肩大多數合資B級車的個性化轎車,還是讓人有些望而卻步。

pS:上文所提及的“KdF”是德國勞工聯盟旗下所屬的一個度假組織的名稱,以此為甲殼蟲的原型車命名,也是證明了當時德國大眾汽車公司對於該款車型的定位就是想讓其成為全國人民每人都買得起、用得上的汽車;工業化時代下的人民生活,汽車的普及是每一個國家每一個家庭幸福指數得以提高的重要表現。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

不可不知的輔助測試的Fiddler小技巧,Fiddler抓包工具使用詳解,利用Fiddler攔截接口請求並篡改數據,Fiddler使用過程中容易忽略的小技巧,Mock測試,結合Fiddler輕鬆搞定不同場景_包裝設計

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

在以前的博文中,時常有分享Fiddler的一些使用技巧,今天再貼下。

Fiddler抓包工具使用詳解

利用Fiddler攔截接口請求並篡改數據

Fiddler使用過程中容易忽略的小技巧

Mock測試,結合Fiddler輕鬆搞定不同場景

以上這些,就是以前的一些實踐總結。今天,再來分享一個不可不知的小技巧,實際工作當中,是可以輔助自己完成測試的。

模擬弱網

相信大家在進行測試過程中,都會關注到弱網測試。web端是可以通過瀏覽器的開發者工具中的Network設置網絡數據,app端也可以通過切換網絡的形式來進行測試。

其實,Fiddler也是支持模擬弱網測試的。通過Fiddler設置后,web和app都可以一併模式。

固定延遲設置方式

啟動Fiddler工具>找到FiddlerScript頁簽>按m_SimulateModem搜索。

找到如下所示內容【限速函數】,修改參數即可:

修改代碼中的參數,將300修改為3000,也就是3S,如下:

if (m_SimulateModem) {
            // Delay sends by 300ms per KB uploaded.
            oSession["request-trickle-delay"] = "3000"; 
            // Delay receives by 150ms per KB downloaded.
            oSession["response-trickle-delay"] = "150"; 
        }  

此時,保存修改后的Script代碼即可,如下所示:

數據保存后,如何使其生效呢?按如下操作即可。

在Fiddler中,按如下路徑配置即可:Rules>Performance>Simulate Modem Speeds。

具體操作,如下圖所示:

此時,再刷新頁面,我們可以從Fiddler面板中的Time參數看出,每個接口的響應時間都延時3s,如下所示:

網絡延遲時間如何計算?

比如你要模擬上傳速度100KBps的網絡,那上傳延遲就是1KB/100KBps=0.01s=10ms,就改成10。

隨機延遲設置方式

我們從上述操作看出,配置限速參數后,每個接口都是固定的延遲時間。但實際使用場景中,這種情況是比較少的。基本上都是有時快,有時慢的情況。那是否可以設置隨機延遲呢?答案肯定是可以的。我們繼續來看。

我們依然在FiddlerScript頁簽中操作,加入如下代碼,代碼如下所示:

static function randInt(min, max) {
  return Math.round(Math.random()*(max-min)+min);
  }
  if (m_SimulateModem) {
  // Delay sends by 300ms per KB uploaded.
  oSession["request-trickle-delay"] = ""+randInt(1,2000);
  // Delay receives by 150ms per KB downloaded.
  oSession["response-trickle-delay"] = ""+randInt(1,2000);
  }  

保存修改后的代碼,並重新啟用配置即可。

模擬發包

測試過程中,想模擬一個接口請求,一般是通過Postman、Jmeter、soupUI,常用的是Postman。我們Fiddler能不能模擬接口請求呢?這個是可以的,我們來看。

我們切換到Composer頁簽,如下所示:

從圖中可知,是可以模擬很多種請求方式的。我們就來實際操作一番。

POST請求

我們先來操作個POST請求,選擇POST請求方式,填寫接口與參數如下:

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

接口與參數填寫正確后,點擊右上角的Execute按鈕即可請求接口。我們來看下請求數據:

我們先來看請求頭,接口請求頭中的User-Agent參數,如下所示:

用戶代理來源是Fiddler,就是剛才我們通過Fiddler工具請求的數據。

我們再來看響應,接口請求成功,正常響應並獲取到token數據,如下所示:

GET請求

剛才操作的是POST請求,現在來看個GET請求。操作方式都一樣,將請求方式切換成GET,填寫接口與參數,並點擊Execute按鈕,配置如下所示:

我們依然來看接口數據,先看請求頭參數:

 

User-Agent參數依然是Fiddler,說明是從Fiddler工具中發出的請求。

再來看響應數據,如下所示:

以上就是通過Fiddler模擬請求POST和GET請求了,其他方式類似。

模擬併發

在我們測試中,也會關注到,一個接口同時請求多次,會不會產生錯誤,比如:重複數據。那這次就需要考慮併發情況了。

Fiddler工具依然還是支持該操作,具體如下:

我們先選中已抓取的任一接口,點擊右鍵,並選擇Replay>Reissue Sequentially,也可以快捷鍵【Shift + R】如下所示:

點擊后,會彈出如下彈框,設置請求次數,如下所示:

默認是5,那我們改成3,並點擊OK按鈕,來看界面,如下所示:

我們可以看到,同時請求了3次,簡單模擬了併發測試,但實際是不及Jmeter工具的,畢竟這個也只是模擬,而Jmeter要專業許多。

了解完了併發使用,但還有些其他參數沒有介紹,我們來了解下其他參數,說不準以後也有用途。如下所示:

  • Reissue Requests:重發選中的請求
  • Reissue Unconditinally:無條件重發選中的請求
  • Reissue and eidt:重發並編輯,會打開一個加了斷點的請求,可以進行請求和響應數據的修改
  • Reissue and verify:重發並驗證,重新發送請求,並驗證其請求結果,會自動加標識(背景顏色)
  • Reissue Sequentially:重發序列,打開一個數量設置界面,標識需要重發多少次請求
  • Reissue from Composer:重發並打開composer界面,可以編輯或發送
  • Revisit in IE:在IE上發起這個請求

問題總結

在使用Fiddler模擬請求發包時,有時會操作失敗,比如通過百度查詢數據,GET接口,有時Caching參數不帶private參數就響應了302,正常帶該參數,是可以響應成功的,如下所示:

不知為何會出現,不帶該參數的情況。有遇到的博友,望提點一二。

 

好了,今天的這三個Fiddler技巧,就分享到這了,個人覺得在實際測試過程中,這三個技巧還是有幫助的。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

軸距2.7米排量2.0L 最便宜的專車回本神器僅8萬起?_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

89萬軸距:2805mm雖然帝豪EC8的表現不那麼讓人滿意,但是EC8在上市之初還是讓人驚訝了一把,吉利的造車水準越來越好,在EC8那一時期就有所體現,EC8定位中級車,敦實霸氣的外觀甚至有幾分奧迪A8的感覺。2805mm的軸距也是標準的中級車水準。

比亞迪G6

指導價:7.98-11.58萬

軸距:2745mm

比亞迪G6是比亞迪旗下的一款中級轎車,比亞迪作為價格屠夫旗下的車型一直都是十分有性價比的,G6也是很有性價比的一款中級轎車,7.98-11.58萬的售價只有合資中級車的一半左右,但是搭載的2.0L發動機以及各種配置一點都不弱,4860*1825*1463mm的車身尺寸也比較大,視覺效果不錯。

有着龐大的尺寸的比亞迪G6在內部空間上也比較優秀,尤其是後排橫向空間十分寬敞,G6的內飾設計沒有什麼特色,整體屬於比較中規中矩的設計風格,但是儀錶盤設計還是很有比亞迪的特色的。內飾的用料和做工也達到中級車的水準。

納智捷-納5

指導價:8.58-11.98萬

軸距:2720mm

納智捷-納5屬於大緊湊型轎車,全系搭載1.8T發動機,並且軸距也超過了2720mm,但是售價只需要8.58萬起,對於想要購買軸距2700mm以上的,發動機1.8T以上或者2.0L的消費者來說,這款車型也是比較划算的。

納智捷-納5的內飾也是屬於比較有新意的,尤其是儀錶盤的設計,很有科技感,但是閱讀起來需要一定的時間適應,內飾的用料和做工也都不錯。

吉利汽車-吉利EC8

指導價:8.89-11.89萬

軸距:2805mm

雖然帝豪EC8的表現不那麼讓人滿意,但是EC8在上市之初還是讓人驚訝了一把,吉利的造車水準越來越好,在EC8那一時期就有所體現,EC8定位中級車,敦實霸氣的外觀甚至有幾分奧迪A8的感覺。2805mm的軸距也是標準的中級車水準。

EC8的內飾也屬於比較方正的設計,

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

整體內飾十分的好用,但是在內飾造型設計上顯得有點古板了,儀錶盤的樣式也有些過時,不過考慮到這麼大的車這樣的價位,夫復何求呢?

一汽奔騰-奔騰B70

指導價:9.98-14.98萬

軸距:2725mm

奔騰B70的外觀有幾分馬自達的感覺,當然B70本身在底盤等部分也和馬自達有着一定的關係,因此B70的底盤表現比較讓人滿意,作為一台中級車,B70也有着不錯的尺寸,只是2725mm的軸距在中級車中實在拿不出手了。

內飾上B70倒是很有自己的設計,尤其是中控台的造型相當的別緻,在內飾的做工上B70也十分的規整,做工值得表揚,有着大廠風範,儀錶設計比較簡約,但是閱讀起來十分的方便,信息显示也很豐富,頗有幾分日系車的設計思路。

眾泰Z700

指導價:9.98-15.88萬

軸距:3000mm

軸距3000mm的眾泰Z700是一台不折不扣的中大型轎車,雖然尺寸大但是售價仍然十分親民,9.98萬的起售價許多人都可以買得起,但是眾泰的質量一直受人詬病,這款Z700屬於上市不久的新車,質量表現就有待市場檢驗了。

Z700最有爭議的就在內飾設計上,Z700幾乎是原封不動的移植了奧迪A6L的設計,甚至連MMI系統都模仿了,不過對於中大型車來說,尤其是自主車型來說,這樣的設計方法也是最簡單粗暴的。Z700整個內飾可以說豪華和山寨感充斥着,也別有一番風味。

誰說2.0L/1.8T+2700mm以上軸距的車型就很貴呢?其實7.98萬起就能夠買到嘛,自主車總是能夠給我們帶來那麼多充滿驚喜的高性價比產品,這裏衷心地為我們的自主品牌迪鼓個掌,你們說是不是呢?本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。