成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 教你怎么用Python監(jiān)控愉客行車程

教你怎么用Python監(jiān)控愉客行車程

熱門標簽:蘇州電銷機器人十大排行榜 電信營業(yè)廳400電話申請 悟空智電銷機器人6 荊州云電銷機器人供應商 遼寧400電話辦理多少錢 溫州旅游地圖標注 幫人做地圖標注收費算詐騙嗎 江蘇房產電銷機器人廠家 外呼不封號系統(tǒng)

一、愉客行車程監(jiān)控并通知

大概思路:用戶填寫指定信息在config.json文件中,通過定時訪問網(wǎng)頁,獲取指定信息,從而達到對指定車程的監(jiān)控

1.分析網(wǎng)頁

按下F12,打開開發(fā)者工具,再刷新一下網(wǎng)頁

找到我們需要的信息

然后再分析一下它的請求方式

很直觀的就看到了幾條主要的信息

第一條和第三條是null不重要
第二條是起始站
第四條是終點站
第五條是個數(shù)字,經過反復嘗試,發(fā)現(xiàn)是固定參數(shù)
第六條乍一看應該是時間戳,經過驗證,的確是車票指定日期零點的時間戳

2.請求頭偽裝、帶參訪問指定網(wǎng)頁,獲取信息:

def get_html(startStation, endStation, timeStamp):
    # 模擬請求
    headers = {
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-HK;q=0.6',
        'Connection': 'keep-alive',
        'Content-Length': '124',
        'Content-Type': 'application/json; charset=UTF-8',
        'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',
        'sec-ch-ua-mobile': '?0',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'cross-site',
        'Host': 'busserver.cqyukexing.com',
        'Origin': 'https://www.96096kp.com',
        'Referer': 'https://www.96096kp.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36',
    }
    data = {
        'departureName': startStation,
        'destinationId': 'null',
        'destinationName': endStation,
        'opSource': '7',
        # 指定日期時間戳
        'queryDate': timeStamp,
    }
    data = json.dumps(data)
    url = 'https://busserver.cqyukexing.com/busticket/schedule_list_310?channel=7'
    response = requests.post(url, headers=headers, data=data, timeout=5)
    if response.status_code == 200:
        html = response.text
        # print(html)
        return html

3.將返回的數(shù)據(jù)解析

因為請求獲得的數(shù)據(jù)是json格式的,所以用jsonpath做數(shù)據(jù)解析

def parse_html(html):
    # 解析獲取的數(shù)據(jù)
    items = []
    html = json.loads(html)
    for i in range(len(jsonpath.jsonpath(html, '$..scheduleInfo'))):
        item = {}
        timeStamp = jsonpath.jsonpath(html, '$..scheduleInfo..departureTime')[i]
        item["發(fā)車日期"] = time.strftime("%Y-%m-%d", time.localtime(timeStamp))
        # 檢測是否過期
        out_data(item["發(fā)車日期"])
        item["發(fā)車時間"] = jsonpath.jsonpath(html, '$..scheduleInfo..departureTimeDesc')[i]
        item["起始站"] = jsonpath.jsonpath(html, '$..departureStation..name')[i]
        # item["地址"] = jsonpath.jsonpath(html, '$..departureStation..addr')[i]
        item["終點站"] = jsonpath.jsonpath(html, '$..destinationStation..name')[i]
        item["余票"] = jsonpath.jsonpath(html, '$..scheduleInfo..remainSeatCnt')[i]
        item["票價"] = jsonpath.jsonpath(html, '$..scheduleInfo..fullTicketPrice')[i]
        item["車型"] = jsonpath.jsonpath(html, '$..scheduleInfo..busType')[i]
        item["車牌號"] = jsonpath.jsonpath(html, '$..scheduleInfo..scheduleCode')[i]
        item["路線"] = jsonpath.jsonpath(html, '$..scheduleInfo..lineName')[i][3:]
        item["狀態(tài)"] = '\033[32m' if item["余票"] > 0 else '\033[31m'
        # item["途徑"] = jsonpath.jsonpath(html, '$..scheduleInfo..stopStation')[i]
        items.append(item)
    return items

4.篩選出有票的車次

這里是將已經獲取過的車次保存到文件中,一旦檢測到新的車次,就準備通知,如果檢測到沒有新車次,不做通知

def watch_ticks(bus_list):
    # 檢查目前還有票的車次
    format_info(bus_list)
    has_ticks = []
    filename = 'tick_log of ' + bus_list[0]["起始站"] + '-' + bus_list[0]["終點站"] + '.txt'
    # 如果log文件不存在,則新建一個空的文件
    if not os.path.exists('./logs/' + filename):
        f = open('./logs/' + filename, 'w')
        f.close()
    with open('./logs/' + filename, 'r+', encoding='utf-8') as file:
        alreald_send = file.read()
    for bus in bus_list:
        if bus["余票"] != 0 and bus["發(fā)車時間"] not in alreald_send or not len(alreald_send):
            has_ticks.append(bus)
            with open('./logs/tick_log of ' + bus["起始站"] + '-' + bus["終點站"] + '.txt', 'a+', encoding='utf-8') as file:
                file.write(bus["發(fā)車時間"] + '\n')
    # print(has_ticks)
    return has_ticks

5.格式化終端輸出信息

輸出車程信息,這里改了終端車次顯示的顏色,有票的是綠色、沒票的是紅色,很快就能識別出自己想要的

def format_info(bus_list):
    print(bus_list[0]["發(fā)車日期"] + '\t' + bus_list[0]["起始站"] + '-' + bus_list[0]["終點站"])
    print('-' * 120)
    # print("\t發(fā)車時間"
    #       "\t\t\t起始站"
    #       "\t\t\t終點站"
    #       "\t\t余票"
    #       "\t\t票價"
    #       "\t\t路線"
    #       "\t\t車型"
    #       "\t\t車牌號")
    for bus in bus_list:
        print(bus["狀態(tài)"] + "\t" + bus["發(fā)車時間"],
              "\t\t" + bus["起始站"],
              "\t\t" + bus["終點站"],
              "\t\t" + str(bus["余票"]),
              "\t\t\t" + str(bus["票價"]),
              "\t\t" + bus["路線"],
              "\t\t" + bus["車型"],
              "\t\t" + bus["車牌號"] + '\033[0m')
    print('-' * 120)

6.設定郵件通知

這里代碼是以前的,我直接拿來改了一下

def send_email(sendUser, mail_user, mail_pass, receivers, start, end, tick_date, message):
    """發(fā)送郵件"""
    # 第三方 SMTP 服務
    mail_host = 'smtp.qq.com'  # 設置服務器
    sender = mail_user

    # 創(chuàng)建一個帶附件的案例
    mail = MIMEMultipart()

    mail['From'] = Header(sendUser, 'utf-8')
    mail['To'] = ";".join(receivers)
    subject = '愉客行有新的票務情況:' + tick_date + '-' + start + '-' + end  # 郵件標題
    mail['Subject'] = Header(subject, 'utf-8')

    # 郵件正文內容
    mail.attach(MIMEText(message, 'plain', 'utf-8'))

    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)  # 25為端口號
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender, receivers, mail.as_string())
        print(receivers + "\t發(fā)送成功")  # 郵件發(fā)送成功
    except Exception as e:
        pass
    finally:
        smtpObj.quit()

7.設定主函數(shù)

這里把用戶輸入的信息轉換一下,將日期轉為時間戳,并且可支持多車程的監(jiān)控,配置文件應一一對應。
將獲取到的車程信息保存
如果有變化,立刻發(fā)送郵件通知
設定了定時執(zhí)行,這里是每隔30分鐘執(zhí)行一次

def main():
    global timer_times
    timer_times = timer_times + 1
    for i in range(len(startStation)):
        html = get_html(startStation[i], endStation[i], timeStamp[i])
        bus_list = parse_html(html)
        # pprint.pprint(bus_list)
        has_ticks = watch_ticks(bus_list)
        json.dump(bus_list,
                  open('./data/bus_list of ' + startStation[i] + '-' + endStation[i] + '.json', 'a+', encoding='utf-8'),
                  ensure_ascii=False)
        if len(has_ticks):
            json.dump(has_ticks, open('./data/has_ticks of ' + startStation[i] + '-' + endStation[i] + '.json', 'w+',
                                      encoding='utf-8'), ensure_ascii=False)
            message = '\n'.join([str(tick).replace(',', '\n') for tick in has_ticks])
            send_email(sendUser[i], mail_user[i], mail_pass[i], receivers[i], startStation[i], endStation[i],
                       ticksDate[i], message)
    # 定時延遲
    now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    log_message = ("\n定時任務已觸發(fā)至:第%s輪\n當前時間:%s\n" % (timer_times, now))
    with open("./logs/log.txt", 'a+', encoding="utf-8") as file:
        file.write(log_message)
    print(log_message)
    time.sleep(1800)
    timer = threading.Timer(1800, main())
    timer.start()

8.程序入口

獲取config.json文件的信息,執(zhí)行main函數(shù),開始定時任務

if __name__ == '__main__':
    with open('config.json', 'r', encoding='utf-8') as file:
        config = json.load(file)
    startStation = config["起始站"]
    endStation = config["終點站"]
    ticksDate = config["車票日期"]
    timeArray = [time.strptime(tick_date + ' 00:00:00', "%Y-%m-%d %H:%M:%S") for tick_date in config["車票日期"]]
    timeStamp = [int(time.mktime(times)) for times in timeArray]
    sendUser = config["發(fā)送人"]
    mail_user = config["用戶名"]
    mail_pass = config["第三方客戶端授權碼"]
    receivers = config["接收方"]
    # 定時延遲
    timer_times = 0
    timer = threading.Timer(1800, main())
    timer.start()

本來是想掛到服務器上,就做了一個檢測日期的函數(shù),如果車程日期在當前日期之前,就直接退出程序,最后還是在本地上運行的,就沒用的上

def out_data(date):
    # 檢查車票跟蹤是否過時
    # 是否過期一天
    tomorrow = datetime.date.today() - datetime.timedelta(days=1)
    if date == tomorrow:
        print("車票跟蹤已過時!")
        os.exit(0)

9.結果圖

二、目錄結構

三、完整代碼

import datetime
import os
import smtplib
import threading
import time
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

import requests
import json
import jsonpath


def get_html(startStation, endStation, timeStamp):
    # 模擬請求
    headers = {
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-HK;q=0.6',
        'Connection': 'keep-alive',
        'Content-Length': '124',
        'Content-Type': 'application/json; charset=UTF-8',
        'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',
        'sec-ch-ua-mobile': '?0',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'cross-site',
        'Host': 'busserver.cqyukexing.com',
        'Origin': 'https://www.96096kp.com',
        'Referer': 'https://www.96096kp.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36',
    }
    data = {
        'departureName': startStation,
        'destinationId': 'null',
        'destinationName': endStation,
        'opSource': '7',
        # 指定日期時間戳
        'queryDate': timeStamp,
    }
    data = json.dumps(data)
    url = 'https://busserver.cqyukexing.com/busticket/schedule_list_310?channel=7'
    response = requests.post(url, headers=headers, data=data, timeout=5)
    if response.status_code == 200:
        html = response.text
        # print(html)
        return html


def parse_html(html):
    # 解析獲取的數(shù)據(jù)
    items = []
    html = json.loads(html)
    for i in range(len(jsonpath.jsonpath(html, '$..scheduleInfo'))):
        item = {}
        timeStamp = jsonpath.jsonpath(html, '$..scheduleInfo..departureTime')[i]
        item["發(fā)車日期"] = time.strftime("%Y-%m-%d", time.localtime(timeStamp))
        # 檢測是否過期
        out_data(item["發(fā)車日期"])
        item["發(fā)車時間"] = jsonpath.jsonpath(html, '$..scheduleInfo..departureTimeDesc')[i]
        item["起始站"] = jsonpath.jsonpath(html, '$..departureStation..name')[i]
        # item["地址"] = jsonpath.jsonpath(html, '$..departureStation..addr')[i]
        item["終點站"] = jsonpath.jsonpath(html, '$..destinationStation..name')[i]
        item["余票"] = jsonpath.jsonpath(html, '$..scheduleInfo..remainSeatCnt')[i]
        item["票價"] = jsonpath.jsonpath(html, '$..scheduleInfo..fullTicketPrice')[i]
        item["車型"] = jsonpath.jsonpath(html, '$..scheduleInfo..busType')[i]
        item["車牌號"] = jsonpath.jsonpath(html, '$..scheduleInfo..scheduleCode')[i]
        item["路線"] = jsonpath.jsonpath(html, '$..scheduleInfo..lineName')[i][3:]
        item["狀態(tài)"] = '\033[32m' if item["余票"] > 0 else '\033[31m'
        # item["途徑"] = jsonpath.jsonpath(html, '$..scheduleInfo..stopStation')[i]
        items.append(item)
    return items


def watch_ticks(bus_list):
    # 檢查目前還有票的車次
    format_info(bus_list)
    has_ticks = []
    filename = 'tick_log of ' + bus_list[0]["起始站"] + '-' + bus_list[0]["終點站"] + '.txt'
    # 如果log文件不存在,則新建一個空的文件
    if not os.path.exists('./logs/' + filename):
        f = open('./logs/' + filename, 'w')
        f.close()
    with open('./logs/' + filename, 'r+', encoding='utf-8') as file:
        alreald_send = file.read()
    for bus in bus_list:
        if bus["余票"] != 0 and bus["發(fā)車時間"] not in alreald_send or not len(alreald_send):
            has_ticks.append(bus)
            with open('./logs/tick_log of ' + bus["起始站"] + '-' + bus["終點站"] + '.txt', 'a+', encoding='utf-8') as file:
                file.write(bus["發(fā)車時間"] + '\n')
    # print(has_ticks)
    return has_ticks


def out_data(date):
    # 檢查車票跟蹤是否過時
    # 是否過期一天
    tomorrow = datetime.date.today() - datetime.timedelta(days=1)
    if date == tomorrow:
        print("車票跟蹤已過時!")
        os.exit(0)


def format_info(bus_list):
    print(bus_list[0]["發(fā)車日期"] + '\t' + bus_list[0]["起始站"] + '-' + bus_list[0]["終點站"])
    print('-' * 120)
    # print("\t發(fā)車時間"
    #       "\t\t\t起始站"
    #       "\t\t\t終點站"
    #       "\t\t余票"
    #       "\t\t票價"
    #       "\t\t路線"
    #       "\t\t車型"
    #       "\t\t車牌號")
    for bus in bus_list:
        print(bus["狀態(tài)"] + "\t" + bus["發(fā)車時間"],
              "\t\t" + bus["起始站"],
              "\t\t" + bus["終點站"],
              "\t\t" + str(bus["余票"]),
              "\t\t\t" + str(bus["票價"]),
              "\t\t" + bus["路線"],
              "\t\t" + bus["車型"],
              "\t\t" + bus["車牌號"] + '\033[0m')
    print('-' * 120)


def send_email(sendUser, mail_user, mail_pass, receivers, start, end, tick_date, message):
    """發(fā)送郵件"""
    # 第三方 SMTP 服務
    mail_host = 'smtp.qq.com'  # 設置服務器
    sender = mail_user

    # 創(chuàng)建一個帶附件的案例
    mail = MIMEMultipart()

    mail['From'] = Header(sendUser, 'utf-8')
    mail['To'] = ";".join(receivers)
    subject = '愉客行有新的票務情況:' + tick_date + '-' + start + '-' + end  # 郵件標題
    mail['Subject'] = Header(subject, 'utf-8')

    # 郵件正文內容
    mail.attach(MIMEText(message, 'plain', 'utf-8'))

    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)  # 25為端口號
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender, receivers, mail.as_string())
        print(receivers + "\t發(fā)送成功")  # 郵件發(fā)送成功
    except Exception as e:
        pass
    finally:
        smtpObj.quit()


def main():
    global timer_times
    timer_times = timer_times + 1
    for i in range(len(startStation)):
        html = get_html(startStation[i], endStation[i], timeStamp[i])
        bus_list = parse_html(html)
        # pprint.pprint(bus_list)
        has_ticks = watch_ticks(bus_list)
        json.dump(bus_list,
                  open('./data/bus_list of ' + startStation[i] + '-' + endStation[i] + '.json', 'a+', encoding='utf-8'),
                  ensure_ascii=False)
        if len(has_ticks):
            json.dump(has_ticks, open('./data/has_ticks of ' + startStation[i] + '-' + endStation[i] + '.json', 'w+',
                                      encoding='utf-8'), ensure_ascii=False)
            message = '\n'.join([str(tick).replace(',', '\n') for tick in has_ticks])
            send_email(sendUser[i], mail_user[i], mail_pass[i], receivers[i], startStation[i], endStation[i],
                       ticksDate[i], message)
    # 定時延遲
    now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    log_message = ("\n定時任務已觸發(fā)至:第%s輪\n當前時間:%s\n" % (timer_times, now))
    with open("./logs/log.txt", 'a+', encoding="utf-8") as file:
        file.write(log_message)
    print(log_message)
    time.sleep(1800)
    timer = threading.Timer(1800, main())
    timer.start()


if __name__ == '__main__':
    with open('config.json', 'r', encoding='utf-8') as file:
        config = json.load(file)
    startStation = config["起始站"]
    endStation = config["終點站"]
    ticksDate = config["車票日期"]
    timeArray = [time.strptime(tick_date + ' 00:00:00', "%Y-%m-%d %H:%M:%S") for tick_date in config["車票日期"]]
    timeStamp = [int(time.mktime(times)) for times in timeArray]
    sendUser = config["發(fā)送人"]
    mail_user = config["用戶名"]
    mail_pass = config["第三方客戶端授權碼"]
    receivers = config["接收方"]
    # 定時延遲
    timer_times = 0
    timer = threading.Timer(1800, main())
    timer.start()

四、config.json文件

{
  "車票日期": [
    "2021-4-30",
    "2021-5-5"
  ],
  "起始站": [
    "萬州",
    "彭水縣"
  ],
  "終點站": [
    "涪陵",
    "萬州"
  ],
  "發(fā)送人": [
    "愉客行",
    "愉客行"
  ],
  "用戶名": [
    "1*******27@qq.com",
    "1*******27@qq.com"
  ],
  "第三方客戶端授權碼": [
    "oxms********iicj",
    "oxms********iicj"
  ],
  "接收方": [
    "265******8@qq.com",
    "265******8@qq.com"
  ]
}

到此這篇關于教你怎么用Python監(jiān)控愉客行車程的文章就介紹到這了,更多相關Python監(jiān)控愉客行車程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python實時監(jiān)控網(wǎng)站瀏覽記錄實現(xiàn)過程詳解
  • python實現(xiàn)批量監(jiān)控網(wǎng)站
  • 利用Python自動監(jiān)控網(wǎng)站并發(fā)送郵件告警的方法
  • python監(jiān)控網(wǎng)站運行異常并發(fā)送郵件的方法
  • 用python實現(xiàn)監(jiān)控視頻人數(shù)統(tǒng)計
  • 用Python監(jiān)控NASA TV直播畫面的實現(xiàn)步驟
  • Python實戰(zhàn)之能監(jiān)控文件變化的神器—看門狗
  • Python實現(xiàn)用手機監(jiān)控遠程控制電腦的方法
  • python實現(xiàn)的web監(jiān)控系統(tǒng)
  • 用Python監(jiān)控你的朋友都在瀏覽哪些網(wǎng)站?

標簽:濟南 三沙 臺灣 欽州 宿遷 黃山 喀什 景德鎮(zhèn)

巨人網(wǎng)絡通訊聲明:本文標題《教你怎么用Python監(jiān)控愉客行車程》,本文關鍵詞  教你,怎么,用,Python,監(jiān)控,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《教你怎么用Python監(jiān)控愉客行車程》相關的同類信息!
  • 本頁收集關于教你怎么用Python監(jiān)控愉客行車程的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    人人妻人人玩人人澡人人爽| 大桥未久一区二区三区| 黄色一区二区三区四区| 国产一级片麻豆| 91久久久精品| 亚洲国产精品精华液ab| 国产精品人人妻人人爽| 国产精品影片在线观看| 亚洲情趣在线观看| 欧美黑人巨大videos精品| 99热这里只有精品在线观看| 成熟妇人a片免费看网站| 免费在线黄色电影| 国产欧美一区在线| 亚洲精品成人无码| 最近中文字幕mv第三季歌词| 国产99久久久国产精品| 亚洲成年人网站在线观看| 黄色一级片免费看| 国产精品色在线| 亚洲在线视频一区二区| 欧美日韩精品在线播放| 国产精品久久..4399| 日韩高清影视在线观看| 色综合999| 欧美影院在线播放| 免费日韩av片| 偷拍一区二区三区四区| 在线这里只有精品| 亚洲欧美日韩人成在线播放| 中文视频一区视频二区视频三区| 日韩av一卡二卡三卡| 美女一级全黄| 国产一区二区三区在线看麻豆| 妺妺窝人体色www在线小说| 手机免费观看av| 久久av免费观看| 精品国产一区二区三区久久久樱花| 黄色小说在线播放| 国产成人精彩在线视频九色| 中文字幕a在线观看| 天堂电影院在线| 国产性网软件大全| 欧美最猛黑人xxxxwww| 亚洲激情中文1区| 中文字幕在线视频观看| 国语对白永久免费| 欧美国产日韩免费| 久久精品国产第一区二区三区| 久久久久人妻一区精品色欧美| 日本性生活一级片| 激情久久一区二区| 看**视频a级毛片| 国产精品538一区二区在线| 日日碰狠狠添天天爽超碰97| 国产福利一区在线观看| 久久久天天操| 丝袜在线视频| 老鸭窝亚洲一区二区三区| 亚洲色图欧美制服丝袜另类第一页| 日韩黄色在线观看| 亚洲小视频在线| 国产精品午夜久久久久久| 6080亚洲理论片在线观看| av网址在线播放| 91在线看国产| 9色视频在线观看| 欧美精品二区三区| 亚洲国产欧美日韩另类综合| 国产系列电影在线播放网址| 蜜臀av色欲a片无码精品一区| 精品国产一区一区二区三亚瑟| 欧美va视频| 91精品国产色综合久久不8| 超碰一区二区三区| 天天色天天操综合| 成人黄色在线电影| 欧美午夜三级| 亚洲va欧美va人人爽午夜| xxxx18国产| 精品午夜福利在线观看| 国产性xxxx18免费观看视频| 日韩伦理一区二区三区| 久久九九久精品国产免费直播| 最近2018年在线中文字幕高清| 91视频精品在这里| 日本在线观看免费| 亚洲一区在线观看视频| 亚洲午夜免费福利视频| 精品久久人人做人人爰| 欧美影院在线播放| 欧美a级在线| 成人h动漫精品一区二区无码| 欧美激情精品久久久久| 暴力调教一区二区三区| 午夜3点看的视频| 懂色一区二区三区免费观看| av网站在线免费播放| 呦视频在线一区二区三区| 亚洲男人天堂久| 波多野结衣视频在线看| 九九热精品在线播放| 中文字幕91| 精品久久久久久中文字幕| 成人一区在线看| 久久综合久久美利坚合众国| 亚洲一区二区三区四区五区xx| 欧洲精品一区色| av网站免费大全| 国产精品偷伦视频免费观看国产| 日韩毛片在线一区二区毛片| 国产精品扒开腿做| 91首页免费视频| 在线看的网站你懂| 91tv官网精品成人亚洲| 一区二区三区精品视频在线观看| 在线免费看黄视频| a中文字幕www| 欧美在线一二三区| 亚洲欧美中日韩| 国产美女网站在线观看| 艳女tv在线观看国产一区| av电影在线免费| 粉嫩高清一区二区三区精品视频| 97中文字幕在线| 国内精品伊人久久久久影院对白| 男人的天堂www| 日韩精品视频在线观看免费| 成人久久视频在线观看| 成人精品久久一区二区三区| 男男做性免费视频网| 欧美18av| xxxxxhd亚洲人hd| 美美哒免费高清在线观看视频一区二区| 91麻豆精品国产91久久久久| 密臀av一区二区三区| 日韩精品一区在线观看| 久久99蜜桃精品久久久久小说| av免费在线一区二区三区| 一区二区黄色| 天堂av在线网| 欧美成年人视频网站欧美| 亚洲精品国产setv| 国产免费黄色网址| 成人在线播放网址| 夜夜躁狠狠躁日日躁婷婷小说| 国产乱码一区二区| 日本黄色三级大片| 日韩黄色视屏| 狠狠久久综合婷婷不卡| 欧美日韩裸体免费视频| 91久久久久久久久久久久| 高端美女服务在线视频播放| 宅男视频免费在线观看视频| 又骚又黄的视频| 欧美精品一区二区三区蜜臀| 午夜影院免费观看视频| 成人在线视频网| 噜噜噜狠狠夜夜躁精品仙踪林| 国产v综合ⅴ日韩v欧美大片| 91亚洲精品久久久蜜桃| 一区二区免费在线观看视频| 亚洲一区二区三区欧美| 午夜精品在线观看| 精品久久香蕉国产线看观看gif| 欧美在线国产| 精品一区三区| 日韩中文在线中文网在线观看| 精品动漫一区| 欧美国产三级| 欧美日韩激情美女| 国产综合激情| 日韩美女视频在线| 久久99日本精品| 青青草精品毛片| 欧美一级搡bbbb搡bbbb| 国产97在线亚洲| 欧洲av在线精品| 婷婷综合激情| 精品亚洲aⅴ乱码一区二区三区| 日本欧美亚洲| 精品无码国模私拍视频| 日韩精品av一区二区三区| 成年在线观看免费人视频| 91色视频在线导航| 好色视频app| 中文字幕人妻一区二区三区视频| 国产成人精品综合久久久| 在线免费视频你懂得| 思热99re视热频这里只精品| 做爰视频毛片视频| 久久精品123| 亚洲国产激情一区二区三区| 欧美久久久久久久久久久久久| 51免费午夜啪啪| 久久亚洲国产精品成人av秋霞| 精品视频在线免费看| 美女脱光内衣内裤| 青青草视频社区| 亚洲欧洲国产日本综合| 娇小发育未年成性色xxx8| 蜜桃视频在线观看免费视频网站www| 人人干人人看| 在线国产精品一区| 国产日产欧美精品一区二区三区| xxx性欧美在线| 黄色av网站免费观看| 免费啪视频在线观看| 成人毛片在线精品国产| 西西午夜视频| 97精品久久人人爽人人爽| 久久久久99精品成人片| 青青草.com| 精品成人在线视频| 中文字幕中文在线不卡住| 国产精品69久久久久水密桃| 老司机在线永久免费观看| 26uuu亚洲电影在线观看| 国产精品美女午夜爽爽| 97免费视频在线| 日韩一区二区a片免费观看| 久久成人精品一区二区三区| 同性恋视频网站资源| 亚洲精品男人的天堂| 午夜婷婷在线观看| 日本xxxxx18| 91手机在线视频| 精品一区二区三区免费毛片爱| 中文字幕一区二区三区手机版| 久久综合图片| 亚洲国产精品99久久久久久久久| 亚洲国产精品一区二区www| 麻豆免费版在线观看| 国产欧美va欧美va香蕉在| 国产一区二区不卡| 成人春色在线观看免费网站| 亚洲欧洲日本在线| 亚洲图区综合网| 欧美图片一区二区| 视频一区二区在线播放| 国产高清视频一区二区| 国产精品成人**免费视频| 91亚洲va在线va天堂va国| 午夜亚洲一区| 性欧美videoshd高清| 中文字幕亚洲二区| 日韩在线精品| 99久久婷婷国产综合精品电影| 6699久久国产精品免费| 男生裸体视频网站| 先锋影音网一区| av男人天堂网| 亚洲精品一区二区毛豆| 久久精品一区二区三| 波多野结衣视频一区| 一区二区三区久久久久| 日韩一区二区三区色| 国产福利91精品一区| 欧美在线免费看| 青草在线视频| 久久伊99综合婷婷久久伊| 免费vip影院| 日欧美一区二区| 九色porny丨国产首页在线| www.噜噜色.com| 国内精品小视频在线观看| 日韩三区在线观看| 国产区在线视频| 男人操女人的视频在线观看欧美| 美女隐私在线观看| 欧美做受xxxxxⅹ性视频| 欧美一二三四区在线| 欧美在线观看18| 99久久精品国产一区色| 精品欧美乱码久久久久久1区2区| 久久久久久久久久久久久久久国产| 国产一区自拍视频| www.日本在线观看| 国产情侣av在线| 污视频在线观看免费| 黄污视频在线看| 欧美系列日韩一区| 久久国产欧美精品| 欧美日韩国产色站一区二区三区| 福利地址发布页| 久久久久久久人妻无码中文字幕爆| 中文字幕视频观看| 亚洲一级二级| 英国三级经典在线观看| 国产一区二区三区奇米久涩| 成年人在线观看av| 性欧美freehd18| 插插插亚洲综合网| 日日摸日日搞日日| 欧美色蜜桃97| 国产精品国产自产拍高清av| 欧美精品在线网站| 亚洲一区二区免费在线| 色综合五月婷婷| 草草视频在线一区二区| 虎白女粉嫩尤物福利视频| 欧美金发大战黑人最粗videos| 国产一级二级三级精品| 日本视频一区二区三区| 国产精品视频3p| 日韩在线一区二区| 99久热在线精品996热是什么| 亚洲免费在线视频| 亚洲综合免费视频| 亚洲色图美腿丝袜| 精品女厕厕露p撒尿| 成人欧美一区二区| 五月天婷婷久久| 中文字幕无码人妻少妇免费| 国产精品久久久久久久久粉嫩av| 久久香蕉av| 一级片免费看| 免费看岛国视频在线观看| 国产精品一区二区三区精品| 亚洲精品中字| 日本一区二区三区四区视频| 日日草天天草| 日本午夜小视频| 欧美日韩视频免费播放| 最新亚洲一区| 欧美精品成人91久久久久久久| 成人亚洲欧美激情在线电影| 在线免费三级电影网站|