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

我是怎樣爬下6萬共享單車數據并進行分析的(附代碼)

開發 數據分析
在城市中隨處可見共享單車的身影,給人們的生活出行帶來了便利。有沒有一個辦法通過獲得這些單車的數據,來分析這些車是否變成了僵尸車?是否有人故意放到小區里面讓人無法獲取呢?帶著這些問題,筆者開始了研究如何獲取這些數據。

[[212227]]

共享經濟的浪潮席卷著各行各業,而出行行業是這股大潮中的主要分支。如今,在城市中隨處可見共享單車的身影,給人們的生活出行帶來了便利。相信大家總會遇到這樣的窘境,在APP中能看到很多單車,但走到那里的時候,才發現車并不在那里。有些車不知道藏到了哪里;有些車或許是在高樓的后面,由于有GPS的誤差而找不到了;有些車被放到了小區里面,一墻之隔讓騎車人無法獲得到車。

那么有沒有一個辦法通過獲得這些單車的數據,來分析這些車是否變成了僵尸車?是否有人故意放到小區里面讓人無法獲取呢?帶著這些問題,筆者開始了研究如何獲取這些數據。

01 從哪里獲得數據

如果你能夠看到數據,那么我們總有辦法自動化的獲取到這些數據。只不過獲取數據的方式方法決定了獲取數據的效率。

對于摩拜單車的數據分析這個任務而言,這個爬蟲要能夠在短時間內(通常是10分鐘左右)獲取到更多的數據,對于數據分析才有用處。那么數據來源于哪里?

最直接的來源是摩拜單車的APP。現代的軟件設計都講究前后端分離,而且服務端會同時服務于APP、網頁等。在這種趨勢下我們只需要搞清楚軟件的HTTP請求就好了。一般而言有以下一些工具可以幫忙:

直接抓包:

  • Wireshark (在路由器或者電腦)
  • Shark for Root (Android)

用代理進行HTTP請求抓包及調試:

  • Fiddler 4
  • Charles
  • Packet Capture (Android)

由于我的手機沒有root,在路由器上抓包又太多的干擾,對于https也不好弄。所以只能首先采用Fiddler或者Charles的方式試試。

掛上Fiddler的代理,然后在手機端不停的移動位置,看有沒有新的請求。但遺憾的是似乎請求都是去拿高德地圖的,并沒有和摩拜車相關的數據。

那怎么一回事?試試手機端的。換成Packet Capture后果然就有流量了,在請求中找到了我最關心的那個:

這個API請求一看就很顯然了,在postman中試了一下能夠正確的返回信息,看來就是你了!

高興得太早。

連續爬了幾天的數據,將數據進行一分析,發現摩拜單車的GPS似乎一直在跳動,有時候跳動會超過幾公里的距離,顯然不是一個正常的值。

難道是他們的接口做了手腳返回的是假數據?我觀察到即便在APP中,單車返回的數據也有跳動。有某一天凌晨到第二天早上,我隔段時間刷新一下我家附近的車,看看是否真的如此。

圖片我找不到了,但是觀察后得出的結論是,APP中返回的位置確實有問題。有一臺車放在一個很偏僻的位置,一會兒就不見了,待會兒又回來了,和我抓下來的數據吻合。

而且這個跳動和手機、手機號、甚至移動運營商沒有關系,說明這個跳動是摩拜接口的問題,也可以從另一方面解釋為什么有時候看到車但其實那里沒有車。

這是之前發的一個朋友圈的視頻截圖,可以看到在營門口附近有一個尖,在那里其實車是停住的,但是GPS軌跡顯示短時間內在附近攢動,甚至攢動到很遠,又回到那個位置。

這樣的數據對于數據分析來講根本沒法用,我差點就放棄了。

隨著微信小程序的火爆,摩拜單車也在***時間出了小程序。我一看就笑了,不錯,又給我來了一個數據源,試試。

用Packet Capture抓了一次數據后很容易確定API。抓取后爬取了兩三天的數據,發現出現了轉機,數據符合正常的單車的軌跡。

剩下事情,就是提高爬蟲的效率了。

02 其他嘗試

有時候直接分析APP的源代碼會很方便的找到API入口,將摩拜的Android端的APP進行反編譯,但發現里面除了一些資源文件有用外,其他的文件都是用奇虎360的混淆器加殼的。網上有文章分析如何進行脫殼,但我沒有太多時間去鉆研,也就算了。

摩拜單車的API之所以很容易抓取和分析,很大程度上來講是由于API設計的太簡陋:

  • 僅使用http請求,使得很容易進行抓包分析
  • 在這些API中都沒有對request進行一些加密,使得自己的服務很容易被人利用。
  • 另外微信小程序也是泄露API的一個重要來源,畢竟在APP中request請求可以通過native代碼進行加密然后在發出,但在小程序中似乎還沒有這樣的功能。

如果大家有興趣,可以試著看一下小藍單車APP的request,他們使用https請求,對數據的request進行了加密,要抓取到他們的數據難度會增加非常多。

當然了,如果摩拜單車官方并不care數據的事情的話,這樣的API設計也是ok的。

聲明:

此爬蟲僅用于學習、研究用途,請不要用于非法用途。任何由此引發的法律糾紛自行負責。

03 目錄結構

    \analysis - jupyter做數據分析

    \influx-importer - 導入到influxdb,但之前沒怎么弄好

    \modules - 代理模塊

    \web - 實時圖形化顯示模塊,當時只是為了學一下react而已,效果請見這里

    crawler.py - 爬蟲核心代碼

    importToDb.py - 導入到postgres數據庫中進行分析

    sql.sql - 創建表的sql

    start.sh - 持續運行的腳本

04 思路

核心代碼放在crawler.py中,數據首先存儲在sqlite3數據庫中,然后去重復后導出到csv文件中以節約空間。

摩拜單車的API返回的是一個正方形區域中的單車,我只要按照一塊一塊的區域移動就能抓取到整個大區域的數據。

left,top,right,bottom定義了抓取的范圍,目前是成都市繞城高速之內以及南至南湖的正方形區域。offset定義了抓取的間隔,現在以0.002為基準,在DigitalOcean 5$的服務器上能夠15分鐘內抓取一次。

   

  1. def start(self): 
  2.  
  3.         left = 30.7828453209 
  4.  
  5.         top = 103.9213455517 
  6.  
  7.         right = 30.4781772402 
  8.  
  9.         bottom = 104.2178123382  
  10.  
  11.  
  12.         offset = 0.002  
  13.  
  14.  
  15.         if os.path.isfile(self.db_name): 
  16.              os.remove(self.db_name)  
  17.  
  18.  
  19.         try: 
  20.  
  21.             with sqlite3.connect(self.db_name) as c: 
  22.  
  23.                 c.execute('''CREATE TABLE mobike 
  24.  
  25.                     (Time DATETIME, bikeIds VARCHAR(12), bikeType TINYINT,distId INTEGER,distNum TINYINT, type TINYINT, x DOUBLE, y DOUBLE)''') 
  26.  
  27.         except Exception as ex: 
  28.  
  29.             pass 

然后就啟動了250個線程,至于你要問我為什么沒有用協程,哼哼~~我當時沒學~~~其實是可以的,說不定效率更高。

由于抓取后需要對數據進行去重,以便消除小正方形區域之間重復的部分,***的group_data正是做這個事情。       

  1. executor = ThreadPoolExecutor(max_workers=250) 
  2.  
  3.         print("Start"
  4.  
  5.         self.total = 0 
  6.  
  7.         lat_range = np.arange(leftright, -offset) 
  8.  
  9.         for lat in lat_range: 
  10.  
  11.             lon_range = np.arange(top, bottom, offset) 
  12.  
  13.             for lon in lon_range: 
  14.  
  15.                 self.total += 1 
  16.  
  17.                 executor.submit(self.get_nearby_bikes, (lat, lon))  
  18.  
  19.  
  20.         executor.shutdown() 
  21.  
  22.         self.group_data() 

最核心的API代碼在這里。小程序的API接口,搞幾個變量就可以了,十分簡單。   

  1. def get_nearby_bikes(self, args): 
  2.  
  3.        try: 
  4.             url = "https://mwx.mobike.com/mobike-api/rent/nearbyBikesInfo.do"  
  5.  
  6.  
  7.            payload = "latitude=%s&longitude=%s&errMsg=getMapCenterLocation" % (args[0], args[1])  
  8.  
  9.  
  10.            headers = { 
  11.  
  12.                'charset'"utf-8"
  13.  
  14.                'platform'"4"
  15.  
  16.                "referer":"https://servicewechat.com/wx40f112341ae33edb/1/"
  17.  
  18.                'content-type'"application/x-www-form-urlencoded"
  19.  
  20.                'user-agent'"MicroMessenger/6.5.4.1000 NetType/WIFI Language/zh_CN"
  21.  
  22.                'host'"mwx.mobike.com"
  23.  
  24.                'connection'"Keep-Alive"
  25.  
  26.                'accept-encoding'"gzip"
  27.  
  28.                'cache-control'"no-cache" 
  29.  
  30.            }  
  31.  
  32.  
  33.            self.request(headers, payload, args, url) 
  34.  
  35.        except Exception as ex: 
  36.  
  37.            print(ex) 

***你可能要問頻繁的抓取IP沒有被封么?其實摩拜單車是有IP的訪問速度限制的,只不過破解之道非常簡單,就是用大量的代理。

我是有一個代理池,每天基本上有8000以上的代理。在ProxyProvider中直接獲取到這個代理池然后提供一個pick函數用于隨機選取得分前50的代理。

請注意,我的代理池是每小時更新的,但是代碼中提供的jsonblob的代理列表僅僅是一個樣例,過段時間后應該大部分都作廢了。

在這里用到一個代理得分的機制。我并不是直接隨機選擇代理,而是將代理按照得分高低進行排序。每一次成功的請求將加分,而出錯的請求將減分。

這樣一會兒就能選出速度、質量***的代理。如果有需要還可以存下來下次繼續用。

 

  1. class ProxyProvider: 
  2.  
  3.     def __init__(self, min_proxies=200): 
  4.  
  5.         self._bad_proxies = {} 
  6.  
  7.         self._minProxies = min_proxies 
  8.  
  9.         self.lock = threading.RLock()   
  10.  
  11.         self.get_list()  
  12.  
  13.  
  14.     def get_list(self): 
  15.  
  16.         logger.debug("Getting proxy list"
  17.  
  18.         r = requests.get("https://jsonblob.com/31bf2dc8-00e6-11e7-a0ba-e39b7fdbe78b", timeout=10) 
  19.  
  20.         proxies = ujson.decode(r.text) 
  21.  
  22.         logger.debug("Got %s proxies", len(proxies)) 
  23.  
  24.         self._proxies = list(map(lambda p: Proxy(p), proxies))  
  25.  
  26.  
  27.     def pick(self): 
  28.  
  29.         with self.lock: 
  30.  
  31.             self._proxies.sort(key = lambda p: p.score, reverse=True
  32.  
  33.             proxy_len = len(self._proxies) 
  34.  
  35.             max_range = 50 if proxy_len > 50 else proxy_len 
  36.  
  37.             proxy = self._proxies[random.randrange(1, max_range)] 
  38.  
  39.             proxy.used() 
  40.  
  41.             return proxy 

在實際使用中,通過proxyProvider.pick()選擇代理,然后使用。如果代理出現任何問題,則直接用proxy.fatal_error()降低評分,這樣后續就不會選擇到這個代理了。   

  1. def request(self, headers, payload, args, url): 
  2.  
  3.         while True
  4.  
  5.             proxy = self.proxyProvider.pick() 
  6.  
  7.             try: 
  8.  
  9.                 response = requests.request( 
  10.  
  11.                     "POST", url, data=payload, headers=headers, 
  12.  
  13.                     proxies={"https": proxy.url}, 
  14.  
  15.                     timeout=5,verify=False 
  16.  
  17.                 ) 
  18.  
  19.  
  20.  
  21.                 with self.lock: 
  22.  
  23.                     with sqlite3.connect(self.db_name) as c: 
  24.  
  25.                         try: 
  26.  
  27.                             print(response.text) 
  28.  
  29.                             decoded = ujson.decode(response.text)['object'
  30.  
  31.                             self.done += 1 
  32.  
  33.                             for x in decoded: 
  34.  
  35.                                 c.execute("INSERT INTO mobike VALUES (%d,'%s',%d,%d,%s,%s,%f,%f)" % ( 
  36.  
  37.                                     int(time.time()) * 1000, x['bikeIds'], int(x['biketype']), int(x['distId']), 
  38.  
  39.                                     x['distNum'], x['type'], x['distX'], 
  40.  
  41.                                     x['distY'])) 
  42.  
  43.  
  44.  
  45.                             timespend = datetime.datetime.now() - self.start_time 
  46.  
  47.                             percent = self.done / self.total 
  48.  
  49.                             total = timespend / percent 
  50.  
  51.                             print(args, self.done, percent * 100, self.done / timespend.total_seconds() * 60, total, 
  52.  
  53.                                   total - timespend) 
  54.  
  55.                         except Exception as ex: 
  56.  
  57.                             print(ex) 
  58.  
  59.                     break 
  60.  
  61.             except Exception as ex: 
  62.  
  63.                 proxy.fatal_error() 

抓取了摩拜單車的數據并進行了大數據分析。以下數據分析自1月19日整日的數據,范圍成都繞城區域以及至華陽附近(天府新區)內。成都的摩拜單車的整體情況如下:

05 標準、Lite車型數量相當

摩拜單車在成都大約已經有6萬多輛車,兩種類型的車分別占有率為55%和44%,可見更為好騎的Lite版本的占有率在提高。(1為標準車,2為Lite車型)

06 三成左右的車沒有移動過

數據分析顯示,有三成的單車并沒有任何移動,這說明這些單車有可能被放在不可獲取或者偏僻地方。市民的素質還有待提高啊。

07 出行距離以3公里以下為主

數據分析顯示3公里以下的出行距離占據了87.2%,這也十分符合共享單車的定位。100米以下的距離也占據了大量的數據,但認為100米以下的數據為GPS的波動,所以予以排除。

出行距離分布

08 騎行次數以5次以下居多

單車的使用頻率越高共享的效果越好。從摩拜單車的數據看,在流動的單車中,5次以下占據了60%左右的出行。但1次、2次的也占據了30%左右的份額,說明摩拜單車的利用率也不是很高。

單車騎行次數

騎行次數

 

09 從單車看城市發展

從摩拜單車的熱圖分布來看,成都已經逐步呈現“雙核”發展的態勢,城市的新中心天府新區正在聚集更多的人和機會。

雙核發展

原來的老城區占有大量的單車,在老城區,熱圖顯示在東城區占有更多的單車,可能和這里的商業(春熙路、太古里、萬達)及人口密集的小區有直接的聯系。

老城區

而在成都的南部天府新區越來越多也茁壯的發展起來,商業區域和住宅區域區分明顯。在晚上,大量的單車聚集在華陽、世紀城、中和,而在上班時間,則大量聚集在軟件園附近。

 

軟件園夜間

 

 

軟件園白天 

責任編輯:龐桂玉 來源: 大數據
相關推薦

2025-08-29 14:17:01

ClaudeOpenAIGemini

2020-08-25 18:10:22

Python代碼線性回歸

2024-12-24 09:17:31

2015-11-10 09:09:23

代碼程序員成長

2018-03-05 11:00:19

共享單車互聯網保險理賠

2012-11-28 01:47:35

軟件測試測試

2017-03-28 15:55:32

2023-08-26 07:09:36

2018-03-09 10:37:48

詩歌代碼寫詩

2022-10-19 11:17:35

2015-08-24 13:51:40

數據挖掘

2013-01-10 10:05:29

編程面向對象編程

2010-01-26 09:40:23

C++代碼

2017-10-10 15:42:56

Python鹿晗關曉彤

2021-07-02 07:06:20

調試代碼crash

2012-01-09 14:48:15

響應式Web

2011-02-23 14:54:58

FileZilla

2017-07-21 09:41:17

共享單車物聯網盈利

2020-09-09 08:23:53

URLIP代碼

2017-08-14 10:24:19

點贊
收藏

51CTO技術棧公眾號

av免费在线免费观看| 天天爽夜夜爽人人爽| 99久久这里有精品| 亚洲日本一区二区| 国产精品一区视频网站| 欧美不卡视频在线观看| 蜜桃a∨噜噜一区二区三区| 欧美亚洲日本国产| 欧美日韩中文字幕在线播放| 亚洲欧美日韩成人在线| 日韩国产欧美在线播放| 日韩中文字幕在线| 午夜免费福利影院| 日本国产欧美| 亚洲在线视频一区| 日本在线成人一区二区| 国产视频一区二区三| 亚洲深爱激情| 久久精品色欧美aⅴ一区二区| 制服.丝袜.亚洲.中文.综合懂| 伊人久久国产| 一区二区三区中文在线观看| 欧美中文娱乐网| 亚洲av无码片一区二区三区| 可以看av的网站久久看| 久久99热精品这里久久精品| 国产黄片一区二区三区| 日本在线一区二区三区| 色国产综合视频| 2019日韩中文字幕mv| 91免费在线| 91色porny在线视频| 亚洲r级在线观看| 天天干,天天干| 激情欧美一区| 久久福利视频导航| 欧美激情 一区| 极品一区美女高清| 欧美一区二区黄色| 视频在线观看免费高清| 亚洲成人短视频| 午夜在线电影亚洲一区| 4444亚洲人成无码网在线观看| 国产精品视频一区二区久久| 91在线porny国产在线看| 91免费看蜜桃| 一级做a爰片久久毛片16| 久久久久久自在自线| 久久久久久有精品国产| 欧美日韩成人免费观看| 午夜影院欧美| 日韩中文字幕在线看| 国产又黄又粗的视频| 杨幂一区二区三区免费看视频| 亚洲成成品网站| 五月天丁香社区| 97久久综合精品久久久综合| 日韩一二三四区| 奇米777在线视频| 99视频这里有精品| 欧美精品第1页| 五月花丁香婷婷| 日韩毛片免费视频一级特黄| 欧美日韩精品一区二区天天拍小说| 一本久道综合色婷婷五月| 小h片在线观看| 精品高清一区二区三区| 久久黄色片视频| 亚洲永久av| 色综合久久99| 日本888xxxx| 国产一区一一区高清不卡| 在线观看www91| 色悠悠久久综合网| 日本免费成人| 欧美一级爆毛片| 在线观看免费视频国产| 精品欠久久久中文字幕加勒比| 亚洲高清色综合| 国产精品无码一区二区三区免费 | 日本私人网站在线观看| www久久精品| 日本在线播放一区| 黄色在线论坛| 亚洲图片有声小说| 日韩少妇内射免费播放18禁裸乳| 桃子视频成人app| 欧美电影影音先锋| 中文字幕在线国产| 亚洲激情77| 神马久久桃色视频| 久久久精品99| 亚洲综合不卡| 国产视频福利一区| 亚洲女人18毛片水真多| www国产成人免费观看视频 深夜成人网| 欧美精品v日韩精品v国产精品| av在线免费观看网| 夜夜嗨av一区二区三区网页| 日本免费一级视频| 伊人久久精品| 日韩高清免费在线| 欧美一级片在线视频| 亚洲激情黄色| 国产欧亚日韩视频| 天堂网在线中文| 国产精品乱人伦中文| 久久久久久久9| 88xx成人永久免费观看| 精品久久久三级丝袜| 亚洲理论片在线观看| 欧美日韩国产亚洲一区| 国产精品夫妻激情| 色婷婷av一区二区三区之e本道| 国产女同性恋一区二区| 无码粉嫩虎白一线天在线观看| 成人在线视频观看| 精品国产乱码久久久久久牛牛 | 国产精品久久久久久久裸模| 成人午夜免费在线视频| 亚洲成人av观看| 亚洲国产美女精品久久久久∴| 99国产精品无码| 亚洲精选一区| 51国产成人精品午夜福中文下载 | 亚洲婷婷综合网| 国产成人精品免费在线| 宅男av一区二区三区| 刘亦菲一区二区三区免费看| 亚洲成人av在线| 久久精品www人人爽人人| 久久 天天综合| 日韩精品一区二区三区色偷偷| 黄频免费在线观看| 日韩欧美中文字幕公布| 中文字幕在线观看二区| 国产精品久久久一区二区| 51精品国产人成在线观看| 欧美zozo| 色综合天天综合网国产成人综合天 | 日韩一区有码在线| 蜜臀av午夜一区二区三区| 无人区乱码一区二区三区| 中文字幕欧美日韩| 成人免费毛片男人用品| av一区二区三区| 日韩高清在线播放| 日本在线中文字幕一区二区三区| 精品88久久久久88久久久| 黄色录像二级片| 男人的天堂亚洲一区| 久久久综合香蕉尹人综合网| eeuss鲁一区二区三区| 欧美一区二区私人影院日本| 国产精品久久久久久成人| 日一区二区三区| 蜜桃麻豆91| 欧美激情护士| 亚洲人成五月天| 欧美日韩综合一区二区三区| 91亚洲永久精品| 欧美一级视频免费看| 中文字幕一区二区三区四区久久 | 蜜桃传媒一区二区亚洲av| 亚洲人成高清| 国产尤物99| 中文字幕在线官网| 日韩久久免费视频| 中文在线第一页| 91在线免费视频观看| 精品人妻一区二区三区四区在线| 另类尿喷潮videofree| 久久人人97超碰精品888| 男人天堂综合网| 亚洲aaa精品| 国产精品99精品无码视亚| 在线国产一区| 亚洲综合第一页| 香蕉视频国产在线观看| 8v天堂国产在线一区二区| 国产稀缺精品盗摄盗拍| 国产不卡视频在线观看| 日韩一级特黄毛片| 欧美1区二区| 日韩av电影国产| 丝袜美腿美女被狂躁在线观看| 日韩欧美在线观看| 日本成人精品视频| 国产一区二区三区av电影 | 欧美日韩在线中文字幕| 91精品办公室少妇高潮对白| 国产精品久久久视频| 三级一区在线视频先锋 | 国产一级免费在线观看| 欧美日韩视频不卡| 91精品国产高清一区二区三蜜臀| 成人晚上爱看视频| 日韩av片在线看| 激情综合网站| 114国产精品久久免费观看| h片视频在线观看| 亚洲欧美一区二区三区久久| 亚洲一区二区影视| 亚洲愉拍自拍另类高清精品| 人妻体内射精一区二区| 狠狠色丁香久久婷婷综| 无码专区aaaaaa免费视频| 欧美日韩高清| 成人免费在线看片| 国内高清免费在线视频| 亚洲欧美成人一区二区在线电影| 97精品久久人人爽人人爽| 亚洲综合av网| 在线免费观看视频| 丁香网亚洲国际| 国产三级三级看三级| 亚洲婷婷在线| 日本在线观看一区二区三区| 欧美黄色一级| 日本韩国在线不卡| 手机在线免费看av| 国产一区二区三区视频免费| 性生交生活影碟片| 欧美三级三级三级爽爽爽| 美女毛片在线观看| 国产精品二三区| 特级西西人体4444xxxx| 精品亚洲porn| 中文字幕欧美人妻精品一区| 欧美日本中文| 亚洲区一区二区三区| 粉嫩久久久久久久极品| 91精品久久久久| 二区三区不卡| 国产做受高潮69| yjizz视频网站在线播放| 亚洲白虎美女被爆操| 在线观看亚洲国产| 色婷婷综合久久久| 日韩三级小视频| 亚洲一区二区三区四区不卡| 国产乱子轮xxx农村| 久久精品欧美一区二区三区麻豆| 国产亚洲精品成人a| 韩国v欧美v亚洲v日本v| 日本xxxx黄色| 99精品99| 青青青在线观看视频| 亚洲一本二本| 亚洲v国产v在线观看| 欧美精品系列| 免费观看成人在线| 成人中文字幕视频| 9a蜜桃久久久久久免费| 香蕉成人在线| 日本久久久a级免费| 擼擼色在线看观看免费| 久久久亚洲天堂| 美足av综合网| 欧美激情va永久在线播放| 视频在线这里都是精品| 欧美另类在线播放| 亚洲第一图区| 欧美精品videossex性护士| 午夜激情在线观看| 久久久999精品免费| 尤物视频在线免费观看| 色视频www在线播放国产成人| 九色在线视频蝌蚪| 国产亚洲日本欧美韩国| 午夜在线视频| 久久亚洲精品国产亚洲老地址| 老司机午夜在线| 久久在精品线影院精品国产| 天堂av在线电影| 高清亚洲成在人网站天堂| 福利影院在线看| 情事1991在线| 成人免费一区| 99电影网电视剧在线观看| 911精品国产| 久久精品日产第一区二区三区精品版 | 亚洲成人1区| 91视频免费在线| 亚洲一区二区三区四区电影| 国产精品视频福利| 精品影片在线观看的网站| 奇米影视首页 狠狠色丁香婷婷久久综合 | 色丁香婷婷综合久久| 亚洲欧洲日韩国产| jzzjzzjzz亚洲成熟少妇| 欧美激情一区二区三区在线视频观看 | 天天久久综合| 日韩国产一级片| 久久久噜噜噜| www.久久com| jvid福利写真一区二区三区| 中文字幕国产专区| 国产精品萝li| 日韩欧美视频在线免费观看| 色婷婷综合中文久久一本| 国产又粗又猛视频| 亚洲国产精品福利| 色av男人的天堂免费在线| 日韩在线观看免费网站 | 超碰超碰超碰超碰超碰| 亚洲高清激情| 熟妇人妻无乱码中文字幕真矢织江 | 不卡一区二区中文字幕| 亚洲а∨天堂久久精品2021| 亚洲欧美激情视频在线观看一区二区三区 | 成人免费网站观看| 国产精品电影网| 国产伦理久久久久久妇女 | 精品午夜久久| 日韩a级黄色片| 日本亚洲免费观看| 亚洲欧美激情一区二区三区| 91丨porny丨国产入口| 欧美爱爱小视频| 在线免费观看一区| 天天操天天插天天射| 久久精品电影网站| 亚洲电影观看| 99久久久久国产精品免费| 国产精品三级| 黄色一级视频在线播放| 免费在线观看视频一区| 国精产品一区一区三区免费视频 | 亚洲韩国一区二区三区| 在线播放精品视频| 亚洲另类欧美自拍| sqte在线播放| 动漫3d精品一区二区三区| 欧美高清视频手机在在线| 免费黄色特级片| 成人av动漫在线| 中文字幕av久久爽一区| 欧美色道久久88综合亚洲精品| 性做久久久久久久| 日韩三级成人av网| 成人精品国产| 一卡二卡3卡四卡高清精品视频| 免费在线成人| 国产又粗又猛又色| 亚洲精品国产成人久久av盗摄| 黄色在线免费观看| 亚洲精品久久久久久久久| 啦啦啦中文在线观看日本| 91青青草免费观看| 欧美精品一区二区久久| 欧美 国产 小说 另类| 91网站黄www| 欧美bbbbbbbbbbbb精品| 精品国产成人系列| av在线资源| 精品久久久久亚洲| 99精品视频免费| 中国av免费看| 色天使久久综合网天天| 青青草免费在线视频| 日本精品久久久久久久| 蜜臀av一区| 情侣黄网站免费看| 国产清纯在线一区二区www| 日韩欧美在线观看免费| 亚洲一区二区黄| 成人在线视频免费| 一区二区三区视频在线播放| 蜜臀av性久久久久蜜臀av麻豆| 波多野结衣一二三四区| 欧美一区二区三区四区五区| av毛片在线播放| 成人看片在线| 亚洲美女毛片| 永久免费看mv网站入口78| 日本福利一区二区| 国产精品久久久久一区二区国产| 国产精品ⅴa在线观看h| 偷偷www综合久久久久久久| 中文字幕在线视频一区二区| 亚洲已满18点击进入久久| 六月婷婷综合网| 91av视频在线免费观看| 久久精品国产亚洲5555| 1024av视频| 国产日产精品1区| 国产又大又黄的视频| 毛片精品免费在线观看| 老牛国内精品亚洲成av人片| 国产精品亚洲a| 中文字幕一区二区三区在线不卡| 一级视频在线播放| 久久乐国产精品| 视频一区欧美| aaa一级黄色片| 欧美日韩中文字幕日韩欧美| 在线免费看黄网站| 99一区二区三区| 日韩午夜精品|