青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

socketref,再見!高德

https://github.com/adoggie

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用鏈接

留言簿(54)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

#



import sys 
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
start_url = 'http://searchex.yixun.com/?YTAG=1.100090000'
def save_file(data,file='temp.txt'):
f = open(file,'w')
f.write(data)
f.close()
web = None
def onDone():
f = open('scrapy.html','w')
page = web.page().mainFrame().toHtml().toUtf8().data()
f.write(page) 
f.close()
print "Done ..."
e = web.page().mainFrame().documentElement().findFirst("h3[class=m_classbox_hd]")
print e.tagName()
#print dir(e)
print e.toPlainText().toUtf8().data() #.decode('gbk') #.decode('utf-8') #.encode('utf-8')
save_file(e.toPlainText().toUtf8().data())
def onStart():
print "Started..." 
app = QApplication(sys.argv)
web = QWebView()
web.page().mainFrame().loadStarted.connect(onStart)
web.page().mainFrame().loadFinished.connect(onDone)
web.load(QUrl(start_url))
#print web.page().mainFrame().toHtml()
print 'end'
web.show()
sys.exit(app.exec_())
posted @ 2014-05-19 21:41 放屁阿狗 閱讀(778) | 評論 (0)編輯 收藏

開始抓yixun.com的商品信息,開始很開心,但一下子來了問題。

http請求回來的商品分類條目用<a href=>, 但這個href不能直接使用,因為頁面加載之后會啟動js程序(一般都是jquery)對頁面element進行配置和處理,例如:設置風格、事件等等。 

yixun玩了個防頁面過期的小技巧:
   >每個請求page在server都會產生一個有效期變量XY(具體算法不詳),
   >如果獲取商品<a>直接請求,server將返回失敗,因為<a href>并未包含XY
   >page加載完成之后js代碼設置<a>被點擊時觸發事件E,E將XY添加到<a href>內
   >然后可以正確請求了


易迅防止請求頁面過期,在主頁中設置了一下參數: 
<script type="text/javascript"> window.yPageId = '17384560'; window.yPageLevel = '2';</script>

在頁面內容中顯示
<a ytag="40037" target="_blank">路由器</a>
注意: 返回的html就是如此

但如果用戶點擊(左鍵或者右鍵)此 node對象時,js代碼會動態插入一個YTAG的變量 

未點擊:
<a ytag="40037" target="_blank">路由器</a>

點擊:   
<a ytag="40037" target="_blank">路由器</a>

變量生成方式在這個js中實現:

此js 使用了jquery,頁面完成加載之后,將配置頁面元素的onclick行為,如果點擊了頁面元素,將YTAG屬性加入到商品<a href=""/>中去 
js代碼凌亂可以使用:
進行格式化觀察

js代碼:

G.header.search = {
    init: function() {
        G.header.search.event();
        G.header.search.setInputStyle();
        G.header.search.autoComplete();
    },
G.header.search.init();
query: function() {
        var input = $("#q_show"),
        v = $.trim(input.val()),
        c = $("#cate_show").val(),
        ret = true,
        href = input.attr("_href");
        if (v === G.header._Q_SHOW_DEF_TEXT && href) {
            window.location.href = href;
            ret = false;
        } else if (v === "" || v === G.header._Q_SHOW_DEF_TEXT) {
            if (!|| (c && c == "")) {
                input.focus();
                ret = false;
            }
        }
        if ($('#q_show').parents("form").find('input[name="YTAG"]').length === 0) {
            var ytag = $('#q_show').parents("form").find('input[type="submit"]').attr("ytag");
            var YTAG = (window.yPageLevel || 0+ '.' + (window.yPageId || 0+ ytag;
            $('#q_show').parents("form").append($('<input type="hidden" name="YTAG" value="' + YTAG + '" />'));
        }
        return ret;
    }

程序定義了G.header.search對象,并進行初始化init() ,query()是用戶點擊查詢時觸發使用 
init()內部配置了query函數,用于鼠標點擊時候生成YTAG屬性
看代碼就很簡單了

YTAG生成方式就是 window.yPageLevel+'.'+window.yPageId + <a ytag="40037">
這樣一個商品條目的href就獲得了
posted @ 2014-05-19 21:30 放屁阿狗 閱讀(1689) | 評論 (0)編輯 收藏

posted @ 2014-05-15 01:00 放屁阿狗 閱讀(800) | 評論 (0)編輯 收藏

sudo kextunload /System/Library/Extensions/AppleHDA.kext

sudo kextload /System/Library/Extensions/AppleHDA.kext

執行這兩條就行了

posted @ 2014-05-14 12:56 放屁阿狗 閱讀(540) | 評論 (0)編輯 收藏

tkinter工作在主線程,而gevent是單線程工作,如何整合在一起?
瞅到一段代碼,迅速收藏



 1 import gevent
 2 from gevent import socket
 3 import Tkinter as tk
 4 
 5 class SockLoop(object):
 6     def __init__(self, callback):
 7         self.callback = callback
 8 
 9     def __call__(self, sock, client):
10         while 1:
11             mes = sock.recv(256)
12             ret = self.callback(client, mes)
13             if ret is not None:
14                 sock.send(ret)
15 
16 def socket_server(port, callback):
17     ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
18     ssock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
19     ssock.bind(('', port))
20     ssock.listen(5)
21 
22     while 1:
23         sock, client = ssock.accept()
24         gevent.spawn(callback, sock, client)
25 
26 class App(object):
27     def __init__(self, root):
28         self.greenlet = None
29         self.root = root
30         self._build_window(root)
31         self.root.after(100, self._connect)
32 
33     def add_text(self, text):
34         cleaned_string = text.replace('\r''')
35         self.text.insert(tk.END, cleaned_string)
36 
37     def quit(self):
38         self.root.quit()
39 
40     def _build_window(self, root):
41         self.frame = tk.Frame(root)
42         self.text = tk.Text(self.frame)
43         self.quit_button = tk.Button(self.frame, text="Quit", command=self.quit)
44         self.text.pack()
45         self.quit_button.pack()
46         self.frame.pack()
47 
48     def _connect(self):
49         self.greenlet = gevent.spawn(
50                 socket_server,
51                 8080,
52                 SockLoop(lambda cl, txt: self.add_text("%s: %s" % (cl, txt))))
53         self.gevent_loop_step()
54 
55     def gevent_loop_step(self):
56         gevent.sleep()
57         self.root.after_idle(self.gevent_loop_step)
58 
59 
60 if __name__ == '__main__':
61     root = tk.Tk()
62     app = App(root)
63     root.mainloop()
posted @ 2014-05-04 16:59 放屁阿狗 閱讀(972) | 評論 (0)編輯 收藏

俺不是果粉,但開發必須mac
參加的開發者大會,老外沒一個不是mac的,也的確如此,mac是開發神器,雖然貴點,但還是很值,對得起他的身價 。
這是一種態度,價值觀世界觀的體現
linux+windows的完美結合,不!! ui遠超windows

14.5k mac pro 15 retina 8G 內存 250 G ssd ,都配置差了點,但目前夠了,有錢了再買臺高配的,然后imac,還有那個外星桶的工作站


酷斃!
posted @ 2014-04-15 00:53 放屁阿狗 閱讀(485) | 評論 (0)編輯 收藏

寫代碼,寫好代碼其實并不難,但如果要做好文檔,能完整闡述清楚自己的構思、想法和邏輯結構,這比較難,自己也缺少這方面的耐心。
很多opensource的代碼根本不需要文檔也能一目了然,這是一種定力
多年前的項目中使用到python和ffmpeg, 網絡上搜索了一下,均不能滿足自己的要求。ffmpeg的python綁定提供的均是文件級的訪問控制,也就是說沒有暴露更多的可控接口來用。
所以還是一切都自己來做
ffmpeg采用0.81版本以上,當時發現mov文件在0.71以下無法正常解碼,到0.81則解決了此問題。
python包裝ffmpeg的方式很多,最好的可能就是swig,但太煩了,最后選擇ctypes來訪問ffmpeg接口。 
如果直接使用ffmpeg的api接口也不太合適,因為要暴露很多ffmpeg的接口、數據類型、常數定義等。
所以我是這么處理:   
  1. 編寫一個功能動態庫來包裝ffmpeg,提供基本的業務功能 ,屏蔽ffmpeg細節,這里叫ffmpeg_media_codec.dll
  2. 用ctypes包裝此ffmpeg_media_codec.dll,這里是ffmpeg.py
  3. 業務代碼使用ffmpeg.py提供的接口訪問、解碼多媒體文件 
代碼: http://sw2us.com/static/projects/py-ffmpeg/

ffmpeg_media_codec.dll 暴露的c接口 

 1 ffmpeg lib interface list:
 2 ===========================
 4 typedef unsigned char  StreamByte_t;
 6 struct MediaStreamInfo_t{
 7     int codec_type;
 8     int codec_id;
 9     int width;
10     int height;
11     int gopsize;
12     int pixfmt;
13     int tb_num;
14     int tb_den;
15     int bitrate;
16     int frame_number;
17     int videostream; //視頻流編號
18 };
19 
20 struct MediaVideoFrame_t{
21     StreamByte_t *    rgb24;
22     size_t            size;
23     int                width;
24     int                height;
25     unsigned int    sequence; //控制播放順序
26     unsigned int    duration; //播放時間
27 };
28 
29 struct MediaPacket_t{
30      StreamByte_t*    data;
31      size_t            size;
32     AVPacket    *    pkt;
33     int                stream;    //流編號 
34     int                dts;
35     int                pts;
36     size_t            sequence;
37     size_t            duration;
39 };
40 
41 struct MediaFormatContext_t;
42 
43 //解碼器
44 struct MediaCodecContext_t{
45     AVCodecContext * codecCtx;    //AVCodecContext*
46     AVCodec *        codec;    
47     int                stream; //流編號
48     AVFrame *        rgbframe24; //
49     AVFrame*        frame;    //
50     StreamByte_t*    buffer;
51     size_t            bufsize;
52     void *            user;
53     MediaStreamInfo_t si;
54 };
55 
56 struct MediaFormatContext_t{
57     AVFormatContext * fc; //AVFormatContext* 
58     MediaStreamInfo_t video;    //視頻信息
60 };
66 #ifdef __cplusplus
67  extern "C" {  
68 #endif
69 
70 int InitLib();         //初始化解碼庫
71 void Cleanup();    //
73 MediaCodecContext_t* InitAvCodec(MediaStreamInfo_t* si);    //根據媒體類型分配解碼器對象
74 void FreeAvCodec(MediaCodecContext_t* codec);                  //釋放解碼器對象
76 MediaVideoFrame_t * DecodeVideoFrame(MediaCodecContext_t* ctx,MediaPacket_t* pkt);  //送入媒體包進行解碼,返回視頻幀
77 void FreeVideoFrame(MediaVideoFrame_t* frame);                  //釋放視頻幀
79 MediaPacket_t * AllocPacket();                                             //分配一個流媒體包對象(用于網傳)
80 void FreePacket(MediaPacket_t* pkt);                                    //釋放流媒體包
82 MediaFormatContext_t* InitAvFormatContext(char * file);          //媒體文件訪問上下文,申請
83 void FreeAvFormatContext(MediaFormatContext_t* ctx);          //釋放
84 MediaPacket_t* ReadNextPacket(MediaFormatContext_t* ctx);   //讀媒體文件一個數據包
85 void ReadReset(MediaFormatContext_t* ctx) ;                //重置媒體訪問讀取位置
86 int SeekToTime(int timesec) ;                                     //跳躍到指定時間

ffmpeg.py 包裝:

  1 import ctypes
  2 from ctypes import *

  5 _lib = cdll.LoadLibrary('ffmpeg.dll')
  6 
  7 _int_types = (c_int16, c_int32)
  8 if hasattr(ctypes, 'c_int64'):
  9     # Some builds of ctypes apparently do not have c_int64
 10     # defined; it's a pretty good bet that these builds do not
 11     # have 64-bit pointers.
 12     _int_types += (ctypes.c_int64,)
 13 for t in _int_types:
 14     if sizeof(t) == sizeof(c_size_t):
 15         c_ptrdiff_t = t
 16 
 17 class c_void(Structure):
 18     # c_void_p is a buggy return type, converting to int, so
 19     # POINTER(None) == c_void_p is actually written as
 20     # POINTER(c_void), so it can be treated as a real pointer.
 21     _fields_ = [('dummy', c_int)]

 26 class MediaStreamInfo_t(Structure):
 27     _fields_ = [
 28         ('codec_type', c_int),
 29         ('codec_id', c_int),
 30         ('width', c_int),
 31         ('height', c_int),
 32         ('gopsize', c_int),
 33         ('pixfmt', c_int),
 34         ('tb_num',c_int),
 35         ('tb_den',c_int),
 36         ('bitrate',c_int),
 37         ('frame_number',c_int),
 38         ('videostream',c_int),
 39         ('duration',c_int),
 40         ('extr',POINTER(c_char)), #解碼器 額外hash表數據
 41         ('extrsize',c_int),
 42     ]
 43 
 44 class MediaVideoFrame_t(Structure):
 45     _fields_=[
 46         ('rgb24',POINTER(c_char)),
 47         ('size',c_uint),
 48         ('width',c_int),
 49         ('height',c_int),
 50         ('sequence',c_uint),
 51         ('duration',c_uint)
 52     ]
 53     
 54 class MediaPacket_t(Structure):
 55     _fields_=[
 56         ('data',POINTER(c_char)),
 57         ('size',c_uint),
 58         ('pkt',c_char_p),
 59         ('stream',c_int),
 60         ('dts',c_int),
 61         ('pts',c_int),
 62         ('sequence',c_uint),
 63         ('duration',c_uint)
 64     ]
 65     
 66     
 67 class MediaCodecContext_t(Structure):
 68     _fields_=[
 69         ('codecCtx',c_char_p),
 70         ('codec',c_char_p),
 71         ('stream',c_int),
 72         ('rgbframe24',c_char_p),
 73         ('frame',c_char_p),
 74         ('buffer',c_char_p),
 75         ('bufsize',c_uint),
 76         ('user',c_char_p),
 77         ('si',MediaStreamInfo_t)
 78     ]    
 79     
 80 class MediaFormatContext_t(Structure):
 81     _fields_=[
 82         ('fc',c_char_p),
 83         ('video',MediaStreamInfo_t)
 84     ]
 85     
 86 InitAvCodec = _lib.InitAvCodec
 87 InitAvCodec.restype = POINTER(MediaCodecContext_t)
 88 InitAvCodec.argtypes = [POINTER(MediaStreamInfo_t)]
 89 
 90 
 91 FreeAvCodec = _lib.FreeAvCodec
 92 FreeAvCodec.restype = None
 93 FreeAvCodec.argtypes = [POINTER(MediaCodecContext_t)]
 96 DecodeVideoFrame = _lib.DecodeVideoFrame
 97 DecodeVideoFrame.restype = POINTER(MediaVideoFrame_t)
 98 DecodeVideoFrame.argtypes = [POINTER(MediaCodecContext_t),POINTER(MediaPacket_t)]
100 FreeVideoFrame = _lib.FreeVideoFrame
101 FreeVideoFrame.restype = None
102 FreeVideoFrame.argtypes = [POINTER(MediaVideoFrame_t)]  
104 AllocPacket = _lib.AllocPacket
105 AllocPacket.restype = POINTER(MediaPacket_t)
106 AllocPacket.argtypes = []
109 FreePacket = _lib.FreePacket
110 FreePacket.restype = None
111 FreePacket.argtypes = [POINTER(MediaPacket_t),c_int]
113 InitAvFormatContext = _lib.InitAvFormatContext
114 InitAvFormatContext.restype = POINTER(MediaFormatContext_t)
115 InitAvFormatContext.argtypes = [c_char_p]
117 FreeAvFormatContext = _lib.FreeAvFormatContext
118 FreeAvFormatContext.restype = None
119 FreeAvFormatContext.argtypes = [POINTER(MediaFormatContext_t)]
122 ReadNextPacket = _lib.ReadNextPacket
123 ReadNextPacket.restype = POINTER(MediaPacket_t)
124 ReadNextPacket.argtypes = [POINTER(MediaFormatContext_t)]
127 ReadReset = _lib.ReadReset
128 ReadReset.restype = None
129 ReadReset.argtypes = [POINTER(MediaFormatContext_t)]
130 
131 SeekToTime = _lib.SeekToTime
132 SeekToTime.restype = c_int
133 SeekToTime.argtypes = [POINTER(MediaFormatContext_t),c_int]
134 
135 FlushBuffer = _lib.FlushBuffer
136 FlushBuffer.restype =None
137 FlushBuffer.argtypes = [POINTER(MediaCodecContext_t)]
138 
139 InitLib = _lib.InitLib
140 InitLib.restype =None
141 InitLib.argtypes = []
142 
143 Cleanup = _lib.Cleanup
144 Cleanup.restype =None
145 Cleanup.argtypes = []

好了,看看如何使用這些接口 
視頻文件播放:      http://sw2us.com/static/projects/py-ffmpeg/test_qt.py
posted @ 2014-04-14 22:35 放屁阿狗 閱讀(5873) | 評論 (2)編輯 收藏

從事webgis及其應用有些時日,實驗性質的東西一直沒有被大規模應用,一路走來頗多辛苦 
現將代碼放出,有興趣的朋友可看看,包括地圖數據處理編譯、地圖渲染服務程序、wms程序、tce
http://114.215.178.29/wms/

目前從事im,移動互聯網平臺框架,p2p,并行計算方面研究
posted @ 2014-04-13 14:27 放屁阿狗 閱讀(1437) | 評論 (4)編輯 收藏

近一周時間都在玩p2p,本來以為實現很簡單,但做起來實屬不易 。 
Udp穿透Nat會遇到多種Nat類型: 
1.FULL CORE 
2. RESTRICT
3. PORT-RESTRICT
4. SYMMETRIC 
1-3三種NAT實現穿透很簡單,問題在于處理第4種類型:對等NAT 
SYMMETRIC NAT的工作模式區分在于內網通過NAT時分配的外部端口的方式不同,這又有三種情況: 
1. 端口遞增: 通常新端口號會是前一次分配端口號加1或者加固定值 
2. 端口在當前NAT最新端口的左右區間: 例如當前NAT外網端口P,那新的分配端口會落在 -N < P < N
3. 隨機分配SR (這個根據當時NAT的網絡情況參數等作為函數f(x)的因子決定)
這第三種分配方式,目前無解,只要任意一端存在SR,則無法穿透  
當然很多技術研究者提出了如何猜測動態端口的方案,例如:統計技術的使用,服務器可對固定NAT進行采樣分析等等。。
這個很難哦!
面對SR我直接放棄了,還真不巧,測試了3,4個網絡環境的NAT,居然50%是SR,50%是SYMMETRIC的1,2種類型 。 
還是老實的服務器中轉把!
一些p2p資料供參考:  http://114.215.178.29/static/p2p
posted @ 2014-04-11 00:32 放屁阿狗 閱讀(381) | 評論 (0)編輯 收藏

應用中經常用pyCrypto 來生成用戶Token等相關信息,夠簡單,所以貼代碼分享
部分代碼被關閉或者打開,使用者請自行調整,如果了解rsa很簡單理解一下代碼 

  1 GCONFS={
  2     'auth_public_keyfile':'public.rsa',
  3     'auth_private_keyfile':'private.rsa'
  4 }
  5 
  6 
  7 def encrypt_des(key,text):
  8     from Crypto.Cipher import DES
  9     import base64
 10     from Crypto import Random
 11     #iv = Random.get_random_bytes(8)
 12     des = DES.new(key, DES.MODE_ECB)
 13     reminder = len(text)%8
 14     if reminder ==0:  # pad 8 bytes
 15         text+='\x08'*8
 16     else:
 17         text+=chr(8-reminder)* (8-reminder)
 18     #text+=' '*(8-len(text)%8)
 19     return des.encrypt(text)
 20 #return base64.encodestring(des.encrypt(text))
 21 
 22 def decrypt_des(key,text):
 23     from Crypto.Cipher import DES
 24     import base64
 25     #    print key
 26     des = DES.new(key, DES.MODE_ECB)
 27     text = des.decrypt(text)
 28     pad = ord(text[-1])
 29     if pad == '\x08':
 30         return text[:-8]
 31     return text[:-pad]
 32 
 33 
 34 def rsa_generate():
 35     from Crypto.PublicKey import RSA
 36     from Crypto import Random
 37     random_generator = Random.new().read
 38     key = RSA.generate(1024, random_generator)
 39 
 40 
 41     #print key.publickey().encrypt('123213213123213213',20)
 42     public =  key.publickey().exportKey()
 43     #print key.publickey().exportKey()
 44     private = key.exportKey()
 45     return public,private
 46 
 47 def rsa_encrypt(key,text):
 48     '''
 49         傳入私鑰key和待加密明文數據text
 50         自動生成8字節長度隨機密碼P,用P將text進行des加密生成E,
 51         用私鑰key加密P生成P2
 52 
 53         key - private key
 54         text - orignal text
 55         @return:  [P2+E]  RSA加密的des秘鑰 + 加密的密文
 56     '''
 57     import uuid
 58     from Crypto.PublicKey import RSA
 59     deskey = hashlib.md5(uuid.uuid1().hex).hexdigest()[:8]
 60     text = encrypt_des(deskey,text)
 61 
 62     key = RSA.importKey(key)
 63     r = key.encrypt(deskey,32)
 64 
 65     return r[0]+text # 加密的key,和des加密的數據
 66 
 67 def rsa_decrypt(key,text):
 68     from Crypto.PublicKey import RSA
 69     try:
 70         rsa = RSA.importKey(key)
 71         deskey = text[:128]
 72         text = text[128:]
 73         deskey = rsa.decrypt(deskey)
 74         return decrypt_des(deskey,text)
 75     except:
 76         return ''
 77 
 78 class Cipher:
 79     def __init__(self):
 80 #        self.pubkey = pubkey
 81 #        self.privkey = privkey
 82         pass
 83 
 84     def encrypt(self,key,text):
 85         return rsa_encrypt(key,text)
 86 
 87 
 88     def decrypt(self,key,text):
 89         return rsa_decrypt(key,text)
 90 
 91     @staticmethod
 92     def getCipher():
 93         try:
 94             cip = Cipher()
 95             return cip
 96         except:
 97             traceback.print_exc()
 98             return None
 99 
100 def encryptToken(user):
101     '''
102         用戶信息轉換為token
103     '''
104     token=''
105     try:
106         d = json.dumps(user)
107 #        f = open(GCONFS['auth_public_keyfile'],'r')
108 #        pubkey = f.read()
109 #        f.close()
110         pubkey = ENCRYPT_PUBKEY
111         # d = Cipher.getCipher().encrypt(pubkey,d)  #rsa encrpyt
112         token = base64.encodestring(d).strip()
113     #print 'token size:',len(token)
114     except:
115         print traceback.format_exc()
116         token = ''
117 
118     return token
119 
120 def decryptToken(token):
121     user = None
122     try:
123 #        f = open(GCONFS['auth_private_keyfile'],'r')
124 #        privkey = f.read()
125 #        f.close()
126         privkey = ENCRYPT_PRIVKEY
127         d = base64.decodestring(token)
128         # d = Cipher.getCipher().decrypt(privkey,d) #rsa decrept
129         user = json.loads(d)
130     except:
131         #print traceback.format_exc()
132         pass
133     return user
posted @ 2014-04-01 10:22 放屁阿狗 閱讀(3378) | 評論 (1)編輯 收藏

僅列出標題
共25頁: 1 2 3 4 5 6 7 8 9 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久这里只有精品视频首页| 亚洲成色www8888| 午夜视频在线观看一区二区三区| 日韩视频在线观看国产| 亚洲精选国产| 亚洲美女av网站| 亚洲视频图片小说| 欧美一区二区三区喷汁尤物| 久久精品国产v日韩v亚洲 | 国产欧美视频一区二区三区| 国产精品一区二区视频 | 欧美人妖另类| 国产精品入口夜色视频大尺度 | 亚洲图片自拍偷拍| 性色av一区二区怡红| 老司机免费视频一区二区三区| 欧美电影免费观看高清| 艳女tv在线观看国产一区| 午夜国产精品影院在线观看| 久久在线视频| 国产精品一区在线播放| 亚洲激情一区| 久久成人免费日本黄色| 亚洲国产精品va在线看黑人动漫| 一区二区三区免费看| 久热国产精品| 国产日韩精品在线| 9久re热视频在线精品| 久久蜜臀精品av| 亚洲美女性视频| 久久躁狠狠躁夜夜爽| 国产精品日日做人人爱| 日韩午夜中文字幕| 狂野欧美一区| 亚洲欧美经典视频| 欧美午夜国产| 99re在线精品| 欧美大色视频| 久久久久久夜| 国内精品一区二区三区| 午夜免费在线观看精品视频| 激情成人亚洲| 国产精品美女久久| aⅴ色国产欧美| 欧美成人免费va影院高清| 亚洲中字在线| 国产精品国产三级国产专播精品人| 亚洲国产精品小视频| 久久久99爱| 亚洲欧美日韩一区二区| 欧美日韩亚洲综合| 日韩午夜中文字幕| 亚洲激情综合| 欧美国产91| 亚洲激情不卡| 欧美激情中文字幕在线| 另类天堂视频在线观看| 在线观看av不卡| 欧美va亚洲va香蕉在线| 久久夜色撩人精品| 亚洲成人在线免费| 久久综合色天天久久综合图片| 午夜欧美不卡精品aaaaa| 国产精品美女久久久久av超清| 亚洲一区在线直播| 亚洲一区中文字幕在线观看| 国产精品欧美日韩久久| 香蕉久久国产| 久久精品女人| 亚洲国产日韩美| 亚洲精品视频免费在线观看| 国产精品v亚洲精品v日韩精品| 亚洲一区中文| 欧美一二三区在线观看| 在线观看成人一级片| 亚洲国产精品一区二区www在线| 欧美精品日韩综合在线| 亚洲自拍偷拍网址| 久久九九免费| 一区二区免费看| 亚洲在线视频一区| 伊人影院久久| 99精品国产在热久久下载| 国产欧美日韩综合一区在线观看| 久久久久久夜| 欧美国产欧美综合 | 欧美人与性动交cc0o| 亚洲欧美国产精品桃花| 欧美主播一区二区三区美女 久久精品人 | 一区二区国产日产| 国产日韩欧美一区| 亚洲福利精品| 国产日韩欧美电影在线观看| 亚洲国产成人高清精品| 国产精品毛片一区二区三区| 玖玖玖国产精品| 欧美日韩妖精视频| 玖玖视频精品| 国产精品美女主播在线观看纯欲| 国产日韩欧美综合一区| 亚洲深夜激情| 亚洲欧美三级在线| 亚洲美女色禁图| 欧美在线关看| 亚洲直播在线一区| 欧美不卡一区| 久久综合国产精品台湾中文娱乐网| 欧美美女bb生活片| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日韩一区二区三区在线 | 亚洲激情av在线| 国产嫩草一区二区三区在线观看| 欧美成人综合在线| 国产一区二区三区四区hd| 亚洲乱码日产精品bd| 亚洲国产经典视频| 久久国产主播| 久久9热精品视频| 欧美日韩一区二区三区在线| 亚洲大胆在线| 在线观看中文字幕不卡| 欧美有码在线视频| 久久精品视频播放| 国产精品你懂的在线| 一区二区三区|亚洲午夜| 99精品国产在热久久| 欧美大片免费久久精品三p| 欧美成人综合| 亚洲激情在线观看| 蘑菇福利视频一区播放| 欧美黄色一区| 亚洲国产日日夜夜| 美日韩免费视频| 欧美好骚综合网| 亚洲日本久久| 欧美久久久久久蜜桃| 亚洲免费av片| 亚洲一区中文| 国产伦精品一区二区三区视频孕妇| 亚洲天天影视| 久久精品国产免费看久久精品| 国产亚洲网站| 久久综合国产精品| 亚洲二区精品| 亚洲色图在线视频| 国产精品人人做人人爽人人添| 亚洲欧美日韩精品| 久久先锋资源| 亚洲欧洲一区二区三区| 欧美剧在线免费观看网站| 99国内精品| 久久九九热re6这里有精品| 伊人久久综合97精品| 欧美高清视频免费观看| 亚洲精品在线视频观看| 欧美影视一区| 在线观看精品| 欧美日韩国产综合一区二区| 在线亚洲精品福利网址导航| 久久爱另类一区二区小说| 一区精品久久| 欧美理论在线| 午夜亚洲视频| 亚洲片区在线| 欧美一区二区三区在| 影音先锋另类| 国产精品大片wwwwww| 久久婷婷人人澡人人喊人人爽 | 亚洲高清av| 亚洲欧美日韩直播| 伊人久久男人天堂| 国产精品成人免费视频| 久久全球大尺度高清视频| 一本一道久久综合狠狠老精东影业| 欧美综合国产精品久久丁香| 91久久国产综合久久91精品网站| 国产精品v一区二区三区| 久久久国产一区二区三区| 一本色道久久综合精品竹菊 | 国产精品一区二区三区四区五区 | 韩国亚洲精品| 欧美午夜不卡在线观看免费| 久久婷婷一区| 亚洲欧美日韩天堂| 亚洲精品乱码久久久久久| 久久免费偷拍视频| 亚洲欧美日韩中文视频| 最新国产精品拍自在线播放| 国产欧美亚洲视频| 欧美日韩另类综合| 欧美成人一区在线| 久久久噜噜噜久久狠狠50岁| 亚洲午夜精品17c| 日韩视频在线免费| 欧美激情按摩| 免费高清在线一区| 久久一区二区三区超碰国产精品| 亚洲尤物在线视频观看| 99热在线精品观看| 亚洲欧洲日产国码二区|