亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python使用Selenium模塊模擬瀏覽器抓取斗魚直播間信息示例

2020-02-15 22:26:23
字體:
來源:轉載
供稿:網友

本文實例講述了Python使用Selenium模塊模擬瀏覽器抓取斗魚直播間信息。分享給大家供大家參考,具體如下:

import timefrom multiprocessing import Poolfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.common.exceptions import TimeoutExceptionfrom bs4 import BeautifulSoupfrom pymongo import MongoClientfrom pymongo.errors import PyMongoError# monogdb配置信息MONGO_HOST = "localhost"MONGO_DATABASE = "douyu"MONGO_TABLE = "zhibo"client = MongoClient(host=MONGO_HOST)db = client[MONGO_DATABASE]# PhantomJS 命令行相關配置# 參見 http://phantomjs.org/api/command-line.htmlSERVICE_ARGS = ['--disk-cache=true', '--load-images=false']# driver = webdriver.Chrome() # 有界面driver = webdriver.PhantomJS(service_args=SERVICE_ARGS) # 無界面delay = 10wait = WebDriverWait(driver, delay)driver.maximize_window()def get_total_pages():  url = 'https://www.douyu.com/directory/all'  driver.get(url)  pages = int(driver.find_element_by_css_selector(    '.shark-pager-dot + .shark-pager-item').text)  print("正在獲取第1頁數據")  room_list = get_rooms_by_beautifulsoup()  save_to_monogodb(room_list)  return pages# 根據頁碼獲取指定頁數據,并將其保存到數據庫中def parse_page(page_num):  print("正在獲取第%d頁數據" % page_num)  try:    page_num_box = wait.until(      EC.presence_of_element_located(        (By.CSS_SELECTOR, "input.jumptxt")))    go_btn = wait.until(EC.element_to_be_clickable(      (By.CSS_SELECTOR, 'a.shark-pager-submit')))    page_num_box.clear()    page_num_box.send_keys(page_num)    go_btn.click()    # driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")    # time.sleep(0.1)    wait.until(      EC.text_to_be_present_in_element(        (By.CSS_SELECTOR,         '.shark-pager-item.current'),        str(page_num)))    # 對于By.CLASS_NAME invalid selector: Compound class names not permitted    room_list = get_rooms_by_beautifulsoup()    save_to_monogodb(room_list)  except TimeoutException:    print("請求第%d頁失敗" % page_num)    print("嘗試重新獲取第%d頁" % page_num)    return parse_page(page_num)# 通過bs4解析數據def get_rooms_by_beautifulsoup():  '''  通過bs4庫解析數據  獲取直播間的名稱,觀看人數,標簽,主播名  '''  wait.until(EC.presence_of_element_located(    (By.CSS_SELECTOR, "ul#live-list-contentbox > li")))  html = driver.page_source  soup = BeautifulSoup(html, 'lxml')  rooms = soup.select('ul#live-list-contentbox > li')  for room in rooms:    room_name = room.find(      'h3', attrs={        'class': 'ellipsis'}).get_text(      strip=True)    view_count = room.find('span', class_='dy-num fr').text    tag = room.find('span', class_='tag ellipsis').text    hostname = room.find('span', class_='dy-name ellipsis fl').text    #print("房間名: " + room_name + "/t觀看人數: " + view_count + "/t標簽: " + tag + "/t主播名: " + hostname)    yield {      'room_name': room_name,      'view_count': view_count,      'tag': tag,      'hostname': hostname,    }def save_to_monogodb(room_list):  for room in room_list:    try:      db[MONGO_TABLE].insert(room)  # insert支持插入多條數據      print("mongodb插入數據成功:", room)    except PyMongoError as e:      print("mongodb插入數據失敗:", room, e)if __name__ == '__main__':  try:    total_pages = get_total_pages()    for page_num in range(2, total_pages + 1):      parse_page(page_num)  except Exception as e:    print("出錯了", e)  finally: # 確保 瀏覽器能正常關閉    print("共有%d頁" % total_pages)    driver.close()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕一精品亚洲无线一区| 久久久成人的性感天堂| 91久久精品久久国产性色也91| 国产视频精品久久久| 亚洲精品成人久久| 81精品国产乱码久久久久久| 精品国产户外野外| 欧美在线亚洲一区| 欧美在线欧美在线| 日韩免费观看在线观看| 美女啪啪无遮挡免费久久网站| 91免费精品国偷自产在线| 久久视频精品在线| 91色视频在线导航| 久久成人综合视频| 久久激情五月丁香伊人| 成人精品久久久| 最新国产成人av网站网址麻豆| 亚洲男人天堂古典| 中文字幕日韩精品在线观看| 亚洲色图色老头| 欧美性猛交xxxx免费看久久久| 国产精品一区久久| 在线观看日韩av| 国产欧美日韩专区发布| 北条麻妃一区二区三区中文字幕| 国产精品激情av在线播放| 日韩国产精品亚洲а∨天堂免| 欧美激情一区二区三区高清视频| 国产中文字幕91| 韩日欧美一区二区| 亚洲精品99999| 亚洲男人的天堂在线播放| 亚洲大胆美女视频| 成人xxxxx| 亚洲一区二区三区乱码aⅴ| 91久久精品国产91性色| 久久久天堂国产精品女人| 国内精品在线一区| 欧美日韩另类视频| 成人激情在线播放| 久久青草福利网站| 日韩中文字幕国产| 欧美中文字幕视频在线观看| 欧美野外wwwxxx| 精品国内亚洲在观看18黄| 不卡在线观看电视剧完整版| 欧美日韩美女在线观看| 成人精品一区二区三区电影黑人| 亚洲人成啪啪网站| 91国语精品自产拍在线观看性色| 亚洲 日韩 国产第一| 欧美特级www| 美女福利精品视频| 成人免费看黄网站| 亚洲午夜激情免费视频| 欧美激情视频在线| 久久99久久99精品免观看粉嫩| 亚洲欧美制服丝袜| 日本最新高清不卡中文字幕| 久久视频在线视频| 国产精品一区久久| 国内精品久久久久伊人av| 欧美性xxxxx| 91系列在线观看| 91精品久久久久久久久| 亚洲第一中文字幕在线观看| 成人免费看黄网站| 欧美福利视频网站| 国产一区二区在线免费视频| 国产精品国模在线| 91精品啪aⅴ在线观看国产| 亚洲国产美女久久久久| 国产91在线视频| 亚洲精品www久久久| 国产亚洲欧美日韩美女| 精品视频久久久久久| 亚洲人成自拍网站| 日本欧美一二三区| 欧美激情精品久久久久久黑人| 日韩在线免费av| 国产精品啪视频| 亚洲最大的网站| 97精品一区二区视频在线观看| 狠狠躁天天躁日日躁欧美| 日韩精品在线观看一区二区| 疯狂做受xxxx高潮欧美日本| 亚洲片av在线| 中文字幕欧美日韩va免费视频| 国产精品久久久久77777| 欧美有码在线观看视频| 亚洲免费视频一区二区| 91国自产精品中文字幕亚洲| 日韩欧亚中文在线| 国产精品18久久久久久麻辣| 成人福利在线视频| 国产精品老女人精品视频| 国产在线播放不卡| 欧美有码在线观看视频| 国产福利视频一区| 亚洲国产欧美在线成人app| 久久久噜噜噜久久| 69精品小视频| 中文字幕在线视频日韩| 国产精品久久久久999| 亚洲视频欧洲视频| 欧美日韩亚洲网| 国产99在线|中文| 久久国产精品久久久久| 久久夜精品香蕉| 国产精品久久久久久亚洲影视| 国产成人高潮免费观看精品| 欧美高清videos高潮hd| 日韩欧美福利视频| 韩国欧美亚洲国产| 国产98色在线| 影音先锋欧美精品| 久久国产精品影视| 亚州精品天堂中文字幕| 欧美视频免费在线观看| 国产成人一区二区在线| 中文综合在线观看| 91禁国产网站| 精品亚洲男同gayvideo网站| 欧美成人精品一区二区三区| 91沈先生在线观看| 日韩av综合网站| 欧美另类交人妖| 亚洲老司机av| 国产免费一区二区三区在线能观看| 色妞色视频一区二区三区四区| 日韩成人在线视频网站| 久久久久久久久国产精品| 欧美精品免费在线| 亚洲精品成人av| 久久精品99久久久久久久久| 成人午夜激情免费视频| 福利视频第一区| 日韩成人中文电影| 国产精品免费网站| 亚洲欧美日韩精品久久奇米色影视| 777国产偷窥盗摄精品视频| 77777亚洲午夜久久多人| 综合国产在线观看| 欧美在线性爱视频| 日韩精品视频在线观看免费| 欧洲美女7788成人免费视频| 亚洲男人av电影| 欧美日韩综合视频| 亚洲天堂网在线观看| 日本中文字幕不卡免费| 国产精品高潮在线| 亚洲欧洲在线免费| 2020国产精品视频| 欧美日韩在线影院| 亚洲激情中文字幕| 亚洲人成自拍网站| 国产精品香蕉国产| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产精品悠悠久久琪琪| 日韩精品在线观看一区| 成人免费视频a| 日本精品久久中文字幕佐佐木| 69国产精品成人在线播放|