刷bili播放量

需求:刷bili单个视频的播放量

环境 :python + selenium

相关说明:

打开视频url,页面加载完成,当点击了播放按钮之后认定为一次有效的播放,视频播放量加一,故使用selenium模拟点击

import requests

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

# headers = {

# 'Accept':' text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',

# 'Accept-Encoding':' gzip, deflate, br',

# 'Accept-Language':' zh-CN,zh;q=0.9',

# 'Cache-Control':' max-age=0',

# 'Connection':' keep-alive',

# 'Host':' www.bilibili.com',

# 'Upgrade-Insecure-Requests':' 1',

# 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',

# }

try:

chromeOptions = webdriver.ChromeOptions()

proxy = requests.get('http://127.0.0.1:5010/get/').text #自己维护的代理池并提供接口

print(proxy)

chromeOptions.add_argument("--proxy-server=http://{}".format(proxy)) #设置代理

browser = webdriver.Chrome('D:\\Google\\Chrome\\Application\\chromedriver.exe', options=chromeOptions)

browser.delete_all_cookies() # 删除cookie

browser.get("https://www.bilibili.com/video/av33899702")

element = WebDriverWait(browser, 15).until( #等待播放按钮能够被加载并且能够被点击,15s后如果还没加载完成并且不满足被点击的条件,就抛出异常

EC.element_to_be_clickable((By.XPATH, '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[8]/video'))

)

element.click()

print(browser.get_cookies())

except Exception as e:

print('异常'*10)

print(e)