聲明:案例只用于學習,不得惡意使用
要求:獲取直播間標題、類型、主播、熱度,并實現翻頁
定位隨著網站更新可能不會實現,請自行更改
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import timechrome_options = Options()
chrome_options.page_load_strategy = 'eager'
service = Service('chromedriver.exe路徑')class Douyu(object):def __init__(self):self.url = 'https://www.douyu.com/directory/all'self.driver = webdriver.Chrome(service=service, options=chrome_options)self.driver.implicitly_wait(5)def parse_data(self):time.sleep(3)data_list= []# 遍歷房間列表,從每一個房間節點中獲取數據for i in range(1,121):temp = {}temp['title'] = self.driver.find_element(By.XPATH, f'//li[{i}]/div/a/div[2]/div[1]/h3').texttemp['type'] = self.driver.find_element(By.XPATH, f'//li[{i}]/div/a/div[2]/div[1]/span').texttemp['owner'] = self.driver.find_element(By.XPATH, f'//li[{i}]/div/a/div[2]/div[2]/h2').texttemp['num'] = self.driver.find_element(By.XPATH, f'//li[{i}]/div/a/div[2]/div[2]/span').textdata_list.append(temp)return data_listdef save_data(self,data_list):for data in data_list:print(data)def run(self):self.driver.get(self.url)while True:data_list = self.parse_data()self.save_data(data_list)try:el_next = self.driver.find_element(By.XPATH, '//*[@title="下一頁"][@aria-disabled="false"]')self.driver.execute_script('scrollTo(0,1000000)')el_next.click()except:breakif __name__ == '__main__':douyu = Douyu()douyu.run()
【Python爬蟲】Selenium使用