精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

最近租房有點(diǎn)煩!技術(shù)人如何用Python找到稱心如意的“小窩”?

原創(chuàng)
開發(fā) 后端 開發(fā)工具
北京西紅門鎮(zhèn)新建二村“聚福緣公寓”突發(fā)火災(zāi)。火災(zāi)后,隨之而來的是一場全北京市的“安全隱患大排查大清理大整治”風(fēng)暴。

[[212048]]

【51CTO.com原創(chuàng)稿件】11 月 18 日,北京西紅門鎮(zhèn)新建二村“聚福緣公寓”突發(fā)火災(zāi)。火災(zāi)后,隨之而來的是一場全北京市的“安全隱患大排查大清理大整治”風(fēng)暴。

聚集著幾萬外來務(wù)工人員的新建村在幾天之內(nèi)被清理一空。很多人正面臨著要重新找房子或是離開北京的問題。

違建的公寓正在消失,危房出租正在被拆,這些被“風(fēng)暴”涉及到的外來上班族怎么辦?只有接受現(xiàn)實(shí),勇敢面對。

為了生存,為了能留在帝都,為了改變?nèi)松⒊鋈祟^地,再貴的房子他們都要租,或者他們可以再尋找一處稍遠(yuǎn)點(diǎn)的房子。

租房的煩惱,相信大家或多或少都有過。獨(dú)自一人在大都市打拼,找個(gè)溫暖的小窩實(shí)屬不易,租個(gè)稱心又價(jià)格公道的房子是件重要的事兒。

站在技術(shù)人的角度,今天我就如何從各大租房網(wǎng)的房源里面,找到最稱心如意的小窩做些分享,供大家參考。

在找房子的過程中我們最關(guān)心是價(jià)格和通勤距離這兩個(gè)因素。關(guān)于價(jià)格方面,現(xiàn)在很多租房網(wǎng)站都有,但是這些租房網(wǎng)站上沒有關(guān)于通勤距離的衡量。

對于我這種對帝都不是很熟的人,對各個(gè)區(qū)域的位置更是一臉懵逼。所以我就想著能不能自己計(jì)算距離呢,后來查了查還真可以。

實(shí)現(xiàn)思路就是:先抓取房源信息,然后獲取房源的經(jīng)緯度,***根據(jù)經(jīng)緯度計(jì)算公司與具體房源之間的距離。

我們在獲取經(jīng)緯度之前,首先需要獲取各個(gè)出租房所在地的名稱,這里獲取的方法是用爬蟲爬取鏈家網(wǎng)上的信息。

Xpath 介紹

在爬取鏈家網(wǎng)的信息的時(shí)候用的是 Xpath 庫,這里對 Xpath 庫做一個(gè)簡單的介紹。

Xpath 是什么

Xpath 是一門在 XML 文檔中查找信息的語言。Xpath 可用來在 XML 文檔中對元素和屬性進(jìn)行遍歷。

Xpath 在查找信息的時(shí)候,需要先對 requests.get() 得到的內(nèi)容進(jìn)行解析,這里是用 lxml 庫中的 etree.HTML(html) 進(jìn)行解析得到一個(gè)對象 dom_tree,然后利用 dom_tree.Xpath() 方法獲取對應(yīng)的信息。

Xpath 怎么用

Xpath 最常用的幾個(gè)符號就是“/”、“//”這兩個(gè)符號,“/”表示該標(biāo)簽的直接子節(jié)點(diǎn),就比如說一個(gè)人的眾多子女,而“//”表示該標(biāo)簽的后代,就比如說是一個(gè)人的眾多后代(包括兒女、外甥、孫子之類的輩分)。

更多詳細(xì)內(nèi)容這里就不 Ctrl C/V了。

數(shù)據(jù)抓取

我們本次抓取數(shù)據(jù)的流程是先獲得目標(biāo)網(wǎng)頁 url,然后利用 requests.get() 獲得 html,然后再利用 lxml 庫中的 etree.HTML(html) 進(jìn)行解析得到一個(gè)對象 dom_tree,然后利用 dom_tree.Xpath() 方法獲取對應(yīng)的信息。

先分析目標(biāo)網(wǎng)頁 url 的構(gòu)造,鏈家網(wǎng)的 url 構(gòu)造還是很簡單的,頁碼就是 pg 后面的數(shù)字,在租房這個(gè)欄目下一共有 100 頁,所以我們循環(huán) 100 次就好啦。

還有就是明確我們要獲取的信息,在前面我們說了目標(biāo)是要研究公司附近的出租房信息,但是我們在租房的時(shí)候也不是僅僅考慮距離這一個(gè)因素。

這里我準(zhǔn)備獲取標(biāo)題、價(jià)格、區(qū)域(大概在哪一塊)、看房人數(shù)(說明該房的受歡迎程度),樓層情況(高樓層還是低樓層),房租建筑時(shí)間等等。(就是你能看到的信息差不多都要弄下來哈哈)。

開始代碼部分:

  1. #導(dǎo)入相關(guān)庫 
  2. from lxml import etree 
  3. import requests 
  4. from requests.exceptions import ConnectionError 
  5. import pandas as pd 
  6. #獲取目標(biāo)網(wǎng)頁的url 
  7. def get_page_index(): 
  8.     base="https://bj.lianjia.com/zufang/pg" 
  9.     for i in range(1,101,1): 
  10.         url=base+str(i)+"/" 
  11.         yield url#yield為列表生成器 

得到目標(biāo)網(wǎng)頁的 url 后,對其進(jìn)行解析,采用的方法是先用 lxml 庫的 etree 對 response 部分進(jìn)行解析,然后利用 Xpath 進(jìn)行信息獲取。

  1. #請求目標(biāo)網(wǎng)頁,得到response 
  2. def get_page_detail(url): 
  3.     try: 
  4.         response=requests.get(url) 
  5.         if response.status_code==200: 
  6.             return etree.HTML(response.content.decode("utf-8")) 
  7.             #lxml.etree.HTML處理網(wǎng)頁源代碼會(huì)默認(rèn)修改編碼 
  8.         return None 
  9.     except ConnectionError: 
  10.         print ("Error occured"
  11.         return None 
  1. #解析目標(biāo)網(wǎng)頁 
  2. #title為房屋標(biāo)題;name為小區(qū)名稱;catogery為房屋類別(幾室?guī)讖d) 
  3. #size為房屋大小;region為區(qū)域;PV為看房人數(shù); 
  4. #second_feature為高低樓層;third_feature為房屋建筑時(shí)間 
  5. def parse_page_detail(dom_tree): 
  6.     try: 
  7.         title=dom_tree.xpath('//li/div[2]/h2/a/text()'
  8.         name=dom_tree.xpath('//li/div[2]//div/a/span/text()'
  9.         catogery=dom_tree.xpath('//li/div[2]//div//span[1]//span/text()'
  10.         size=dom_tree.xpath('//li/div[2]//div//span[2]/text()'
  11.         region=dom_tree.xpath('//li/div[2]//div[1]//div[2]//div/a/text()'
  12.         PV=dom_tree.xpath("//li/div[2]//div[3]//span[@class='num']/text()"
  13.         price=dom_tree.xpath("//li/div[2]//div[2]//span[@class='num']/text()"
  14.         date=dom_tree.xpath("//li/div[2]//div[2]//div[@class='price-pre']/text()"
  15.         first_feature=dom_tree.xpath('//li/div[2]//div[1]//div[3]//span[@class="fang-subway-ex"]/span/text()'
  16.         other=dom_tree.xpath('//li/div[2]//div[1]//div[2]//div/text()'
  17.         name1=[] 
  18.         catogery1=[] 
  19.         size1=[] 
  20.         second_feature=[] 
  21.         third_feature=[] 
  22.         for n in name
  23.             name2=n[0:-2] 
  24.             name1.append(name2) 
  25.         for c in catogery: 
  26.             catogery2=c[0:-2] 
  27.             catogery1.append(catogery2) 
  28.         for s in range(0,59,2): 
  29.             size2=size[s][0:-2] 
  30.             size1.append(size2) 
  31.             second_feature1=other[s] 
  32.             second_feature.append(second_feature1) 
  33.         for m in range(1,60,2): 
  34.             third_feature1=other[m] 
  35.             third_feature.append(third_feature1) 
  36.         return { 
  37.             "title":title, 
  38.             "name":name1, 
  39.             "catogery":catogery1, 
  40.             "size":size1, 
  41.             "region":region, 
  42.             "price":price, 
  43.             "PV":PV, 
  44.             "second_feature":second_feature, 
  45.             "third_feature":third_feature, 
  46.             "other":other       
  47.         } 
  48.     except
  49.         pass 
  1. #對獲得目標(biāo)內(nèi)容進(jìn)行整理導(dǎo)出 
  2. #建立一個(gè)空的DataFrame 
  3. df1=pd.DataFrame(columns=["title","name","catogery""size","region","price","PV"
  4.         "second_feature","third_feature","other" ]) 
  5. i=0 
  6. if __name__=="__main__"
  7.     urls=get_page_index() 
  8. for url in urls: 
  9.     dom_tree=get_page_detail(url) 
  10.     result=parse_page_detail(dom_tree) 
  11.     df2=pd.DataFrame(result) 
  12.     df1=df1.append(df2,ignore_index=False,verify_integrity=False
  13.     i=i+1 
  14.     print(i) #打印出目前爬取的頁數(shù)   
  15. #保存數(shù)據(jù)到本地 
  16. df1.to_csv("D:\\Data-Science\\Exercisedata\\lianjia\\result.csv")
  1. df1.info#打印出爬蟲結(jié)果的基本信息  

通過上圖可以看出,我們一共抓取到 2970 條房屋信息,9columns。

  1. df1.head(3)#預(yù)覽前3行 

經(jīng)緯度的獲取

我們剛剛只是獲取了一些出租房的基本信息,但是我們要想計(jì)算距離還需要獲得這些出租房所在的地理位置,即經(jīng)緯度信息。

這里的經(jīng)緯度是獲取的區(qū)域?qū)蛹壍模创蟾艑儆谀囊粋€(gè)片區(qū),本次爬取的 2970 條房屋信息分布在北京的 208 個(gè)區(qū)域/區(qū)域。

關(guān)于如何獲取對應(yīng)地點(diǎn)的經(jīng)緯度信息,這里利用的 XGeocoding_v2 工具:

獲取經(jīng)緯度信息的地址如下:http://www.gpsspg.com/maps.htm

得到如下的結(jié)果(LATB 表示維度,LNGB 表示經(jīng)度):

距離的計(jì)算

  1. #經(jīng)緯度的計(jì)算函數(shù) 
  2. # input Lat_A 緯度A 
  3. # input Lng_A 經(jīng)度A 
  4. # input Lat_B 緯度B 
  5. # input Lng_B 經(jīng)度B 
  6. output distance 距離(km) 
  7. def calcDistance(Lat_A, Lng_A, Lat_B, Lng_B): 
  8.     ra = 6378.140  # 赤道半徑 (km) 
  9.     rb = 6356.755  # 極半徑 (km) 
  10.     flatten = (ra - rb) / ra  # 地球扁率 
  11.     rad_lat_A = radians(Lat_A) 
  12.     rad_lng_A = radians(Lng_A) 
  13.     rad_lat_B = radians(Lat_B) 
  14.     rad_lng_B = radians(Lng_B) 
  15.     pA = atan(rb / ra * tan(rad_lat_A)) 
  16.     pB = atan(rb / ra * tan(rad_lat_B)) 
  17.     xx = acos(sin(pA) * sin(pB) + cos(pA) * cos(pB) * cos(rad_lng_A - rad_lng_B)) 
  18.     c1 = (sin(xx) - xx) * (sin(pA) + sin(pB)) ** 2 / cos(xx / 2) ** 2 
  19.     c2 = (sin(xx) + xx) * (sin(pA) - sin(pB)) ** 2 / sin(xx / 2) ** 2 
  20.     dr = flatten / 8 * (c1 - c2) 
  21.     distance = ra * (xx + dr) 
  22.     return distance 
  1. #具體的計(jì)算 
  2. #Lat_A,Lng_A為你公司地址,這里以望京為例, 
  3. #你可以輸入你公司所在地 
  4. Lat_A=40.0011422082; Lng_A=116.4871328088 
  5. Distance0=[]#用于存放各個(gè)區(qū)域到公司的距離 
  6. region=[] 
  7. for r in range(0,208,1): 
  8.     Lat_B=df3.loc[r][1];Lng_B=df3.loc[r][2] 
  9.     distance=calcDistance(Lat_A, Lng_A, Lat_B, Lng_B) 
  10.     Distance1='{0:10.3f} km'.format(distance) 
  11.     region0=df3.loc[r][0] 
  12.     Distance0.append(Distance1);region.append(region0) 
  13. date={"region":region,"Distance":Distance0}     
  14. Distance_result=pd.DataFrame(date,columns=["region","Distance"]) 

***將距離以及區(qū)域與對應(yīng)的小區(qū)拼接在一起,得到下面的結(jié)果。

進(jìn)一步分析

  1. #導(dǎo)入相關(guān)庫 
  2. % matplotlib inline 
  3. import pandas as pd 
  4. import numpy as np 
  5. import matplotlib.pyplot as plt 
  6. plt.style.use("ggplot"
  7. #導(dǎo)入合并后的文件 
  8. df=pd.read_csv("D:\\Data-Science\\Exercisedata\\lianjia\\lianjia-rental.csv",encoding="gbk",index_col="name"
  9. df.head() 

  1. df.info() 

通過 df.info() 可以看出,總共有 2454 條數(shù)據(jù),這是在爬蟲獲取的 2970 條數(shù)據(jù)去重以后得到的。

在這些項(xiàng)中,size(房屋面積)、second_feature 以及 third_feature 均帶有單位,為了后續(xù)分析方便,這里統(tǒng)一進(jìn)行去單位(后綴)操作。

  1. df["size"]=[i[0:-2] for i in df["size"]]  
  2. df["Distance"]=[i[0:-2] for i in df["Distance"]]  
  3. df["second_feature"]=[i[0:3] for i in df["second_feature"]]  
  4. df["third_feature"]=[i[0:4] for i in df["third_feature"]]  
  5. df.head() 

  1. df.info()  

我們把后綴去掉了,Size、third_feature 和 Distance 看上去是數(shù)字,但是通過 df.info() 看出,這兩個(gè)指標(biāo)類型依然是 Object。為了進(jìn)一步分析,我們要對它們繼續(xù)進(jìn)行處理。

  1. df["size"]=df["size"].astype(np.int32)  
  2. df["Distance"]=df["Distance"].astype(np.float64)  
  3. df["price"]=df["price"].astype(np.int32)  
  4. df["third_feature"]=df["third_feature"].astype(np.int32)  
  5. df.info()   

再次通過 df.info() 看出,該是數(shù)字類型的指標(biāo)全部變成了 int/float 了,可以進(jìn)行下一步了。

在文章剛開頭就說過,一般租房最看重的兩個(gè)因素就是距離&價(jià)格,價(jià)格可以直接在那些租房網(wǎng)上看到,肯定是越低越好,沒啥好說的。

主要是距離,關(guān)于距離,有兩種選擇方式,一種是先選出離你上班地最近的幾個(gè)區(qū)域,然后再在該區(qū)域內(nèi)具體選擇;另一個(gè)是可以設(shè)定你可以接受的通勤距離,然后以這個(gè)距離作為條件,在小于等于這個(gè)距離內(nèi)進(jìn)行篩選。

我們這里著重以***種為主,先選擇距離最近的幾個(gè)區(qū)域,然后在這幾個(gè)區(qū)域內(nèi)進(jìn)行選擇。

因?yàn)榫嚯x是按 Region 來進(jìn)行計(jì)算的,而表是按 Name 來統(tǒng)計(jì)的,所以要想計(jì)算出距離最近的 Region,需要先把 Region 和 Distance 部分提取出來,并合并成一個(gè) DataFrame。

  1. region=list(df.region) 
  2. Distance=list(df.Distance) 
  3. Distance_result_data={"region":region,"Distance":Distance} 
  4. Distance_result=pd.DataFrame(Distance_result_data) 
  5. Distance_result1=Distance_result.drop_duplicates() 
  6. Distance_result1.head() 

  1. #距離最近的Top10區(qū)域 
  2. Distance_result1.sort_values(by="Distance").head(10) 

  1. #對位置進(jìn)行可視化 
  2. top_region=Distance_result1.sort_values(by="Distance").head(10).region 
  3. top_Distance=Distance_result1.sort_values(by="Distance").head(10).Distance 
  4.  
  5. #繪制雷達(dá)圖 
  6. labels = np.array(top_region)#標(biāo)簽 
  7. dataLenth = 10#數(shù)據(jù)個(gè)數(shù) 
  8. data = np.array(top_Distance)#數(shù)據(jù) 
  9.  
  10. angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False
  11. data = np.concatenate((data, [data[0]])) # 閉合 
  12. angles = np.concatenate((angles, [angles[0]])) # 閉合 
  13.  
  14. fig = plt.figure() 
  15. ax = fig.add_subplot(111, polar=True)# polar參數(shù)!! 
  16. ax.plot(angles, data, 'ro-', linewidth=2)# 畫線 
  17. #ax.fill(angles, data, facecolor='r', alpha=0.25)# 填充 
  18. ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei"
  19. ax.set_title("距離望京最近的十個(gè)區(qū)域", va='bottom', fontproperties="SimHei"
  20. ax.set_rlim(0,6) 
  21. ax.grid(True
  22. plt.show() 

可以看到,Region=“望京”距離最近,所以我們重點(diǎn)在該區(qū)域內(nèi)選擇,接下來具體看看該區(qū)域內(nèi)租房情況。

  1. Top1=df[df.region=="望京租房"]#將望京的租房信息篩選出來 
  2. Top1.info() 

通過上表可以看到在望京區(qū)域總共有 101 套房源,接下來對這 101 套房源進(jìn)行深入分析。

  1. plt.subplot(131) 
  2. ax1=Top1.boxplot("price"
  3. ax1.set_ylim(0,90000) 
  4. plt.subplot(132) 
  5. ax2=Top1.boxplot("size"
  6. ax2.set_ylim(0,270) 
  7. plt.subplot(133) 
  8. ax3=Top1.boxplot("PV"
  9. ax3.set_ylim(-5,100) 

數(shù)據(jù)概覽,先對該區(qū)域的租房整體情況有個(gè)認(rèn)識,看到 Price 指標(biāo)的下界為 5000 左右,上界接近于 30000,中位數(shù)為 10000 出頭(有沒有感覺到好貴哈哈哈哈),但是我們也看到有一個(gè)大于 80000 的超級異常值,我們利用截尾均值對他進(jìn)行替代。

關(guān)于房屋大小,中位數(shù)為 100 平,這與 Price 中位數(shù)正好可以對應(yīng),折算下來相當(dāng)于 1 平 100 大洋,在與那些 10 平左右的合租房需要 2000+ 大洋比一比,是不是覺得還是 100 平 10000 大洋便宜哈。

所以論一平米的價(jià)格的話還是整租更便宜。

先找出那個(gè)大于 80000 的異常值具體值是多少,然后進(jìn)行值替換。

  1. Top1[Top1.price>80000]#通過圖表可以看出,異常值是大于80000,但是看不到具體是多少 

  1. #值替換 
  2. from scipy import stats 
  3. Top1.price.replace(83000,stats.trim_mean(Top1.price,0.1),inplace=True
  1. Top1.boxplot("price"

這是將 Price 異常值處理以后得到的箱型圖,看起來就比較規(guī)范了哈。

  1. plt.rcParams["font.sans-serif"]='SimHei' 
  2. plt.subplot(311) 
  3. grouped=Top1.groupby("second_feature")["price"
  4. ax4=grouped.count().plot.bar() 
  5. plt.subplot(312) 
  6. grouped2=Top1.groupby("third_feature")["price"
  7. ax5=grouped2.count().plot.bar() 
  8. plt.subplot(313) 
  9. grouped3=Top1.groupby("catogery")["price"
  10. ax6=grouped3.count().plot.bar() 
  11. plt.tight_layout() 

通過上圖可以看出:中樓層和高樓層的房源絕對數(shù)量基本持平,高出低樓層數(shù)量一半。

房屋修建時(shí)間也是 2003 年以后的居多,這就和前面的樓層類型可以對應(yīng)上了,在剛開始的時(shí)候(2003 年以前)大部分房子都是低樓層,隨著時(shí)代的進(jìn)步,科技的發(fā)展,人員的增多,樓層的數(shù)量和房屋的數(shù)量也隨之增加。

房屋類型上的 Top3 類型分別為:2 室 1 廳、3 室 2 廳和 1 室 1 廳。

  1. #房屋修建時(shí)間與價(jià)格的散點(diǎn)圖 
  2. Top1.plot.scatter(x="third_feature",y="price"

通過上圖可以看出,隨著時(shí)間的推移,2003 年以后的房子的 Price 要明顯高于 2003 年以前的,如果要是對價(jià)格比較敏感,可以考慮 2003 年以前的房子。

  1. Top1.boxplot(column=["price"],by="catogery"
  2. plt.tight_layout() 

隨著房屋類型的升級,價(jià)格也是隨之升高,但是我們也發(fā)現(xiàn),有一些三室房子的價(jià)格(下邊界)要低于兩室的價(jià)格的,如果對房間數(shù)量和價(jià)格都有要求的可以考慮這部分房源。

  1. Top1.boxplot(column=["price"],by="second_feature"

通過上圖可以看到三個(gè)樓層的價(jià)格下界基本持平,但是中樓層的中位數(shù)和上界價(jià)格是要明顯高于其他兩個(gè)房型的,這也很正常,中樓層相比于其他兩個(gè)樓層的房屋是最宜居的啦,價(jià)格貴也正常。

當(dāng)然了,對于現(xiàn)在租房都很困難的環(huán)境下,哪還考慮什么宜居,當(dāng)然是挑價(jià)格低的房型。

  1. Top1_PV=Top1.sort_values(by="PV",ascending=False).head(20) 
  2. Top1_PV.head() 

按 PV 進(jìn)行降序,我們可以看出哪些房源是比較受歡迎,這些房源都有啥特征。

  1. plt.rcParams["font.sans-serif"]='SimHei' 
  2. plt.subplot(311) 
  3. grouped4=Top1_PV.groupby("second_feature")["price"
  4. ax7=grouped4.count().plot.bar() 
  5. plt.subplot(312) 
  6. grouped5=Top1_PV.groupby("third_feature")["price"
  7. ax8=grouped5.count().plot.bar() 
  8. plt.subplot(313) 
  9. grouped6=Top1_PV.groupby("catogery")["price"
  10. ax9=grouped6.count().plot.bar() 
  11. plt.subplots_adjust(left=0.2,right=1.0,top=1.6,bottom=0.2,hspace=0.5) 

  1. Top1_PV.plot.scatter(y="PV",x="price"

從圖中可以看到,低樓層的房源數(shù)量不是最多的,但是看房次數(shù)卻是最多的(***的),可能是低樓層價(jià)格低的原因吧。

2003 年和 2007 的房源 PV ***,這和該年代的房源絕對數(shù)量基本維持一致;兩室一廳的戶型最為火爆;在價(jià)格方面 10000 以下的房源比較受歡迎。

  1. Top1_PV.plot.scatter(y="PV",x="price"

結(jié)論

通過上面的分析我們可以得出一些參考:

  • 2003 年以前的房源的價(jià)格是要低于 2003 年之后的,對價(jià)格敏感的可以考慮 2003 年以前的房源。
  • 有一些三室的房子價(jià)格是低于兩室的,如果對房間數(shù)量和價(jià)格都有要求的可以考慮這部分。
  • 中樓層的價(jià)格整體上是要高于低樓層的,但是還有一部分是要比低樓層低,而且通過從 PV ***的樓層來看,低樓層的火爆程度要比中樓層高,所以可以尋找那些不那么火爆但是價(jià)格還低的中樓層。
  • 如果希望單位面積價(jià)格***,還是整租比較合適。

注:本次的數(shù)據(jù)為鏈家網(wǎng)的整租房源信息,非合租信息,所以你會(huì)看到價(jià)格都很高。

[[212051]]

張俊紅,中國統(tǒng)計(jì)網(wǎng)專欄作者,個(gè)人公眾號ID:zhangjunhong0428,數(shù)據(jù)分析路上的學(xué)習(xí)者與實(shí)踐者,與你分享我的所見、所學(xué)、所想。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2017-06-28 15:34:16

JDK模塊化Java9

2010-11-29 13:26:01

2018-04-26 10:38:34

2012-12-31 14:33:32

應(yīng)屆畢業(yè)生盧億雷

2011-04-29 12:54:00

筆記本

2018-01-26 11:11:01

顯卡N卡NVIDIA

2021-01-27 10:28:21

CISO升職加薪首席信息安全官

2022-06-30 21:15:01

Python安防系統(tǒng)景區(qū)

2021-08-19 17:22:45

手機(jī)功能屏幕

2018-09-02 15:15:30

Rpython租房

2021-05-07 13:20:39

Python機(jī)器人編程語言

2019-09-11 10:23:58

Redis性能存儲

2021-03-23 09:54:18

區(qū)塊鏈技術(shù)互聯(lián)網(wǎng)

2011-08-05 13:33:11

無線路由器

2015-04-03 12:47:14

NoSQL開源非關(guān)系型數(shù)據(jù)庫

2011-04-28 16:20:18

全能一體機(jī)使用心得

2011-05-27 11:21:58

打印機(jī)技巧

2012-05-16 15:03:55

愛普生投影機(jī)

2021-08-24 10:07:23

人臉識別人工智能技術(shù)

2017-10-18 11:21:15

下載工具迅雷下載
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

视频一区在线观看| 色鬼7777久久| 亚洲久久久久| 日韩一区二区高清| 久操手机在线视频| 日韩免费视频播放| 初高中福利视频网站| mm1313亚洲国产精品美女| 丝袜美腿亚洲一区二区图片| 在线日韩欧美视频| 天天操精品视频| a在线视频v视频| 成人动漫av在线| 奇米成人av国产一区二区三区| 亚洲精品成人无码| 韩国精品主播一区二区在线观看 | 亚洲aⅴ天堂av在线电影软件| 无码人妻久久一区二区三区不卡| 国产传媒欧美日韩成人精品大片| 欧美日本在线一区| 精品视频免费在线播放| 国产在线观看黄| 国产精品资源在线观看| 91精品国产91久久久久久不卡 | 国产偷人爽久久久久久老妇app | 欧美午夜宅男影院| 日韩国产小视频| 久久久久久女乱国产| 精品一区二区三区的国产在线播放| 久久久久九九九九| www.99热| 麻豆国产欧美一区二区三区r| 欧美性xxxxxxxx| 天天夜碰日日摸日日澡性色av| 91福利在线视频| 99精品视频在线免费观看| 国产原创欧美精品| 久久久久99精品成人片我成大片| 一本一本久久a久久综合精品| 精品国产亚洲在线| 91高清国产视频| 自拍在线观看| 天天色综合成人网| 丁香六月激情婷婷| 欧美亚洲系列| 亚洲精品水蜜桃| 亚洲国产精品影视| 国产原厂视频在线观看| 国产精品久久久久久久第一福利| 日韩精品成人一区二区在线观看| 免费在线观看一级毛片| wwwwxxxxx欧美| 国内精品**久久毛片app| 成人午夜福利视频| 99久久婷婷国产综合精品电影| 欧美美女在线| 中文字幕一区在线观看视频| 日日噜噜噜噜夜夜爽亚洲精品| 欧洲一区av| 久久久久青草大香线综合精品| 欧美精品在线一区| 免费在线一级视频| 欧美国产日韩在线观看| 亚洲国产精品久久久久婷婷老年 | 99re成人精品视频| 久久99国产精品| 男人的天堂av高清在线| 国产午夜一区二区三区| 亚洲国产欧美日韩| 日本中文字幕在线看| **性色生活片久久毛片| 丰满人妻一区二区三区53号| 91九色国产在线播放| 欧美视频在线观看免费| 久热免费在线观看| 朝桐光一区二区| 在线不卡欧美精品一区二区三区| 潘金莲一级淫片aaaaa| 国产精品极品| 国产亚洲a∨片在线观看| 国产精品麻豆一区| 亚洲婷婷免费| 国产精品草莓在线免费观看| 国产免费一区二区三区最新不卡| 国产精品18久久久久久久久久久久| 国产精品日产欧美久久久久| 国产91av在线| 一级久久久久久| 国产在线观看免费一区| 国产精品我不卡| 国产永久免费高清在线观看视频| 国产精品久久一级| 欧美黑人在线观看| 怡红院成人在线| 制服.丝袜.亚洲.另类.中文| 中文字幕在线视频播放| 精品美女久久| 欧美人在线视频| 黄色av一级片| 国产·精品毛片| 日韩av一区二区三区在线| 国产在线观看免费麻豆| 日韩欧美999| 日本在线播放一区二区| 精品精品国产毛片在线看| 国产一区二区三区高清在线观看| 中文字幕另类日韩欧美亚洲嫩草| 夜夜嗨网站十八久久| 91夜夜未满十八勿入爽爽影院 | 国产成人自拍在线| 日韩国产一区久久| 国产精选在线| 欧美精品粉嫩高潮一区二区| av直播在线观看| 欧美日本国产| 成人日韩在线电影| 噜噜噜噜噜在线视频| 一区二区三区精品在线| 91蝌蚪视频在线观看| 精品久久ai| 久久影院在线观看| 中文字幕免费观看视频| 91色视频在线| 国内精品在线观看视频| 欧美h版在线观看| 中文字幕自拍vr一区二区三区| 国产免费观看av| 国产成人精品www牛牛影视| 亚洲欧美日韩精品久久久| 自由日本语热亚洲人| 欧美精品一区二区三区蜜桃| 欧美成人国产精品高潮| 精品在线观看视频| 亚洲日本理论电影| 国产精品久久久久久妇女| 亚洲精品久久久久久久久久久久 | 国产毛片毛片毛片毛片毛片毛片| 欧美成人69av| 亚洲bt欧美bt日本bt| 亚洲欧美视频一区二区| 日本高清不卡aⅴ免费网站| 日本一区二区三区网站| 国产欧美一区二区色老头| 国产福利一区二区三区在线观看| 中文字幕中文字幕在线十八区 | 国产精品成人一区| 国产在线黄色| 欧美三级日韩三级国产三级| 69视频在线观看免费| 天堂资源在线中文精品| 日本一区二区高清视频| 日韩国产网站| 日韩中文字幕精品视频| 瑟瑟视频在线免费观看| 亚洲国产成人一区二区三区| 深夜黄色小视频| 天天综合亚洲| 99视频在线播放| av漫画网站在线观看| 亚洲精品久久久久久久久| wwwwww国产| 欧美国产综合一区二区| 久久精品国产露脸对白| 欧美黄在线观看| 国内精品久久久久久久果冻传媒| 国产v日韩v欧美v| 亚洲美女精品久久| 久久这里只有精品9| 中文字幕在线观看不卡视频| 一起草最新网址| 亚洲经典在线看| 欧美一区二区高清在线观看| 粉嫩91精品久久久久久久99蜜桃| www.日韩欧美| 国产xxxxxx| 亚洲国产成人91porn| 欧美一区二区三区成人精品| 日韩av在线免费观看不卡| 永久久久久久| 精品国产影院| 国产日韩欧美另类| 四虎影视国产在线视频| 亚洲精品视频免费在线观看| 老熟妇一区二区三区啪啪| 亚洲免费伊人电影| 日本一区二区三区网站| 黑人巨大精品欧美一区| 亚洲国产精品成人天堂| 精品国产乱码| 成人午夜影院在线观看| 欧美日韩不卡| 欧美高清无遮挡| 成人亚洲综合天堂| 日韩欧美中文字幕精品| av黄色在线播放| 国产精品不卡一区| 一本加勒比波多野结衣| 久久国内精品自在自线400部| www.男人天堂网| 欧美色图在线播放| 成人xxxxx色| 欧美另类激情| 欧美在线一区二区三区四| 美女隐私在线观看| 亚洲视频欧美视频| 超碰福利在线观看| 在线观看视频一区| 亚洲视频免费播放| 一区二区三区在线视频观看58| 女女互磨互喷水高潮les呻吟| 国产精品自拍在线| 九九热99视频| 久久激情网站| 亚洲中文字幕无码专区| 欧美精品网站| 亚洲日本精品一区| 在线视频亚洲专区| 国产精品国产亚洲精品看不卡15| 国产亚洲人成a在线v网站| 91极品视频在线| 男女在线观看视频| 久久伊人91精品综合网站| 国产美女性感在线观看懂色av| 亚洲成人动漫在线播放| 精品人妻无码一区二区| 91精品国产欧美一区二区18 | 日韩资源av在线| 视频福利一区| 国产一区二区不卡视频在线观看| 欧美日本三级| 2014亚洲精品| 精品一区二区三区视频在线播放| 国产免费亚洲高清| 成人在线高清| 国产日产久久高清欧美一区| 日本欧美一区| 国产精品夜间视频香蕉| 国产一区二区主播在线| 国产精品久久久久久久久借妻 | 亚洲va男人天堂| 四虎影视国产精品| 成人免费福利视频| 成人网av.com/| 亚洲一区二区三区久久| 欧美日韩中出| 999国内精品视频在线| 九九九九九九精品任你躁| 亚洲伊人第一页| 日本一区二区三区视频在线看| 51精品国产人成在线观看 | 国产美女久久久久久| 国产精品久久看| 成人高潮免费视频| 亚洲精品视频自拍| 久一区二区三区| 黄网站色欧美视频| 国产高清中文字幕| 欧美性做爰猛烈叫床潮| 在线观看亚洲国产| 日韩一区二区三区三四区视频在线观看| 国产剧情精品在线| 精品国产在天天线2019| 天堂国产一区二区三区| 亚洲美女www午夜| 午夜在线视频| 欧美另类99xxxxx| 岛国在线视频网站| 日韩免费av在线| h狠狠躁死你h高h| 精品一区二区在线播放| 一级做a免费视频| 国产剧情av麻豆香蕉精品| 久草视频福利在线| 久久久国产精品麻豆| 成人三级视频在线观看| 亚洲精品免费视频| 狠狠躁夜夜躁人人爽天天高潮| 日韩人在线观看| 91久久精品无码一区二区| 欧美成人在线直播| 午夜av免费观看| 色阁综合伊人av| 国产蜜臀在线| 国产精品video| 一区二区三区欧洲区| 裸模一区二区三区免费| 成人影院天天5g天天爽无毒影院| 黄色影视在线观看| 亚洲一区欧美二区| 欧美大片久久久| 99re8在线精品视频免费播放| www.日本高清视频| 亚洲电影第三页| 最近中文字幕免费在线观看| 精品人在线二区三区| 免费在线性爱视频| 欧美精品videosex性欧美| 日韩影片中文字幕| 国产精品区一区| 国产精品毛片一区二区在线看| 少妇av一区二区三区无码| 麻豆免费看一区二区三区| 黄色免费视频网站| **性色生活片久久毛片| 久久久黄色大片| 日韩一级免费观看| 国产视频第一区| 韩国国内大量揄拍精品视频| 亚洲欧美综合久久久久久v动漫| 久久99精品久久久久久青青日本| 围产精品久久久久久久| av免费中文字幕| 成人黄色网址在线观看| 日本精品在线免费观看| 在线观看国产日韩| 手机在线观看毛片| 欧美日本在线视频中文字字幕| 国产黄色精品| 日韩偷拍一区二区| 日韩香蕉视频| 精品人妻二区中文字幕| 中文字幕一区二区三区在线播放| 在线永久看片免费的视频| 亚洲国产精品免费| 色婷婷视频在线观看| 国产在线不卡精品| av一区二区在线观看| 播放灌醉水嫩大学生国内精品| 国产suv一区二区三区88区| 91 在线视频| 欧洲国产伦久久久久久久| 欧美xxx.com| 欧美在线免费视频| 大奶一区二区三区| 99在线免费视频观看| 成人中文字幕电影| 国产真实乱偷精品视频| 日韩午夜激情av| 污视频网站在线免费| 亚洲xxxx做受欧美| 综合视频在线| 粗大的内捧猛烈进出视频| 一区二区三区丝袜| 超碰在线人人干| 欧美黑人性生活视频| 99ri日韩精品视频| 全黄性性激高免费视频| 丁香六月久久综合狠狠色| 久久精品视频9| 亚洲护士老师的毛茸茸最新章节| 污污网站在线看| eeuss一区二区三区| 一区二区自拍| 自拍视频一区二区| 一本色道a无线码一区v| 国产剧情在线观看| 91精品国产综合久久久久久蜜臀| 国产精品久久久久久| 永久免费黄色片| 亚洲一级二级在线| 神马一区二区三区| 日本精品视频在线| 色偷偷综合网| 韩国三级hd中文字幕有哪些| 亚洲综合清纯丝袜自拍| 午夜视频福利在线| 国产成人jvid在线播放| 日本久久精品| 又黄又爽又色的视频| 天天影视色香欲综合网老头| 理论视频在线| 成人在线一区二区| 一区在线免费| 中文字幕免费高清| 在线播放中文字幕一区| 国内在线视频| 麻豆蜜桃91| 激情伊人五月天久久综合| 久久久久久久福利| 亚洲免费视频一区二区| 99久久这里有精品| 久草视频国产在线| 中文一区二区在线观看| 风流老熟女一区二区三区| 国产91在线播放| 中文在线日韩| 精品无码在线视频| 欧美日韩一区三区| 欧美1—12sexvideos| 免费看污久久久| 国产精品一级在线| 加勒比在线一区| 欧美另类在线播放| 国产一区二区三区天码| 成人免费黄色av| 91福利在线观看| 888av在线视频| youjizz.com亚洲| 26uuu亚洲综合色欧美| 国产乱码精品一区二区三区精东|