婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 教你怎么用Python監控愉客行車程

教你怎么用Python監控愉客行車程

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

一、愉客行車程監控并通知

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

1.分析網頁

按下F12,打開開發者工具,再刷新一下網頁

找到我們需要的信息

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

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

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

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

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.將返回的數據解析

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

def parse_html(html):
    # 解析獲取的數據
    items = []
    html = json.loads(html)
    for i in range(len(jsonpath.jsonpath(html, '$..scheduleInfo'))):
        item = {}
        timeStamp = jsonpath.jsonpath(html, '$..scheduleInfo..departureTime')[i]
        item["發車日期"] = time.strftime("%Y-%m-%d", time.localtime(timeStamp))
        # 檢測是否過期
        out_data(item["發車日期"])
        item["發車時間"] = 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["狀態"] = '\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["發車時間"] 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["發車時間"] + '\n')
    # print(has_ticks)
    return has_ticks

5.格式化終端輸出信息

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

def format_info(bus_list):
    print(bus_list[0]["發車日期"] + '\t' + bus_list[0]["起始站"] + '-' + bus_list[0]["終點站"])
    print('-' * 120)
    # print("\t發車時間"
    #       "\t\t\t起始站"
    #       "\t\t\t終點站"
    #       "\t\t余票"
    #       "\t\t票價"
    #       "\t\t路線"
    #       "\t\t車型"
    #       "\t\t車牌號")
    for bus in bus_list:
        print(bus["狀態"] + "\t" + bus["發車時間"],
              "\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):
    """發送郵件"""
    # 第三方 SMTP 服務
    mail_host = 'smtp.qq.com'  # 設置服務器
    sender = mail_user

    # 創建一個帶附件的案例
    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發送成功")  # 郵件發送成功
    except Exception as e:
        pass
    finally:
        smtpObj.quit()

7.設定主函數

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

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定時任務已觸發至:第%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文件的信息,執行main函數,開始定時任務

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["發送人"]
    mail_user = config["用戶名"]
    mail_pass = config["第三方客戶端授權碼"]
    receivers = config["接收方"]
    # 定時延遲
    timer_times = 0
    timer = threading.Timer(1800, main())
    timer.start()

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

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):
    # 解析獲取的數據
    items = []
    html = json.loads(html)
    for i in range(len(jsonpath.jsonpath(html, '$..scheduleInfo'))):
        item = {}
        timeStamp = jsonpath.jsonpath(html, '$..scheduleInfo..departureTime')[i]
        item["發車日期"] = time.strftime("%Y-%m-%d", time.localtime(timeStamp))
        # 檢測是否過期
        out_data(item["發車日期"])
        item["發車時間"] = 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["狀態"] = '\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["發車時間"] 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["發車時間"] + '\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]["發車日期"] + '\t' + bus_list[0]["起始站"] + '-' + bus_list[0]["終點站"])
    print('-' * 120)
    # print("\t發車時間"
    #       "\t\t\t起始站"
    #       "\t\t\t終點站"
    #       "\t\t余票"
    #       "\t\t票價"
    #       "\t\t路線"
    #       "\t\t車型"
    #       "\t\t車牌號")
    for bus in bus_list:
        print(bus["狀態"] + "\t" + bus["發車時間"],
              "\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):
    """發送郵件"""
    # 第三方 SMTP 服務
    mail_host = 'smtp.qq.com'  # 設置服務器
    sender = mail_user

    # 創建一個帶附件的案例
    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發送成功")  # 郵件發送成功
    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定時任務已觸發至:第%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["發送人"]
    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"
  ],
  "起始站": [
    "萬州",
    "彭水縣"
  ],
  "終點站": [
    "涪陵",
    "萬州"
  ],
  "發送人": [
    "愉客行",
    "愉客行"
  ],
  "用戶名": [
    "1*******27@qq.com",
    "1*******27@qq.com"
  ],
  "第三方客戶端授權碼": [
    "oxms********iicj",
    "oxms********iicj"
  ],
  "接收方": [
    "265******8@qq.com",
    "265******8@qq.com"
  ]
}

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

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

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

巨人網絡通訊聲明:本文標題《教你怎么用Python監控愉客行車程》,本文關鍵詞  教你,怎么,用,Python,監控,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《教你怎么用Python監控愉客行車程》相關的同類信息!
  • 本頁收集關于教你怎么用Python監控愉客行車程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品看片你懂得| 在线国产电影不卡| 在线观看三级视频欧美| 色综合久久天天| 欧美一区二区视频在线观看2020| 欧美一级国产精品| 日本欧美一区二区| 在线观看视频一区| 亚洲激情图片qvod| 日本丰满少妇一区二区三区| 亚洲色图在线播放| 欧美图区在线视频| 亚洲成人精品一区二区| 在线看日韩精品电影| 久久日韩精品一区二区五区| 国产一区91精品张津瑜| 欧美xxxx老人做受| 99re热这里只有精品视频| 亚洲欧美日韩国产手机在线| 成人免费看黄yyy456| 亚洲一区二区3| 日韩欧美国产午夜精品| 狠狠色综合日日| 中文字幕欧美区| 欧美另类z0zxhd电影| 国产乱码精品1区2区3区| 亚洲欧美一区二区三区久本道91| 欧美伊人精品成人久久综合97| 日韩专区欧美专区| 中文幕一区二区三区久久蜜桃| 91一区一区三区| 美美哒免费高清在线观看视频一区二区| 国产亚洲精品aa午夜观看| 91麻豆国产福利精品| 国产又粗又猛又爽又黄91精品| 一区二区三区91| 日韩欧美一区二区免费| 97久久精品人人做人人爽| 人人爽香蕉精品| 亚洲精品老司机| 久久久久久电影| 欧美美女喷水视频| 色综合 综合色| 大美女一区二区三区| 麻豆国产精品官网| 日韩电影免费在线看| 一区二区在线看| 一区二区中文字幕在线| 精品国一区二区三区| 色天天综合久久久久综合片| 免费成人结看片| 午夜成人在线视频| 亚洲老妇xxxxxx| 亚洲欧美中日韩| 中文字幕欧美国产| 亚洲国产精品黑人久久久| 日韩欧美综合在线| 911国产精品| 欧美日韩国产一二三| 99re这里都是精品| 不卡av免费在线观看| 成人午夜大片免费观看| 国产在线看一区| 午夜免费久久看| 日韩在线观看一区二区| 亚洲精品美腿丝袜| 亚洲综合999| 夜夜嗨av一区二区三区中文字幕| 一区二区三区中文字幕电影| 久久精品在线免费观看| 国产精品色在线观看| 国产精品久久久久久久久久久免费看| 欧美一区永久视频免费观看| 欧美久久婷婷综合色| 欧美日韩一卡二卡| 8x福利精品第一导航| jlzzjlzz国产精品久久| 韩国女主播成人在线观看| 极品销魂美女一区二区三区| 国产麻豆精品在线| 一本色道久久综合亚洲91| 欧美亚洲综合另类| 91麻豆精品国产91久久久久久久久| 欧美久久久一区| 精品成人在线观看| 亚洲精品日韩专区silk| 亚洲成av人影院在线观看网| 亚洲国产欧美日韩另类综合| 亚洲高清视频中文字幕| 日韩电影在线一区| 天天做天天摸天天爽国产一区| 亚洲精品五月天| 免费视频一区二区| 国产福利精品一区| 欧美性淫爽ww久久久久无| 制服丝袜日韩国产| 欧美韩国日本不卡| 51精品秘密在线观看| 国产亚洲精品7777| 亚洲免费观看高清在线观看| 亚洲午夜精品17c| 午夜精品一区二区三区电影天堂 | 国产电影一区二区三区| 91免费观看视频在线| 欧美视频日韩视频| 久久中文字幕电影| 一区二区三区中文字幕在线观看| 捆绑调教一区二区三区| 成人精品小蝌蚪| 欧美一级欧美三级| 亚洲欧洲精品天堂一级| 日本亚洲电影天堂| 99综合电影在线视频| 欧美精品一区在线观看| 日韩美女视频19| 美女国产一区二区| 欧美一卡2卡三卡4卡5免费| 久久精品在这里| 五月婷婷综合激情| 色8久久精品久久久久久蜜 | 久久一区二区三区四区| 视频一区视频二区在线观看| 一本到三区不卡视频| 国产精品色婷婷| 国产又粗又猛又爽又黄91精品| 欧美日韩高清在线播放| 午夜欧美视频在线观看| 欧美精品一二三区| 日韩综合小视频| 日韩欧美一区二区不卡| 青青草精品视频| 欧美精品xxxxbbbb| 午夜电影一区二区| 欧美mv日韩mv亚洲| 国产麻豆成人精品| 国产精品不卡在线观看| 91免费在线视频观看| 亚洲精品视频在线看| 在线观看亚洲一区| 三级久久三级久久久| 在线综合+亚洲+欧美中文字幕| 奇米精品一区二区三区在线观看 | 麻豆视频一区二区| 欧美精品一区二区在线观看| 激情综合色播激情啊| 久久精品亚洲国产奇米99| 国产成人精品在线看| 国产欧美日本一区视频| 99久久精品国产麻豆演员表| 国产精品电影一区二区| 大尺度一区二区| 亚洲靠逼com| 欧美一区二区三区在线电影| 激情欧美一区二区| 综合久久给合久久狠狠狠97色| 色婷婷一区二区三区四区| 亚洲成人先锋电影| 精品福利av导航| 色诱亚洲精品久久久久久| 日韩 欧美一区二区三区| 久久久久9999亚洲精品| 91麻豆福利精品推荐| 亚洲成人动漫精品| 久久久久久夜精品精品免费| 波多野结衣中文字幕一区| 一区二区激情视频| 久久久精品2019中文字幕之3| 国产91精品精华液一区二区三区| 一区二区三区免费看视频| 日韩精品一区二区三区在线观看 | 久久电影网站中文字幕| 久久久精品蜜桃| 在线观看91视频| 国产综合色精品一区二区三区| 亚洲视频一区在线| 日韩欧美www| 欧美日韩在线一区二区| 国产不卡视频一区二区三区| 亚洲电影在线免费观看| 久久综合九色综合欧美就去吻| 一本色道亚洲精品aⅴ| 精品一区二区日韩| 亚洲第一会所有码转帖| 自拍偷在线精品自拍偷无码专区| 欧美一区二区三区影视| 色先锋aa成人| 成人免费观看av| 久久99这里只有精品| 午夜日韩在线观看| 亚洲精品高清在线| 国产精品久久久久久久第一福利| 日韩欧美精品三级| 欧美少妇bbb| 一本大道久久a久久精二百| 国产福利精品导航| 久久国产婷婷国产香蕉| 日韩vs国产vs欧美| 亚洲aⅴ怡春院| 亚洲成人免费电影| 日韩影院免费视频|