日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

新浪体育——篮球足球的直播和战报爬取

發布時間:2024/3/13 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 新浪体育——篮球足球的直播和战报爬取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新浪體育——籃球足球的直播和戰報爬取

用到的包的介紹

以上是基于python3.6.5的新浪體育直播間籃球足球的直播和戰報爬取所引用到的全部內外部包,下面將會挑幾個與爬蟲息息相關的包進行介紹。

1.lxml

Python 標準庫中自帶了 xml 模塊,但是性能不夠好,而且缺乏一些人性化的 API,相比之下,第三方庫 lxml 是用 Cython 實現的,而且增加了很多實用的功能,可謂爬蟲處理網頁數據的一件利器。lxml 大部分功能都存在 lxml.etree`中。

xml 是一個樹形結構,lxml 使用etree._Element和 etree._ElementTree來分別代表樹中的節點和樹。etree._Element 是一個設計很精妙的結構,可以把他當做一個對象訪問當前節點自身的文本節點,可以把他當做一個數組,元素就是他的子節點,可以把它當做一個字典,從而遍歷他的屬性。

2.BeautifulSoup*

官方解釋:

Beautiful Soup提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數據,因為簡單,所以不需要多少代碼就可以寫出一個完整的應用程序。

Beautiful Soup自動將輸入文檔轉換為Unicode編碼,輸出文檔轉換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。

Beautiful Soup將復雜HTML文檔轉換成一個復雜的樹形結構,每個節點都是Python對象,所有對象可以歸納為4種:

  • Tag
  • NavigableString
  • BeautifulSoup
  • Comment

Tag: HTML中的一個個標簽

<title>The Dormouse's story</title> <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

HTML 標簽加上里面包括的內容就是 Tag,它有兩個重要的屬性,是 name 和 attrs。

單獨獲取某個屬性:

print (soup.p['class']) #['title'] print (soup.p.get_text())

BeautifulSoup : 表示的是一個文檔的全部內容

大部分時候,可以把它當作 Tag 對象,是一個特殊的 Tag,我們可以分別獲取它的類型

Comment: 一個特殊類型的NavigableString對象,其實輸出的內容仍然不包括注釋符號

3.Selenium*

一種自動化測試工具。它支持各種瀏覽器,包括 Chrome,Safari,Firefox 等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個 Selenium 的插件,那么便可以方便地實現Web界面的測試。換句話說 Selenium 支持這些瀏覽器驅動。

聲明瀏覽器對象:

chromedriver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' driver=webdriver.Chrome(chromedriver)

用selenium做自動化,有時候會遇到需要模擬鼠標操作才能進行的情況,比如單擊、雙擊、點擊鼠標右鍵、拖拽等等。而selenium給我們提供了一個類來處理這類事件——ActionChains

我在寫代碼的過程中參考了以下這篇博客:

https://blog.csdn.net/huilan_same/article/details/52305176

(selenium之 玩轉鼠標鍵盤操作(ActionChains))

click(on_element=None) ——單擊鼠標左鍵

click_and_hold(on_element=None) ——點擊鼠標左鍵,不松開

context_click(on_element=None) ——點擊鼠標右鍵

double_click(on_element=None) ——雙擊鼠標左鍵

drag_and_drop(source, target) ——拖拽到某個元素然后松開

drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某個坐標然后松開

key_down(value, element=None) ——按下某個鍵盤上的鍵

key_up(value, element=None) ——松開某個鍵

move_by_offset(xoffset, yoffset) ——鼠標從當前位置移動到某個坐標

move_to_element(to_element) ——鼠標移動到某個元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移動到距某個元素(左上角坐標)多少距離的位置

perform() ——執行鏈中的所有動作

release(on_element=None) ——在某個元素位置松開鼠標左鍵

send_keys(*keys_to_send) ——發送某個鍵到當前焦點的元素

send_keys_to_element(element, *keys_to_send) ——發送某個鍵到指定元素

Selenium還可以很方便地進行元素定位,可以參考以下博客:

https://blog.csdn.net/jojoy_tester/article/details/53453888

(selenium WebDriver定位元素學習總結

Selenium中元素定位共有八種

id

name

className

tagName

linkText

partialLinkText

xpath

cssSelector

詳細可以參考:https://blog.csdn.net/kaka1121/article/details/51850881

4.其他

re——正則表達式工具

xlrd、xlwt——python中操作exel表格的工具

json——將 JavaScript 對象中表示的一組數據轉換為字符串

新浪直播間網頁結構介紹

首先進入新浪體育的官網首頁,如下圖所示,在最上面一排有一個直播,里面有我們需要爬取的內容:

頁面整潔,層次分明的新浪體育直播間:

打開這個界面我們直接跳到了當前的日期,同時我們可以看到在網頁的右面有日期的選擇器,最早可以選至2012年1月1日,可供數據的時間跨度可以說是非常大了,對比騰訊直播間的2015年,加上該網頁構造較為簡單,這是我們選擇新浪體育直播間的主要原因。
建議使用Google的chrome瀏覽器打開該界面,因為chrome有非常豐富的開發者工具。現在讓我們來看看當前網頁的源碼和構造。

網頁中部的主要內容都在class為‘main clearfix’的一個大div標簽內。其主要內容分為三個部分:
  • 默認選擇全部直播的toptab板塊
  • 羅列了當天所有比賽的topcont板塊
  • 下方評論comment板塊
    打開其中我們需要的第二個內容板塊,再接著打開其中的比賽時間表的字段,依次打開main_data和cont_figure_list字段找到了我們需要的比賽的列表,其中次序為奇偶的比賽因為背景顏色不同class并不相同。

每一場比賽在一個div結構下,于是接下來我們可以看一下每個比賽條目下具體的代碼結構,并找出我們需要的部分和爬取方法了。

我們可以看到每個新聞目錄下對應著在網頁上橫著羅列開的6個項目,這6個項目所代表的的部分我在圖片中用紅框標識了出來,開始的時候我決定用最左邊圖片的超鏈接的類來分別我所需要的籃球或足球體育類別,但是進一步點開觀察每個比賽的直播和戰報數據的時候發現cba的這兩樣數據很亂,于是選擇了只用nba,而cba和nba最左邊的標識是一樣的,因此我選澤了直接判斷第三個項目的文字是否是NBA來決定是否進入該比賽爬取數據。

于是就非常方便容易地判斷出了該比賽的類別,但是我們注意到,電競比賽前面也用到了足球圖標,而且足球不只有世界杯歐洲杯等等而已,而是類別非常多,這就是為什么我們不能用圖標類別,也不能直接判斷類別標簽是否等于某個值來確定這個比賽是否是足球。

我們可以發現網頁中的圖片,隊名等幾乎都是超鏈接,(可以說是非常用心非常便利了),其中我標出來的兩部分,一個的超鏈接能夠讓我們進入這個比賽的細節,一個能夠直接跳到戰報界面,是我們需要用到的。
接下去是點擊比分進入的比賽細節:
我們可以看到最上面是整場比賽的比分和概況,接下里默認是戰報板塊,基本上是一個標題一個圖片配上一篇戰報的格式。內部分為‘戰報’,‘直播’,‘統計’,‘評論’四個板塊。該板塊由頭部( )中的四個超鏈接控制轉換tab。
直播界面對用戶也十分友好,兩邊能夠看到兩隊首發的全部數據情況,中間是按照時間順序排列的場上情況的直播,除了中場休息等這樣的信息以外大多是某隊的一個球員跟上某個動作。這些列表式的直播數據使我們需要的,下方還有球隊數據的對比等我們暫時不爬取。
我們可以看到一大堆的直播數據每個由一個列表項表示,在標簽屬性里已經注明了,這條表述歸屬的隊號和球員號,但是形式非常奇怪,有點像亂碼,再打開看一下它們的內部結構:

打開之后我們找到了我們可以爬取的隊名和直播文字。而戰報的文字當然直接在

標簽內了。

同時我也發現,當我們改變直播大廳的日期的時候,網址只有scheduledate參數改變,如2018年6月12號的,網址為

http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=all&scheduledate=2018-06-12

然后我改變最后的日期參數就可以跳轉到不同天的全部比賽,給我省了不少的時間。

以上就是新浪體育直播大廳結合源碼有關頁面的全部探索,于是就有了一個爬數據的基本思路。

代碼與爬數據的步驟

1.準備

首先定義出一個webdriver,調用這個webdriver來打開模仿瀏覽器的行為訪問數據。定義兩個全局變量,page_list和cangoin,分別表示爬取數據的標號以及是否能夠進入比賽細節頁面爬取戰報,我發現2014年7月以前的比賽只能進入單獨的戰報界面爬取戰報,因為單場比賽界面里面的戰報全部是空的,em。。可能是新浪后臺的問題。選取2012年6月這一天的url方便進行測試。
chromedriver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' driver=webdriver.Chrome(chromedriver) #driver=webdriver.Chrome() global page_list global cangoin cangoin=0 page_return=1 driver.implicitly_wait(2) url='http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=2012-06-06'

2.挑出所有為NBA的比賽

首先用driver進入我們需要爬取數據的網頁,定義出BeautifulSoup,然后按照剛才我找到的標識比賽類型的標簽一層層向下找,用到了soup.find('標簽名', 屬性=值) 和soup.find_all('標簽名', 屬性=值) 的方法,其中第二個方法返回的是一個列表。為了做測試,我把所有不是NBA的比賽都輸出在了控制臺里,如果發現了對應的NBA比賽,就獲取進入search方法進行戰報和直播的爬取,如果是里面不能爬取戰報的這類比賽,就要在該頁面點擊進入戰報超鏈接的單獨網頁,我為了這種情況寫了一個getzb的方法。所以isNBA的代碼如下:
def isNBA(url):driver.get(url)#driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')div_m = soup.find('div', class_='main_data')div_c = div_m.find('div', class_='cont_figure')div_l = div_c.find('div', class_='cont_figure_lis')div = div_l.find_all('div', recursive=False)for d in div:dd = d.find_all('div', recursive=False)[2]dp = dd.find('p')if dp.get_text()=='NBA':dzb = d.find_all('div', recursive=False)[3]dfl = dzb.find('div', class_='cont_figure_li03_m')span = dfl.find('span', class_='cRed')sa = span.find('a')print(sa['href'])url_into = sa['href']#print(21321)print(url_into)#print(213)search(url_into)print(cangoin)if not cangoin:p = dfl.find('p', recursive=False)a = p.find('a', text='戰報')print (a['href'])url_zb = a['href']getzb(url_zb)else:print ('不在')print (dp.get_text())

3.進入單場比賽search戰報直播

在進入單場比賽的界面后,默認就是戰報板塊,所以如果我設置的cangoin變量是1的話,就可以直接在當前界面爬取戰報了,這里我設置了一個getnews的方法將爬數據和存儲戰報的這一塊提出了search方法,接下來點擊直播超鏈接,這里找到這個元素,因為沒有id什么的,所以是直接復制那個元素的xpath找過去的,非常好用。點擊后試圖爬取直播卻發現僅有
  • 標簽,但這個標簽似乎是空的,里面所有的
  • 標簽都不見了,為此我debug了很久,具體見如下代碼中好長一段的注釋,最后發現直播里面這一大堆的數據是通過JavaScript動態加載過去的,于是我利用chrome開發者工具里的network找到了這個js文件,爬取后對它進行解碼。并且發現每個js網址的網址中只有id部分不同,而這個id可以從當前網址中截取到,于是就非常容易獲得這個js網站了,傳給dejson()函數就好。
  • search的代碼如下:
    def search(url_into):print(1)print(url_into)driver.get(url_into)driver.get(url_into)global page_returnglobal real_nameglobal real_timesoup = BeautifulSoup(driver.page_source, 'lxml')if cangoin:getnews(url_into)tab_zb = driver.find_element_by_xpath('/html/body/section[2]/div/div[1]/div[1]/a[4]').click()#'a[tab()="live"]'ActionChains(driver).click(tab_zb)#body = soup.find('body', ppccont='news')#print (body['class'])span = soup.find('span', class_='qq_spanoption')as_ = span.find('a', class_='qq_login_h')print (as_['href'])id = as_['href'][-10:]href='http://api.sports.sina.com.cn/pbp/?format=json&source=web&withhref=1&mid='+id+'&pid=&eid=0&dpc=1'de_json(href)#print (soup.prettify())a = soup.find('a', tab='live')print(a['class'])# div = soup.find('div', class_='ppc03_cast_cont', stype='auto')# print (div['scrolling'])# if(div!=None):# #div = soup.find('div', class_='ppc03_cast_tabs clearfix')# ol = div.find('ol', recursive=False)# print (ol['class'])# div_d = div.find('div', recursive=False)# print (div_d['class'])# guest = div_d.find('div', class_ ="ppc03_cast_select bselector01 fr")# select = guest.find('select')# option = select.find('option')# print (select.name)# #guest = div_d.find('a', tab = 'guest', recursive=True)# print (guest.get_text())# li = ol.find_all('li', recursive=False)# li = ol.find_all(re.compile("^li"))# divs = ol.find_all('div', class_ = 'ppc03_cast_score fr')# #print (divs[0].get_text())# #print (ol.descendants[0])# for l in li:# div1 = l.find('div', recursive=False)#, class_='ppc03_cast_time f1' c# print ('哈哈哈哈哈')# print (l['nid'],'hhhhhhhhhh')# real_name.append(div1.get_text())# print (div1)# print('hehehe')# print (real_name)# else:# return# page_return=1

    4.在單獨的戰報界面里爬取戰報getzb

    單獨的戰報界面只需要找到包含大段文字的部分就非常簡單爬取文字了,因為戰報的文字都非常規整地羅列在

    標簽內,然后定義一個文件夾路徑,這里用到了page_list來作為戰報的序號及文件名。用open()函數打開文件。

    def getzb(url):global page_listdriver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')db = soup.find('div', class_='blkContainerSblk')dbody = db.find('div', id='artibody')ps = dbody.find_all('p', recursive=False)page_list = page_list - 1write_path = 'D:\其他\戰報\\' + str(page_list-1) + '.txt'fo = open(write_path, "w", encoding='utf-8')for p in ps:pt = p.get_text()print(pt)fo.write(pt.replace(' ', ''))fo.write('\n')fo.close()

    5.解析json爬取直播

    剛才我找到的json網站打開其實是這樣的:

    在解碼json的網站把這段json解碼后看到了它真正的結構:

    這里寫圖片描述

    用json.load(json文件) 的方法可以解碼json,讓他變成右邊的樹狀結構,然后我們可以用索引的方式找到需要的信息,這里我保存了五條可能用到的信息,分別是:隊名,當前比賽時間,該條比賽描述,當前主隊得分,客隊得分。調用xlwt打開exel寫入信息。
    代碼如下:
    def de_json(url):driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')print (soup.prettify())pre = soup.find('pre')json_t = pre.get_text()json_string = json.loads(json_t)#print (json_string)workbook = xlwt.Workbook() # excle打開sheet1 = workbook.add_sheet('sheet1', cell_overwrite_ok=True)write_path = 'D:\其他\直播\\'+str(page_list-1)+'.xls'#page_list = page_list-1page_in_list = 0for i in json_string['result']['data']['pbp_msgs']:#ele = json_string[i]#print (i.key)print (i)print (json_string['result']['data']['pbp_msgs'][i]['team_name'])print (json_string['result']['data']['pbp_msgs'][i]['game_clock'])des = json_string['result']['data']['pbp_msgs'][i]['description']txt = re.sub(r'<.*?>','',des)#print(re.match(r'>[\u4e00-\u9fa5]*<', des))#if re.match(r'>[\u4e00-\u9fa5]*<', des):#txt = re.match(r'>[\u4e00-\u9fa5]*<', des)[1:-1] + re.match(r'a>[\u4e00-\u9fa5]*',des)[2:]#print('Yesyesyes')#else:#txt = desprint (txt)print (json_string['result']['data']['pbp_msgs'][i]['home_score'])print (json_string['result']['data']['pbp_msgs'][i]['visitor_score'])#print (i['game_clock'])#print ('\n')sheet1.write(page_in_list, 0, json_string['result']['data']['pbp_msgs'][i]['team_name'])sheet1.write(page_in_list, 1, json_string['result']['data']['pbp_msgs'][i]['game_clock'])sheet1.write(page_in_list, 2, txt)sheet1.write(page_in_list, 3, json_string['result']['data']['pbp_msgs'][i]['home_score'])sheet1.write(page_in_list, 4, json_string['result']['data']['pbp_msgs'][i]['visitor_score'])page_in_list = page_in_list + 1workbook.save(write_path)page_in_list = page_in_list + 1#json=soup.prettify()#json_string = json.load(json)#for i in [0:565]

    6.在單場比賽界面爬戰報getnews()

    與getzb()類似,代碼如下:
    def getnews(url):driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')divc = soup.find('div', class_='barticle_content')ps = divc.find_all('p', recursive=False)write_path = 'D:\其他\戰報\\'+str(page_list)+'.txt'fo = open(write_path, "w", encoding='utf-8')for p in ps:pt = p.get_text()print (pt)fo.write(pt.replace(' ', ''))fo.write('\n')fo.close()

    7.調整時間

    表示出所有的日期放入網址爬取不同天的數據。
    for i in years[0:]:if (i == '2012' ):for m in mouth[5:]: # 每次出問題記得更改if (m in ['01','03','05','07','08','10','12']):for n in days2[:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in ['02']):for n in days4:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for n in days1:if (m=='06' and n =='02'):continueprint(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (i=='2016'):for m in mouth[5:]: # 每次出問題記得更改if (m in ['01','03','05','07','08','10','12']):for n in days2[:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in ['02']):for n in days4:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for n in days1:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for m in mouth[0:]: # 每次出問題記得更改if (m in ['01','03','05','07','08','10','12']):if (i == '2014' and m=='08'):cangoin=1for n in days2:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in ['02']):for n in days3:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for n in days1:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)

    7.整體代碼

    最后不能忘了關閉driver
    # -*- coding:utf-8 -*- from lxml import etree from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By import time from distutils import log import os import sys from selenium.webdriver.common.action_chains import * import re import xlrd import xlwt import json import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')def setpl():global page_listpage_list = 4056global cangoindef isNBA(url):driver.get(url)#driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')div_m = soup.find('div', class_='main_data')div_c = div_m.find('div', class_='cont_figure')div_l = div_c.find('div', class_='cont_figure_lis')div = div_l.find_all('div', recursive=False)for d in div:dd = d.find_all('div', recursive=False)[2]dp = dd.find('p')if dp.get_text()=='NBA':dzb = d.find_all('div', recursive=False)[3]dfl = dzb.find('div', class_='cont_figure_li03_m')span = dfl.find('span', class_='cRed')sa = span.find('a')print(sa['href'])url_into = sa['href']#print(21321)print(url_into)#print(213)search(url_into)print(cangoin)if not cangoin:p = dfl.find('p', recursive=False)a = p.find('a', text='戰報')print (a['href'])url_zb = a['href']getzb(url_zb)else:print ('不在')print (dp.get_text())def getzb(url):global page_listdriver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')db = soup.find('div', class_='blkContainerSblk')dbody = db.find('div', id='artibody')ps = dbody.find_all('p', recursive=False)page_list = page_list - 1write_path = 'D:\其他\戰報\\' + str(page_list-1) + '.txt'fo = open(write_path, "w", encoding='utf-8')for p in ps:pt = p.get_text()print(pt)fo.write(pt.replace(' ', ''))fo.write('\n')fo.close()def search(url_into):print(1)print(url_into)driver.get(url_into)driver.get(url_into)global page_returnglobal real_nameglobal real_timesoup = BeautifulSoup(driver.page_source, 'lxml')if cangoin:getnews(url_into)tab_zb = driver.find_element_by_xpath('/html/body/section[2]/div/div[1]/div[1]/a[4]').click()#'a[tab()="live"]'ActionChains(driver).click(tab_zb)#body = soup.find('body', ppccont='news')#print (body['class'])span = soup.find('span', class_='qq_spanoption')as_ = span.find('a', class_='qq_login_h')print (as_['href'])id = as_['href'][-10:]href='http://api.sports.sina.com.cn/pbp/?format=json&source=web&withhref=1&mid='+id+'&pid=&eid=0&dpc=1'de_json(href)#print (soup.prettify())a = soup.find('a', tab='live')print(a['class'])# div = soup.find('div', class_='ppc03_cast_cont', stype='auto')# print (div['scrolling'])# if(div!=None):# #div = soup.find('div', class_='ppc03_cast_tabs clearfix')# ol = div.find('ol', recursive=False)# print (ol['class'])# div_d = div.find('div', recursive=False)# print (div_d['class'])# guest = div_d.find('div', class_ ="ppc03_cast_select bselector01 fr")# select = guest.find('select')# option = select.find('option')# print (select.name)# #guest = div_d.find('a', tab = 'guest', recursive=True)# print (guest.get_text())# li = ol.find_all('li', recursive=False)# li = ol.find_all(re.compile("^li"))# divs = ol.find_all('div', class_ = 'ppc03_cast_score fr')# #print (divs[0].get_text())# #print (ol.descendants[0])# for l in li:# div1 = l.find('div', recursive=False)#, class_='ppc03_cast_time f1' c# print ('哈哈哈哈哈')# print (l['nid'],'hhhhhhhhhh')# real_name.append(div1.get_text())# print (div1)# print('hehehe')# print (real_name)# else:# return# page_return=1def getnews(url):driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')divc = soup.find('div', class_='barticle_content')ps = divc.find_all('p', recursive=False)write_path = 'D:\其他\戰報\\'+str(page_list)+'.txt'fo = open(write_path, "w", encoding='utf-8')for p in ps:pt = p.get_text()print (pt)fo.write(pt.replace(' ', ''))fo.write('\n')fo.close()def de_json(url):driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')print (soup.prettify())pre = soup.find('pre')json_t = pre.get_text()json_string = json.loads(json_t)#print (json_string)workbook = xlwt.Workbook() # excle打開sheet1 = workbook.add_sheet('sheet1', cell_overwrite_ok=True)write_path = 'D:\其他\直播\\'+str(page_list-1)+'.xls'#page_list = page_list-1page_in_list = 0for i in json_string['result']['data']['pbp_msgs']:#ele = json_string[i]#print (i.key)print (i)print (json_string['result']['data']['pbp_msgs'][i]['team_name'])print (json_string['result']['data']['pbp_msgs'][i]['game_clock'])des = json_string['result']['data']['pbp_msgs'][i]['description']txt = re.sub(r'<.*?>','',des)#print(re.match(r'>[\u4e00-\u9fa5]*<', des))#if re.match(r'>[\u4e00-\u9fa5]*<', des):#txt = re.match(r'>[\u4e00-\u9fa5]*<', des)[1:-1] + re.match(r'a>[\u4e00-\u9fa5]*',des)[2:]#print('Yesyesyes')#else:#txt = desprint (txt)print (json_string['result']['data']['pbp_msgs'][i]['home_score'])print (json_string['result']['data']['pbp_msgs'][i]['visitor_score'])#print (i['game_clock'])#print ('\n')sheet1.write(page_in_list, 0, json_string['result']['data']['pbp_msgs'][i]['team_name'])sheet1.write(page_in_list, 1, json_string['result']['data']['pbp_msgs'][i]['game_clock'])sheet1.write(page_in_list, 2, txt)sheet1.write(page_in_list, 3, json_string['result']['data']['pbp_msgs'][i]['home_score'])sheet1.write(page_in_list, 4, json_string['result']['data']['pbp_msgs'][i]['visitor_score'])page_in_list = page_in_list + 1workbook.save(write_path)page_in_list = page_in_list + 1#json=soup.prettify()#json_string = json.load(json)#for i in [0:565]chromedriver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' driver=webdriver.Chrome(chromedriver) #driver=webdriver.Chrome() global page_list global cangoin cangoin=0 setpl() page_return=1 real_name=[] driver.implicitly_wait(2) url='http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=2012-06-06' #isNBA(url) print('url1 is done!') url2='http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=all&scheduledate=2014-02-10' #isNBA(url2) #search('http://sports.sina.com.cn/nba/live.html?id=2014101502') i='2012' m='06' n='06' #isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(1)years=['2012','2013','2014','2015','2016','2017'] mouth=['01','02','03','04','05','06','07','08','09','10','11','12'] days1=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30'] days2=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'] days3=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28'] days4=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29']''' i='2012' m='06' for k in range(28):n=days3[k]isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)''' for i in years[0:]:if (i == '2012' ):for m in mouth[5:]: # 每次出問題記得更改if (m in ['01','03','05','07','08','10','12']):for n in days2[:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in ['02']):for n in days4:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for n in days1:if (m=='06' and n =='02'):continueprint(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (i=='2016'):for m in mouth[5:]: # 每次出問題記得更改if (m in ['01','03','05','07','08','10','12']):for n in days2[:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in ['02']):for n in days4:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for n in days1:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for m in mouth[0:]: # 每次出問題記得更改if (m in ['01','03','05','07','08','10','12']):if (i == '2014' and m=='08'):cangoin=1for n in days2:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in ['02']):for n in days3:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)else:for n in days1:print(i + '-' + m + '-' + n)isNBA('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)driver.quit()

    足球代碼爬取

    由于前面介紹過的原因,足球種類太多沒法用圖標的名字或者單個名字進行過濾,所以采取了排除法,并且對爬取到的戰報進行了過濾,過濾掉了一些不適于做我們數據的過亂的戰報。比如查找strong標簽,因為帶有strong標簽的一篇戰報中有2場或多場比賽的報道,但基本過程跟籃球差不多。

    代碼如下:

    #encoding=utf-8 from lxml import etree from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By import time from distutils import log import os import sys from selenium.webdriver.common.action_chains import * import re import xlrd import xlwt import json import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') def search(url):print(1)print(url)driver.get(url)driver.get(url)global page_returnglobal real_nameglobal real_timesoup = BeautifulSoup(driver.page_source, 'lxml')div = soup.find('div', class_='cont_figure_lis')if(div!=None):div = div.find_all('div', recursive=False)page_return=1for i in div:name_judge=0 #name=[]real_name = []real_time=[]#print(real_name)index = 0url_set = []page_return = 1#找到合適的戰報等元素并進入if (i.find('div')):m = i('div')[2]# print(m.get_text())if (m.get_text().replace(" ", "").strip() == "" or '奧' in m.get_text() or '籃' in m.get_text()or '排' in m.get_text() or 'NBA' in m.get_text() or '網' in m.get_text()or 'U' in m.get_text() or '抽簽' in m.get_text() or '斯' in m.get_text()or '拳擊'in m.get_text() or 'F'in m.get_text() or 'BA' in m.get_text()or '棋' in m.get_text() or '牌' in m.get_text() or '排球' in m.get_text()or '乒乓'in m.get_text() or '羽' in m.get_text() or '游泳' in m.get_text() or '亞俱杯' in m.get_text() or '東京賽'in m.get_text()or '美傳奇巨星' in m.get_text() or '新秀賽' in m.get_text() or '冰壺' in m.get_text() or 'NCAA' in m.get_text()):continueelse:m=i.find_all('div',recursive=False)[1]for m_time in re.findall(r'[0-9]{2,2}',m.get_text()):real_time.append(m_time)n = i.find_all('div',recursive=False)[3]#print(len(n.find_all('div')))if(len(n.find_all('div',recursive=False))!=3):continue# 選中中間那一欄n1 = n.find_all('div',recursive=False)[1] # 選中中間有字的一欄if (n1.find('h4')):#print(50)n1_1 = n1.find('h4')if (n1_1.find_all('a',recursive=False)):for name_ in n1_1.find_all('a',recursive=False):real_name.append(name_.get_text())print(real_name)for name_judge_ in real_name:if ('籃' in name_judge_ or '排' in name_judge_ or '美傳奇巨星' in name_judge_ or '李娜' in name_judgeor ('長春亞泰' in name_judge_ and real_time[0] == '07' and real_time[1] == '09')or ('利物浦' in name_judge_ )or ('廣州恒大' in name_judge_ and real_time[0] == '11' and real_time[1] == '04')or ('拜仁' in name_judge_ and real_time[0] == '12' and real_time[1] == '16')):name_judge=1breakif(name_judge==1):continueif (n1.find('p')):n1_2 = n1.find('p')if (n1_2.find('a')):for n1_2_ in n1_2('a'):# print(10)#print(n1_2_.get_text())if (n1_2_.get_text() == "戰報" or n1_2_.get_text() == '實錄'):print(n1_2_.get_text())index = index + 1print(n1_2_['href'])url_set.append(n1_2_['href'])else:continueelse:continueelse:continueelse:continueif (index != 2):#print(index)continueelse:get_txt(url_set[0], name)if (page_return != 0):get_livetxt(url_set[1])# 方法體1:遍歷網頁依次找到鏈接地址# 方法體1結束# url = 'http://match.sports.sina.com.cn/livecast/1/iframe/live_log.html?168198'# url_new = 'http://sports.sina.com.cn/j/2012-08-17/21216193280.shtml'else:return def get_txt(url, name): # ,real_name)print(2)driver.get(url)global page_returnsoup = BeautifulSoup(driver.page_source, 'lxml')strong_list = 0txt_list = []test_time_count=0test_time=[]if(soup.find('span',id='pub_date')):mtime=soup.find('span',id='pub_date')test_time.append(re.findall(r'[0-9]{2,2}\u6708',mtime.get_text())[0][0:2]) #月test_time.append(re.findall(r'[0-9]{2,2}\u65e5',mtime.get_text())[0][0:2]) #日if(len(test_time)==0):if (soup.find('span', class_='article-a__time')):mtime = soup.find('span',class_='article-a__time')test_time.append(re.findall(r'[0-9]{2,2}\u6708', mtime.get_text())[0][0:2])test_time.append(re.findall(r'[0-9]{2,2}\u65e5', mtime.get_text())[0][0:2])print(test_time)if(len(test_time)==2):if(test_time[0]!=real_time[0]):page_return=0returnif(int(test_time[1])<int(real_time[1])-1 or int(test_time[1])>int(real_time[1])+1):page_return=0returnif (soup.find('div', class_='BSHARE_POP blkContainerSblkCon clearfix blkContainerSblkCon_14')):intern_deal('BSHARE_POP blkContainerSblkCon clearfix blkContainerSblkCon_14', soup, txt_list,name, strong_list)elif (soup.find('div', class_='blkContainerSblkCon')):intern_deal('blkContainerSblkCon', soup, txt_list, name, strong_list)elif (soup.find('div', class_='article-a__content')):intern_deal('article-a__content', soup, txt_list, name, strong_list)elif (soup.find('div',class_='layout-equal-height__item layout-fl layout-of-hidden layout-pt-c layout-wrap-b layout-pr-a layout-br-a')):intern_deal('layout-equal-height__item layout-fl layout-of-hidden layout-pt-c layout-wrap-b layout-pr-a layout-br-a',soup, txt_list, name, strong_list)else:page_return = 0 def intern_deal(class1,soup,txt_list,name,strong_list):print(3)global page_listtag=1#用來判斷是否已經到達進球信息的標簽global page_returnstart_list=0#定義有文字的p的開始位置previous_list=0#定義一個計數器,算出第一個分鐘起始位置txt1 = soup.find('div', class_=class1)# 如果有一個空P開頭那么就計算一下,從后面第二個P開始if txt1.find('p').get_text().replace(' ','').strip()=="":start_list=1print(100)if (txt1.find('p')):list_number=0# print(len(txt1('p')))if (len(txt1('p')) <= 4+start_list):page_return=0return#用來判斷是否是一篇合格的新聞即分鐘要出現在前4個p中newstag=0for news_tag in txt1.find_all('p',recursive=False)[0:5]:if(re.match(r'.*\u5206\u949f.*', news_tag.get_text()) != None):newstag=1if(newstag==0):page_return=0returnelse:for i in txt1.find_all('p',recursive=False)[1+start_list:4+start_list]:# print(3)if (i.find('strong')):#print(i('strong')[0].get_text())#print(len(i('strong')[0].get_text()))#print(i.get_text().strip())#print(i.get_text().strip()[0:len(i('strong')[0].get_text())])#print(3)if (i('strong')[0].get_text() ==i.get_text().strip()[0:len(i('strong')[0].get_text())] and notre.match(r'.*\u5206\u949f.*',i('strong')[0].get_text())):strong_list = strong_list + 1# print(strong_list)if (strong_list >= 2):page_return=0returnfor i in txt1.find_all('p')[1+start_list:-1]:# print(10000)# i = i.get_text().replace(" ", "").strip()# print(i[0:2])# print(i.attrs)#print(i.get_text)if(i.attrs!={}):# print(i.attrs)#print(i.get_text)continue#print()if (i.get_text().replace(" ", "").strip()[0:2] == "進球" or i.get_text().replace(" ", "").strip()[0:2] == '信息' ):tag=0continueif(len(i.get_text().replace(" ", "").strip())<=35 and tag==0):continueif ((re.match(r'.*[0-9]-[\u4e00-\u9fa5].*', i.get_text()) != None #一龥or re.match(r'.*[0-9]\'',i.get_text())!=None)and list_number>=3): # 如果匹配到了最后一個球員名單name.append(i.get_text().replace(" ", "").strip()[0:2]) # 加入名字列表breaklist_number=list_number+1 #分鐘if ((re.match(r'.*\u5206\u949f.*', i.get_text()) == None and '開場' not in i.get_text() and '開始' not in i.get_text()) and previous_list == 0): # 如果不match分鐘就跳過continueelse:final_txt = i.get_text()if (i.find('a')):len1 = len(i.find_all('a'))# print(len1)final_txt = final_txt.replace('[點擊觀看視頻]', '').replace('[點擊觀看進球視頻]', '')for m in range(len1):a_txt = i('a')[m].get_text()# print(a_txt)final_txt = final_txt.replace(a_txt, '')else:print()if (i.find('script')):len1 = len(i.find_all('script'))# print(len1)for m in range(len1):a_txt = i('script')[m].get_text()# print(a_txt)final_txt = final_txt.replace(a_txt, '')else:print()if (i.find('style')):len1 = len(i.find_all('style'))# print(len1)for m in range(len1):a_txt = i('style')[m].get_text()# print(a_txt)final_txt = final_txt.replace(a_txt, '')if (i.find('span')):len1 = len(i.find_all('span'))# print(len1)for m in range(len1):a_txt = i('span')[m].get_text()# print(a_txt)final_txt = final_txt.replace(a_txt, '')else:print()# print(3)final_txt.replace(" ", "").replace('[','').replace(']','').replace(':','').replace('【','').replace('】','').strip()final_txt = final_txt.replace(" ", "").replace('[', '').replace(']', '').replace(':', '').replace('【', '').replace('】', '').replace('(', '').replace(')', '').replace('(', '').replace(')','').strip()if (len(final_txt) >= 10):txt_list.append(final_txt) # 將鏈接內的字符刪除previous_list = previous_list + 1# if (name[1] not in real_name): # 判斷名字是否在其中#如果一個網頁最后一個P元素為空,那么就這么做..爬倒數第二個zuihounumber=-1maxxunhuan=10while(zuihounumber<0 and maxxunhuan>0):if (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])', txt1('p')[zuihounumber].get_text().replace(" ", "").strip()) and not txt1('p')[zuihounumber].find('a')):txt_list.append( (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])', txt1('p')[zuihounumber].get_text().replace(" ", "").strip()))[0])zuihounumber=1else:zuihounumber=zuihounumber-1maxxunhuan=maxxunhuan-1# if (# re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])', txt1('p')[-1].get_text().replace(" ", "").strip())):# txt_list.append(# (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])',# txt1('p')[-1].get_text().replace(" ", "").strip()))[# 0])# elif (# re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])', txt1('p')[-2].get_text().replace(" ", "").strip())):# txt_list.append(# (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])',# txt1('p')[-2].get_text().replace(" ", "").strip()))[# 0])# elif (# re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])', txt1('p')[-3].get_text().replace(" ", "").strip())):# txt_list.append(# (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])',# txt1('p')[-3].get_text().replace(" ", "").strip()))[# 0])# elif (# re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])', txt1('p')[-4].get_text().replace(" ", "").strip())):# txt_list.append(# (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])',# txt1('p')[-4].get_text().replace(" ", "").strip()))[# 0])# else:# txt_list.append(# (re.findall(r'([\u4e00-\u9fa5].*[\u4e00-\u9fa5])',# txt1('p')[-5].get_text().replace(" ", "").strip()))[# 0])# print(real_name[0])# print(real_name[1])print(txt_list)#print(name[0],real_name)if(len(name)==0):page_return=0returnif((name[0] not in real_name[0] and name[0] not in real_name[1])and name[0]!='女王' and name[0]!='托' and name[0]!='皇馬' and name[0]!='巴薩'):page_return=0else:# print(1000)write_path = '/Users/hejie/Desktop/課外學習/數據集/新浪直播數據/戰報/'+str(page_list)+'.txt'#print(write_path)# print(1000)fo = open(write_path, "w",encoding='utf-8')# print(1000)# print(6)# print(txt)for i in txt_list:# print(1000)# print(type(i.strip()))print(i)fo.write(i.replace(' ', ''))fo.write('\n')fo.close()# print(txt_list)#瀏覽器配置else:page_return=0return def get_livetxt(url):print(4)print(url)number = re.findall(r'\b[0-9][0-9]{4,7}\b',url)[0]#print(number)url_='http://api.sports.sina.com.cn/?p=live&s=livecast&a=livecastlog&id='+number+'&dpc=1'#真正的要訪問的urlprint(url_)msg=[]total_time=[]score=[]driver.get(url_)soup = BeautifulSoup(driver.page_source, 'lxml')#如果得到的url是一個網站if (soup.find('pre')==None):print("選擇1")msg,total_time,score=get_txt_direct(url)#如果得到的url是直接一個數據庫文件else:print('選擇2')msg,total_time,score=get_txt_indirect(url_)global page_listpage_in_list = 0judge=0#定義的是上半場最終訪問時間workbook=xlwt.Workbook()#excle打開sheet1=workbook.add_sheet('sheet1',cell_overwrite_ok=True)#txt=soup.find("tbody")#print(txt)list=0#a=['上' ,'下','完']print(1000)write_path = '/Users/hejie/Desktop/課外學習/數據集/新浪直播數據/實錄/'+str(page_list)+'.xls'print(write_path)# for i in txt('tr'):# if(i('td')[2]):# if(i('td')[2].get_text()[0] not in a ):# continue# elif(i('td')[2].get_text()[0]=='完' and list<2):# #print(i('td'))# sheet1.write(page_in_list, 0, i('td')[1].get_text().strip())# sheet1.write(page_in_list, 1, "完賽")# sheet1.write(page_in_list, 2, i('td')[3].get_text().strip())# page_in_list=page_in_list+1# list=list+1# #print(list)# elif(i('td')[2].get_text()[0]=='上'):#記得將下半場的時間加上上半場的時間# sheet1.write(page_in_list, 0, i('td')[1].get_text().strip())# sheet1.write(page_in_list, 1, re.findall(r'[0-9]+',i('td')[2].get_text())[0])# sheet1.write(page_in_list, 2, i('td')[3].get_text().strip())# judge=re.findall(r'[0-9]+',i('td')[2].get_text())# page_in_list = page_in_list + 1# else:# sheet1.write(page_in_list, 0, i('td')[1].get_text().strip())# sheet1.write(page_in_list, 1, str(int(re.findall(r'[0-9]+', i('td')[2].get_text())[0])+judge))# sheet1.write(page_in_list, 2, i('td')[3].get_text().strip())# page_in_list = page_in_list + 1# print(i('td'))# print(3)for i in range(len(msg)):sheet1.write(page_in_list, 0, msg[i])sheet1.write(page_in_list, 1, total_time[i])sheet1.write(page_in_list, 2, score[i])page_in_list=page_in_list+1workbook.save(write_path)#存放excle表page_list=page_list+1##全局變量在外面賦值 def get_txt_indirect(url):#有些網站分鐘沒有直接顯示出來msg=[]total_time=[]score=[]driver.get(url)soup = BeautifulSoup(driver.page_source, 'lxml')# 定義一個文本,其是直播數據txt = soup.find('pre').get_text()txt = re.findall(r'\[.*\]', txt)txt = txt[0]print(txt)jo = json.loads(txt)shang_end=0 #end標志標志比賽的結束最多有兩個# json_number=0for i in jo:if ('st' in i and i['st']!=None ):if ('q' in i ):if(i['q']==1):if(':' in i['m']):continuemsg.append(i['m'].replace('.',''))total_time.append((i['st']//60)+1)score.append(i['s']['s1']+'-'+i['s']['s2'])# print(i['m'])# #print('上半場')# print((i['st']//60)+1)# print(i['s']['s1']+'-'+i['s']['s2'])shang_end=(i['st']//60)+1#標記上半場的結束時間elif(i['q']==2):if (':' in i['m']):continuemsg.append(i['m'].replace('.',''))total_time.append((i['st'] // 60) + 1+shang_end)score.append(i['s']['s1'] + '-' + i['s']['s2'])# print(i['m'])# #print('下半場')# print((i['st'] // 60) + 1+shang_end)# print(i['s']['s1'] + '-' + i['s']['s2'])elif(i['q']==5):if (':' in i['m']):continueif (len(re.findall(r'[0-9]-[0-9]',i['m']))==1):msg.append(i['m'].replace('.',''))total_time.append('完賽')score.append(i['s']['s1'] + '-' + i['s']['s2'])# print(i['m'])# print('完賽')# print(i['s']['s1'] + '-' + i['s']['s2'])# print(1000)breakelse:continue#print(re.findall(r'[0-9]-[0-9]',i['m']))else:continueelse:continueelse:continue#print(1000)return msg,total_time,score #有些網站分鐘直接顯示出來了 def get_txt_direct(url):msg = []total_time = []score = []global page_listpage_in_list_=0driver.get(url)judge = 0# workbook = xlwt.Workbook()# sheet1 = workbook.add_sheet('sheet1', cell_overwrite_ok=True)soup = BeautifulSoup(driver.page_source, 'lxml')txt = soup.find("tbody")# print(3)# print(txt)list = 0a = ['上', '下', '完']start_time=0#記錄上半場時間# write_path = "E:直播數據\新郎直播數據\實錄\\" + str(page_list) + ".xls"# workbook.save(write_path) # page_list = page_list + 1 #for i in txt('tr')[::-1]:#print(i('th')[0])if (i.find('th')):#print(1000)#print(type(i('th')[0].get_text()))if (re.findall(r'[0-9]+',i('th')[0].get_text())):#print(1000)#print(page_in_list_, 0, i('td')[0].get_text().strip())if (':' in i('td')[0].get_text()):continuemsg.append(i('td')[0].get_text().replace('.','').strip())if(len(re.findall(r'[0-9]+',i('th')[0].get_text()))==1):#如果時間的長度為1,就調用一個就行 ,否則兩者相加total_time.append(re.findall(r'[0-9]+',i('th')[0].get_text())[0])# print(page_in_list_, 1, re.findall(r'[0-9]+',i('th')[0].get_text())[0])start_time=re.findall(r'[0-9]+',i('th')[0].get_text())[0]else:time_=0for time_1 in re.findall(r'[0-9]+',i('th')[0].get_text()):time_=time_+int(time_1)total_time.append(time_)# print(page_in_list_, 1, time_)start_time = re.findall(r'[0-9]+', i('th')[0].get_text())[0]score.append(i('td')[1].get_text().strip())#print(page_in_list_, 2, i('td')[1].get_text().strip())page_in_list_ = page_in_list_ + 1elif (i('th')[0].get_text().replace(' ','').strip()=="" and int(start_time)>80):if(re.findall(r'[0-9]-[0-9]',i('td')[0].get_text())):# print(i('td'))if (':' in i('td')[0].get_text()):continuemsg.append(i('td')[0].get_text().replace('.','').strip())total_time.append("完賽")score.append(i('td')[1].get_text().strip())# print(page_in_list_, 0, i('td')[0].get_text().strip())# print(page_in_list_, 1, "完賽")# print(page_in_list_, 2, i('td')[1].get_text().strip())page_in_list_ = page_in_list_ + 1list = list + 1breakelse:continue# print(list)else:continueelse:continue#print(3)return msg,total_time,score service_args=[] #設置驅動器的瀏覽器 driver=webdriver.Chrome( ) page_list=4564 page_return=1 real_name=[] #獲取網頁地址 #方法體2:切換到新窗口中,點擊新窗口中的按鈕 #driver.switch_to.window(driver.window_handles[1]) ''' link=element.get_attribute('href')#獲取到鏈接地址,然后進行跳轉 driver.navigate().to(link) driver.implicitly_wait(10)#等待10s,有可能鏈接還不能找到 element.click()模擬元素點擊 ''' driver.implicitly_wait(2) #等待10s以便頁面加載完全 #element=driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/a[2]")#找到直播數據按鈕 #element.click() #driver.implicitly_wait(2)#等待10s以便頁面加載完全#抓取直播里面的文字信息#element=driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/a[6]")#找到戰報元素 #print (5)#一個斷點低級提示 #element.click() #點擊戰報元素 #mse=get_txt(url_new)#a=['1','2','3','4'] #soup=BeautifulSoup(driver.page_source, 'lxml') #txt1=soup.find('div',class_='article-a__content') #for i in txt1('p')[:-1]:# if('strong' in i.prettify())# #print(len(i('strong')[0].get_text()))# print(i('strong')[0].get_:text()[-3])# #print("dasdsadsa")# if(i('strong')[0].get_text()[-3] in a):# #print(321321)# continue# print(i.get_text().replace(" ","").strip())#print(i) #fo.close() years=['2012','2013','2014','2015','2016','2017'] mouth=['01','02','03','04','05','06','07','08','09','10','11','12'] days1=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30'] days2=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'] days3=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28'] days4=['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29'] try:for i in years[0:]:if(i== '2012' ):for m in mouth[0:]:#每次出問題記得更改if(m in ['06']):for n in days1[16:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate='+i+'-'+m+'-'+n)elif (m in [ '09']):for n in days1[25:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif (m in [ '11']):for n in days1[28:]:print(i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)elif(m in ['07']):for n in days2[22:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['08']):for n in days2[21:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['10']):for n in days2[30:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for n in days2[30:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif( i == '2016'):for m in mouth[11:]:if (m in [ '11']):for n in days1[23:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['09']):for n in days1[13:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in [ '06']):for n in days1[18:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['04']):for n in days1[8:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['02']):for n in days4[2:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['05']):for n in days2[4:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['07']):for n in days2[1:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['12']):for n in days2[9:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for n in days2:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(i=='2013'):for m in mouth[9:]:if (m in [ '11']):for n in days1:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['09']):for n in days1[28:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['04']):for n in days1[26:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['06']):for n in days1[1:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['02']):for n in days3[15:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['01']):for n in days2:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['03']):for n in days2[30:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['10']):for n in days2[23:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['07']):for n in days2[2:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for n in days2:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(i=='2014'):for m in mouth[11:]:if (m in ['04', '09']):for n in days1:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['12']):for n in days2[13:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['11']):for n in days1[26:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in [ '06']):for n in days1[28:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['02']):for n in days3[24:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['07']):for n in days2[12:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['08']):for n in days2[15:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['10']):for n in days2[23:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for n in days2:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(i=='2015'):for m in mouth[8:]:if (m in [ '06', '11']):for n in days1:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['09']):for n in days1[23:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['04']):for n in days1[14:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['02']):for n in days3:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['01']):for n in days2[22:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['03']):for n in days2[29:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['05']):for n in days2[2:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['07']):for n in days2[26:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for n in days2:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for m in mouth[11:]:if (m in [ '06', '09']):for n in days1:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in [ '11']):for n in days1[29:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['04']):for n in days1[26:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['02']):for n in days3[19:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['01']):for n in days2[11:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['03']):for n in days2[23:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['05']):for n in days2[13:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif (m in ['07']):for n in days2[18:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['08']):for n in days2[27:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)elif(m in ['10']):for n in days2[27:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)else:for n in days2[16:]:search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=' + i + '-' + m + '-' + n)print(i + '-' + m + '-' + n)#search('http://match.sports.sina.com.cn/index.html#type=schedule&matchtype=all&filtertype=time&livetype=ed&scheduledate=2017')driver.quit() except Exception as e:print(e) else:print("error")

    總結

    以上是生活随笔為你收集整理的新浪体育——篮球足球的直播和战报爬取的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久久久免费观看 | 黄色大全在线观看 | 欧洲亚洲激情 | 国产精品网站 | 国产福利资源 | 欧美一二区视频 | 久久成人欧美 | 狠狠干狠狠色 | 免费在线色电影 | 精品久久久久国产免费第一页 | 久久乐九色婷婷综合色狠狠182 | 午夜婷婷在线播放 | www最近高清中文国语在线观看 | 国产成人在线看 | 欧美亚洲国产日韩 | 人人涩| 久久草在线精品 | 国内精品视频久久 | 在线精品在线 | 国产黄色免费在线观看 | 天天躁日日躁狠狠躁av中文 | 国产专区精品视频 | 天堂在线一区二区 | 中文字幕在线免费看 | 日韩免费播放 | 天天曰天天干 | 亚洲国产欧洲综合997久久, | 在线观看黄色 | 丁香激情综合久久伊人久久 | 欧美极品xxxxx | 青青河边草免费 | 久久午夜色播影院免费高清 | 手机av片| 美女久久一区 | 亚洲综合在线五月天 | 久久久国产电影 | 国模吧一区 | 成人黄色国产 | 久久少妇| 热久久免费视频精品 | 一区二区 不卡 | 免费看的黄色的网站 | 日韩综合精品 | 亚洲视频高清 | 夜夜夜| 美女视频国产 | 色wwww| 7799av| 在线色视频小说 | 五月花婷婷 | 日日摸日日 | 免费看麻豆 | 免费视频久久久久 | 在线观看精品视频 | 亚洲 欧美变态 另类 综合 | 91精品伦理 | 黄色影院在线播放 | 国产精品人成电影在线观看 | 黄色片毛片 | 亚洲精品影视在线观看 | 成人一级片在线观看 | 日韩视频精品在线 | 欧美在线你懂的 | 操夜夜操 | 99视频免费播放 | 少妇高潮流白浆在线观看 | 亚洲成人免费在线 | 成人精品999 | 色综合色综合久久综合频道88 | 五月婷婷开心中文字幕 | 色成人亚洲 | 国产色视频 | 黄色综合| 国产精品久久久久久一区二区 | 国产在线观看a | 91视频com| 精品亚洲一区二区三区 | 久久99精品国产91久久来源 | 国产91精品一区二区麻豆网站 | 玖玖玖在线观看 | 精品美女久久久久久免费 | 久久精品999| 亚洲视频第一页 | 一本—道久久a久久精品蜜桃 | 中文字幕亚洲在线观看 | 中文字幕日韩免费视频 | www.五月婷| av在线免费观看不卡 | 日韩夜夜爽 | 国产清纯在线 | 久久综合婷婷国产二区高清 | av一级免费 | 午夜久久久精品 | 字幕网av | 日日爽天天爽 | 国精产品999国精产品视频 | 久久久久久久久久久影院 | 在线观看黄色免费视频 | 久草在线观看视频免费 | 黄色免费观看网址 | 夜夜操网| 色橹橹欧美在线观看视频高清 | 91综合色| 人人看人人做人人澡 | 亚洲视频精品 | 自拍超碰在线 | 97激情影院| 狠狠综合网 | 日韩在线播放欧美字幕 | 成人黄色大片 | 日韩电影在线视频 | h动漫中文字幕 | 99视频精品 | 国产视频不卡 | 亚洲在线日韩 | 久久精品站 | 久久欧洲视频 | 国产免费观看久久 | 国产免费又爽又刺激在线观看 | 99热最新地址 | 正在播放国产一区 | 免费观看国产成人 | 麻豆成人精品 | av中文字幕在线电影 | 免费国产在线精品 | 深夜免费福利在线 | www中文在线 | 国产精品日韩久久久久 | 久久精品久久久精品美女 | 欧美ⅹxxxxxx| 久久国产品 | 国精产品满18岁在线 | 国产无套一区二区三区久久 | 久久国产精品视频免费看 | 亚洲欧洲精品一区二区精品久久久 | 开心色插| 毛片网在线| 久久成人国产精品入口 | 亚洲国产三级在线 | 黄色免费观看网址 | 中文字幕专区高清在线观看 | 韩国在线视频一区 | 日本中文在线播放 | 国产手机在线观看视频 | 岛国av在线| 免费黄在线看 | 中文在线免费观看 | 日韩在线观看视频在线 | 五月婷婷导航 | 日产乱码一二三区别免费 | 天天操天天操 | 91精品国产成人www | 国产资源网 | 精品夜夜嗨av一区二区三区 | 国产精品免费观看国产网曝瓜 | 国产视频精品久久 | 天天天天天操 | 久久久免费av | 国产亚洲精品美女 | 欧美日韩不卡一区 | 婷婷丁香在线视频 | 亚洲精品在 | 久久精品看 | 中文av资源站 | 国产女人40精品一区毛片视频 | 国产精品自拍在线 | 亚洲精品乱码久久久久久按摩 | 国产中文字幕在线看 | 玖草在线观看 | 中文字幕精品一区久久久久 | 久久综合狠狠综合 | 97超碰人 | 91重口视频| 伊人导航| 精品产品国产在线不卡 | 91看片麻豆 | 国产成人久 | 国产精品欧美久久 | 五月开心婷婷网 | 天天射天天干天天爽 | 黄色av免费电影 | 欧美性色黄 | 在线看av的网址 | 激情视频网页 | 成人av一区二区兰花在线播放 | 午夜国产在线观看 | 综合网婷婷 | 婷婷av综合 | 狠狠撸电影 | 69久久久久久久 | 在线视频 91| 亚洲精品一区二区网址 | 精品一区二区精品 | 91超级碰碰 | 成人免费视频网址 | 探花视频在线观看免费 | 色橹橹欧美在线观看视频高清 | 国产97在线播放 | 久久这里只有精品视频99 | 热99在线| 久久在线播放 | 国产成人av电影在线观看 | 九九热精品在线 | 国产精品嫩草影院9 | 在线视频一区观看 | 久久久久国 | 日韩动态视频 | 精品一区精品二区 | 成人资源网 | 色人久久| 91高清免费在线观看 | 在线观看国产 | av资源网在线播放 | 亚洲精品国产精品国 | 九九电影在线 | a级国产毛片 | 欧美一区在线观看视频 | 狠狠综合久久 | 成年人视频在线免费 | 不卡视频在线看 | 三级a毛片| 国产日韩欧美精品在线观看 | 麻豆国产露脸在线观看 | 中文字幕第一 | 欧美 日韩 国产 成人 在线 | 91九色在线视频 | 激情久久一区二区三区 | 人人草天天草 | 日韩欧美高清不卡 | 国产精品涩涩屋www在线观看 | 久久电影中文字幕视频 | 99热国产精品 | 精品免费在线视频 | 亚洲欧洲精品一区 | 久久国产精品99久久久久久丝袜 | av中文字幕网| 人人揉人人揉人人揉人人揉97 | 亚洲在线成人精品 | 91视频 - v11av | 国产不卡在线观看视频 | www五月天 | 亚洲激情视频在线 | 欧洲一区二区三区精品 | 在线播放91| 中文字幕高清在线 | 五月开心激情 | 国产一区欧美日韩 | 综合网伊人| 色.www | 亚洲电影在线看 | 九九热免费观看 | 丁香电影小说免费视频观看 | 探花系列在线 | 国产精品99久久久久久久久 | 播五月综合 | 国产精品一区二区三区视频免费 | 午夜av在线播放 | 国产淫a | 在线观看视频免费播放 | 国产在线观看91 | 免费观看性生活大片 | 日韩成人不卡 | 国产精品日韩在线观看 | 日本亚洲国产 | 精品国产一区二区三区在线 | 日韩黄色一区 | 久久视频在线视频 | 欧美 亚洲 另类 激情 另类 | aaa日本高清在线播放免费观看 | 97网站| 久久人人爽人人爽人人片av软件 | 欧美一级免费在线 | av在线之家电影网站 | 精品av在线播放 | 日韩素人在线观看 | 日韩电影在线一区 | 精品国偷自产在线 | 伊人黄色网 | 国产黄色观看 | av再线观看| 日韩在线观看视频中文字幕 | 精品视频在线免费观看 | 狠狠88综合久久久久综合网 | 亚洲欧美在线视频免费 | www在线免费观看 | 日韩一区二区三区在线观看 | 免费看黄色小说的网站 | 福利视频入口 | 国内外成人在线视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 天天干婷婷| 在线欧美中文字幕 | 日本中文字幕在线播放 | 最新精品视频在线 | 国产精品无| 国产经典 欧美精品 | 欧美日韩性 | 98福利在线 | 精品久久久久久久 | 亚洲视频大全 | 久久天天躁狠狠躁亚洲综合公司 | 韩国一区二区在线观看 | 久久人人爽人人爽人人片av软件 | 在线观看 国产 | 一区中文字幕在线观看 | 麻豆小视频在线观看 | 天天草天天草 | 91中文字幕永久在线 | 国产精品国产三级国产不产一地 | 在线观看福利网站 | 91夜夜夜 | 亚洲专区在线 | 欧美日产在线观看 | 日日摸日日添日日躁av | 日韩av不卡在线播放 | 免费观看性生交 | 国产精品久久一区二区三区不卡 | 在线激情av电影 | 在线观看播放av | 国产群p| 99精品在线免费视频 | 日本成人中文字幕在线观看 | 国产97视频在线 | 亚洲综合最新在线 | 日韩视频精品在线 | 久久久观看| 黄色一及电影 | 日本爱爱免费视频 | 这里只有精彩视频 | 亚洲黄色成人 | 天天色天天操综合 | 欧美日韩免费在线视频 | 91精品爽啪蜜夜国产在线播放 | 狠狠狠狠狠狠 | 国产91免费在线观看 | 国产精品2区 | 中日韩三级视频 | 国产一级精品在线观看 | 激情五月在线观看 | 亚洲激情 欧美激情 | 激情av在线播放 | 福利视频第一页 | 天天干天天操天天操 | 色婷婷丁香 | 天海翼一区二区三区免费 | av黄色在线播放 | 国产91精品一区二区绿帽 | 国产视频1区2区 | 丁香久久婷婷 | 免费观看av | 亚洲日本韩国一区二区 | 亚洲国产小视频在线观看 | 免费在线观看午夜视频 | 国产一级精品绿帽视频 | 91成人精品 | 超碰久热 | 热久久99这里有精品 | 激情欧美在线观看 | 91成人天堂久久成人 | 97超碰人人澡 | 日韩av在线网站 | 国产精品系列在线 | 麻豆免费视频观看 | 国产精品一区二区三区在线看 | 欧美激情视频在线观看免费 | 99久久久久免费精品国产 | 少妇bbw揉bbb欧美 | 高清免费在线视频 | 四虎影视成人精品 | 亚洲激情网站免费观看 | 夜夜夜 | 国产高清视频在线播放一区 | av大全在线播放 | 久久久综合香蕉尹人综合网 | 国产精品视频大全 | av免费高清观看 | 亚洲精品视频在线观看免费视频 | 在线观看一级 | 一区二区 不卡 | 黄色电影网站在线观看 | 国产二级视频 | 亚洲电影第一页av | 特级黄色视频毛片 | 99re6热在线精品视频 | 亚洲欧美日韩在线一区二区 | 日韩久久午夜一级啪啪 | 日韩.com| av中文字幕网站 | 911在线| 日韩一区二区三免费高清在线观看 | 亚洲精品1234区 | www黄| 91免费黄视频| 九九免费在线观看视频 | 国产日韩视频在线观看 | 99视频久久| 五月天亚洲精品 | 午夜精品电影一区二区在线 | 午夜精品一二三区 | free,性欧美 九九交易行官网 | 9在线观看免费高清完整版在线观看明 | 黄色毛片一级 | 久久精品一区 | 97精品视频在线播放 | 日韩视频专区 | 99久久精品免费看国产四区 | 99精品欧美一区二区 | 欧美精品久久久久性色 | 国产黄色精品 | 色婷婷狠狠操 | 欧美ⅹxxxxxx| 少妇bbb搡bbbb搡bbbb | 成人试看120秒| 91中文字幕在线播放 | 91在线公开视频 | 国产精品第一视频 | 91在线九色| 中文字幕一区二区三区在线视频 | 成人午夜网址 | 97超碰在线久草超碰在线观看 | 欧美日韩色婷婷 | 中文字幕日韩精品有码视频 | 亚洲涩涩一区 | 91爱爱免费观看 | 97超碰精品 | 成片人卡1卡2卡3手机免费看 | 在线播放视频一区 | 少妇bbbb揉bbbb日本 | 久草在线最新 | 亚洲免费观看在线视频 | 久久国精品 | 高清精品在线 | 国产成人亚洲在线观看 | 亚洲精品久久久蜜桃 | 人人爽人人搞 | 久久精品国产成人精品 | 国内精品久久久久影院一蜜桃 | 欧美精品久久久久久久久久久 | 欧美日韩裸体免费视频 | av播放在线| 天天色天天爱天天射综合 | 四虎成人精品永久免费av | 波多野结衣精品在线 | 久久黄色免费观看 | 九九影视理伦片 | 亚洲情影院 | 日韩视频免费观看高清 | 96精品在线| 成人黄色电影在线播放 | 四虎在线免费观看 | 麻豆91视频 | 欧美国产不卡 | 精品国产伦一区二区三区 | 国产成人不卡 | 国产精品1区2区在线观看 | 视频99爱| 国产精品久久久久久婷婷天堂 | 一区二区三区在线播放 | 色综合综合 | 亚洲第一中文网 | 亚洲午夜不卡 | 亚洲精品在线观看中文字幕 | 国产成人黄色 | 毛片基地黄久久久久久天堂 | 欧美日韩国产在线精品 | 欧美一级免费黄色片 | 日韩影视精品 | 亚洲性xxxx | 超碰99在线| www.啪啪.com | 国产一级免费播放 | 精品国产理论片 | 亚洲黄色三级 | 日韩毛片在线免费观看 | 国产成人精品av在线 | 欧美男女爱爱视频 | 69亚洲精品 | 亚洲午夜激情网 | 国产在线观看国语版免费 | 在线看的av网站 | 国产黄色精品网站 | 中文字幕在线观看免费高清电影 | 99久久99视频只有精品 | 在线看国产一区 | 久久99日韩 | 国产专区精品视频 | 99爱在线 | 一区中文字幕 | 国产精品美女久久久久久久久 | 国产精品久久久一区二区三区网站 | 日韩动漫免费观看高清完整版在线观看 | 中文av网 | 在线观看国产 | 免费a级观看 | 色综合久久久久 | 国产精品人成电影在线观看 | 91污在线观看 | 久久久久久久影院 | 天天操天天干天天玩 | 久草在线久| 国产一二三在线视频 | www国产亚洲精品久久麻豆 | 欧美九九视频 | 国产一区在线视频播放 | 波多野结衣一区三区 | 天天草天天色 | 天天操夜夜拍 | 免费色视频网址 | 欧美日韩精品二区第二页 | 免费人成在线观看网站 | 五月av在线| av在线免费在线 | 99精品在线视频播放 | 狠狠色香婷婷久久亚洲精品 | 精品一区 在线 | 日韩中文在线电影 | 激情综合色综合久久综合 | 激情狠狠干 | 国产精品99免费看 | 亚洲国产综合在线 | 在线观看韩日电影免费 | 国内精品久久久久影院日本资源 | 精品亚洲国产视频 | 日批在线观看 | 国产在线一卡 | 天天操夜操 | 日日夜夜综合网 | 国产无遮挡又黄又爽在线观看 | 日韩精品在线播放 | 亚洲综合视频在线 | 东方av免费在线观看 | 97超碰福利久久精品 | 少妇自拍av | 久久综合精品国产一区二区三区 | 国产中的精品av小宝探花 | 久久久久综合精品福利啪啪 | 亚洲九九影院 | 99久久久国产免费 | 婷婷激情小说网 | 精品在线99| av中文字幕在线看 | 成人免费观看视频网站 | 日韩高清成人 | 日本爱爱片 | 在线观看视频中文字幕 | 一本之道乱码区 | 狠狠色2019综合网 | 国产美女免费视频 | av日韩av| 国产视频二区三区 | 中文字幕成人网 | 麻豆传媒一区二区 | 九月婷婷综合网 | 高清免费av在线 | 日韩久久精品一区 | 午夜视频播放 | 国产在线综合视频 | 人人舔人人 | 综合五月婷婷 | 黄色a视频免费 | 亚洲视频 一区 | 亚洲精品三级 | 久久久久婷| 国产电影一区二区三区四区 | 久久天天躁狠狠躁夜夜不卡公司 | 天天天天天干 | 日韩精品网址 | 麻豆视频www | 丁香婷婷色综合亚洲电影 | 欧美一级视频一区 | 精品久久久久久综合日本 | 日韩精品一区二区在线观看 | 九九热久久免费视频 | 久久好看| 91自拍视频在线观看 | 亚洲精品字幕 | 97超碰伊人 | 在线小视频| 黄色av一级 | 午夜三级福利 | 欧美少妇的秘密 | 亚州成人av在线 | 亚洲精品国精品久久99热 | 亚洲免费精品视频 | 色妞色视频一区二区三区四区 | 国产精品黄色在线观看 | 日韩久久精品一区二区三区下载 | 欧美人交a欧美精品 | 麻豆免费看片 | 日本精品在线看 | 亚洲日韩中文字幕在线播放 | 国内精品国产三级国产aⅴ久 | 亚洲欧美日韩一二三区 | 丁香六月中文字幕 | 久久久久福利视频 | 国色综合 | 91重口视频 | 一区二区三区在线观看免费视频 | 久久婷婷综合激情 | 天天综合在线观看 | 欧美精品乱码久久久久久 | 久久精品小视频 | 欧美久久久久久久久久久久 | 九草在线观看 | 国产手机在线观看视频 | 精品国产一区二区三区免费 | 人人爽人人爱 | 黄在线免费看 | 欧美日韩一区久久 | 日韩羞羞 | 国产一区二区在线免费播放 | 91精品国产乱码 | 五月婷婷中文字幕 | 91高清不卡 | 九九热免费视频在线观看 | 国产999精品久久久影片官网 | 国产精品久久久久久妇 | 欧美国产日韩一区二区 | 夜夜爽天天爽 | 久久亚洲视频 | 国产麻豆精品久久一二三 | 久久高清片| 97精品国产aⅴ | 亚洲综合在线观看视频 | av大全在线播放 | 在线国产精品视频 | 久久不色| 国产丝袜高跟 | www.午夜色.com | 黄色a级片在线观看 | 日韩视频在线观看免费 | 91香蕉视频黄 | 女人18毛片a级毛片一区二区 | 日韩网站在线免费观看 | 亚洲a网 | 久久99久国产精品黄毛片入口 | 久久国产成人午夜av影院潦草 | 欧美色久 | 日韩一区在线免费观看 | 欧美精品你懂的 | 丁香五月网久久综合 | 国产成人一区二区三区免费看 | 狠狠色婷婷丁香六月 | 五月av在线 | 国产精品成人一区二区三区吃奶 | 99精品在线观看 | 欧亚久久 | 亚洲精品美女久久久久网站 | 国产精品mv | 亚洲激情 | 99操视频| 亚洲jizzjizz日本少妇 | 久久久国产99久久国产一 | 精品国产一区二区三区四 | 久久综合爱 | 999毛片| 婷婷久操| 国产精品一区二区三区99 | 成人羞羞视频在线观看免费 | 中文字幕亚洲不卡 | 激情欧美一区二区三区 | 1024手机基地在线观看 | 精品久久久久久亚洲综合网站 | 国产精品v欧美精品v日韩 | 99精品网站 | 中文字幕九九 | 91免费视频黄 | 国产福利91精品一区 | 国产美女永久免费 | 欧美日韩破处 | 中文字幕首页 | 欧美精品久久久久久久久久白贞 | 国产又粗又猛又黄又爽视频 | 国产香蕉97碰碰久久人人 | 在线观看免费视频 | 国产亚洲欧美日韩高清 | 91夜夜夜| 久久国产高清 | 在线a亚洲视频播放在线观看 | 黄色av免费电影 | 欧美va日韩va | 成人午夜电影在线 | 日韩欧美高清免费 | 精品国产一区二区三区四区vr | 国产福利专区 | 菠萝菠萝蜜在线播放 | 欧美 日韩 性 | av电影中文字幕在线观看 | 国产精品综合在线观看 | 亚洲一级黄色av | a级免费观看 | 国产美女被啪进深处喷白浆视频 | 91av视频在线免费观看 | 波多野结衣资源 | 美女网站视频免费黄 | 色在线网 | 免费亚洲视频 | 视频在线观看一区 | 久日精品| 国产视频亚洲精品 | 亚洲精品字幕在线 | 在线日韩精品视频 | 狠狠狠狠狠干 | 国产码电影 | 欧美性另类 | 中文字幕国产视频 | 天天玩天天干 | 成人午夜免费福利 | 亚洲欧洲中文日韩久久av乱码 | 91精彩视频在线观看 | 最新av在线网站 | 日本少妇高清做爰视频 | 欧美成人中文字幕 | 1024手机看片国产 | 国产区精品在线观看 | 日韩在线字幕 | av先锋中文字幕 | 久久久免费观看视频 | 黄色av免费电影 | 18av在线视频 | 久久玖 | 国产精品 亚洲精品 | 伊人天堂av | 国产精品国产三级国产aⅴ入口 | 911国产精品 | 成人app在线播放 | 亚洲国产中文字幕在线视频综合 | 国产黄色免费 | 麻豆视频一区 | 日本成人中文字幕在线观看 | 黄色www在线观看 | 日日夜夜精品视频天天综合网 | 国产高清一 | 中文字幕精品久久 | 天天干天天想 | 97av在线视频免费播放 | 欧美韩日在线 | 香蕉97视频观看在线观看 | 国产精品福利视频 | 午夜在线观看一区 | 日韩狠狠操 | 国产精品乱码一区二区视频 | 久久天堂影院 | 久久久69 | 在线观看www. | 国产精品视频线看 | www日韩欧美 | 午夜精品视频福利 | www蜜桃视频 | 啪啪av在线 | 欧美精品久久久久久久久免 | 成人免费视频网址 | 视频三区 | 日韩三区在线 | 国产一区二区中文字幕 | 久久99国产精品视频 | 91精品第一页 | 国产一级性生活视频 | 欧美一区二区三区在线看 | 国产免费黄视频在线观看 | 蜜臀久久99静品久久久久久 | 精品国产乱码久久久久久1区二区 | 日韩理论在线视频 | 天天色天天操天天爽 | 国产免费亚洲 | 日本精品va在线观看 | 久久久国产影院 | 国产精品毛片久久久久久 | 综合天堂av久久久久久久 | 国内外成人免费在线视频 | 福利一区在线视频 | 中文字幕精品三级久久久 | 精品在线视频播放 | 久草在线资源网 | 日韩草比 | 欧美狠狠操 | 一个色综合网站 | 精品美女久久久久 | 伊人电影在线观看 | 狠狠色丁香久久综合网 | 色综合久久久久综合体 | 韩日三级在线 | 午夜免费电影院 | 久久久久久久久久久网 | 国产精品久久久久久久久久久久午 | 国产精品高清在线观看 | 久久精品79国产精品 | 国产精品乱码久久久 | 国产精品嫩草在线 | 在线观看黄色小视频 | 91精品办公室少妇高潮对白 | 在线观看91| 国产在线高清视频 | 欧美天天干 | 久久精品视频3 | 九九在线国产视频 | 欧美一性一交一乱 | 日日草天天干 | 欧美精品久久久久久久久免 | 黄色一级在线观看 | 国产香蕉久久精品综合网 | 五月av在线 | 99精品国产在热久久 | 久草观看视频 | 国产不卡免费av | 久久人人干 | 波多野结衣理论片 | 欧美日韩国产mv | 亚洲日本一区二区在线 | 丁香久久五月 | 久久久免费在线观看 | www.eeuss影院av撸 | 国产香蕉视频在线观看 | 永久免费毛片 | 日韩有码第一页 | 久久黄色影院 | 久久国产美女视频 | 国产亚洲在线视频 | 天天射天天射 | 97超碰在线播放 | 欧美大香线蕉线伊人久久 | 狠狠色丁香婷婷综合基地 | 欧美日高清视频 | 国产精品igao视频网入口 | 天天爱天天色 | 999在线视频 | 国产自产在线视频 | a视频在线播放 | 欧美日韩另类视频 | 亚洲国产成人在线播放 | 亚洲午夜大片 | 日韩在线 | 九九九九九国产 | 色婷婷影视 | 在线观看日本韩国电影 | 久久免费看毛片 | 一本一本久久a久久 | 精品国产伦一区二区三区 | 久久视频免费在线观看 | 色国产视频 | 久久婷综合 | 天天插伊人 | 毛片3| 国产黄色片免费看 | 精品国产免费av | 久久久久99精品国产片 | 日韩v欧美v日本v亚洲v国产v | 国内精品久久久久久久 | 久久男人视频 | 日韩欧美高清 | 久草久视频 | 免费a现在观看 | 国产精品久久久电影 | 国产一二三区av | 免费观看的黄色片 | 婷婷六月激情 | 日日干美女 | 黄色精品免费 | 亚洲美女视频网 | 人人干天天干 | 色婷婷精品大在线视频 | 免费三级大片 | 久久久久二区 | 手机av在线网站 | 视频在线99 | 午夜aaaa | 国产第一页在线观看 | 2024av在线播放| av免费看在线| 国产特级毛片aaaaaa | 久久久久中文 | 人人天天夜夜 | 日韩xxxbbb | 高清精品视频 | 国产 在线观看 | 亚洲伊人第一页 | 亚洲欧洲国产日韩精品 | 成人在线免费看视频 | 成人黄色大片 | 中文字幕九九 | 成人av网址大全 | 人人爽久久久噜噜噜电影 | 麻豆视频免费网站 | 久草在| 久久久在线 | 91视频在线免费下载 | 国产高清在线a视频大全 | 国产精品嫩草影院9 | 日韩免费三区 | 日躁夜躁狠狠躁2001 | 国产亚洲资源 | 国产高清久久久久 | 久久午夜网 | 亚洲精品在线视频网站 | 久久久色 | 色欧美综合 | 波多野结衣精品视频 | 欧美激情精品久久久久久免费 | 亚洲一区二区三区91 | 999日韩| 不卡的av在线 | 精品国产黄色片 | 精品视频成人 | 国产99久久精品一区二区300 | 中午字幕在线 | 91av免费观看 | 福利在线看片 | 美女av在线免费 | 天天爱天天色 | 肉色欧美久久久久久久免费看 | 91九色精品国产 | 91九色在线观看视频 | 天天色天天射天天操 | 国产福利一区二区三区在线观看 | 成人在线播放视频 | 五月激情电影 | 天天干天天想 | 99精品在线免费视频 | 中文字幕乱码在线播放 | 免费高清看电视网站 | 成人av在线直播 | 97久久精品午夜一区二区 | 欧美一级欧美一级 | 久草精品电影 | 国产看片网站 | 狠狠狠干狠狠 | 日韩免费视频网站 | 国产视频九色蝌蚪 | 日韩av免费大片 | 8x成人在线 | 99久久精品免费看国产四区 | 日韩专区 在线 | av在线之家电影网站 | 国内成人综合 | 国产日韩欧美视频在线观看 | 国产亚洲婷婷免费 | 久久电影国产免费久久电影 | 国产视频一区在线 | 日韩激情免费视频 | 黄色a视频| 欧美日韩在线免费观看 | 蜜臀av夜夜澡人人爽人人 | 麻豆久久一区二区 | 91喷水| 欧美一级视频一区 | 亚洲精品免费在线播放 | 日韩精品不卡 | 国产美女精品视频免费观看 | 国产在线视频在线观看 | 日韩av免费在线看 | 久久电影中文字幕视频 | 波多野结衣一区二区 | 亚洲欧洲成人 | 91成人在线免费观看 | 91激情在线视频 | 超级碰碰视频 | 91精品国产网站 | 狠狠色伊人亚洲综合网站野外 | 久久er99热精品一区二区三区 | 99在线观看视频网站 | 成人污视频在线观看 | 五月天开心 | 色永久免费视频 | 中文字幕日韩在线播放 | 国产精品一区二区久久久久 | 日韩在线免费视频 | 黄色网中文字幕 | 国产精品毛片一区二区 | 久久免费黄色大片 | 久久国产精品99久久久久久进口 | 韩国一区二区三区视频 | 五月婷香蕉久色在线看 | 综合色站导航 | 国产黄色精品网站 | 久久伊人精品天天 | 色综合久久久久综合99 | 蜜臀av网址 | 一区二区三区高清不卡 | 人人爽爽人人 | 成人永久视频 | 国产黄a三级三级三级三级三级 | 欧美激情视频一区二区三区免费 | 久久国产精品一区二区三区 | 五月婷婷av | 骄小bbw搡bbbb揉bbbb | 久久综合中文字幕 | 黄色av电影在线 | 亚洲综合色播 | 麻豆免费在线视频 | 青青河边草免费视频 | 一区二区三区精品久久久 | 成年人视频在线免费 | 国产玖玖在线 | 国产精品久久久久久久久搜平片 | 日韩黄色免费 | 亚洲国产久| 国产91亚洲精品 | 国产一级免费片 |