使用python自动化观看b站视频

前言

脚本的主要逻辑是通过定时器和多线程来实现循环执行自动看视频的操作。其中loop_monitor()函数通过创建一个定时器对象来调用views()函数,每隔5秒执行一次views()函数。
#views()函数判断距离上一次执行的时间是否超过1000秒,如果超过
则创建一个定时器对象来调用view_int()函数,之后休眠10分钟。view_int()函数创建5个线程,每个线程都调用Auto_Like_Your_Video()函数来执行自动刷播放量的操作。
Auto_Like_Your_Video()函数中,通过设置ChromeOptions来配置浏览器的选项,包括设置User-Agent、使用代理等。
然后创建一个webdriver.Chrome对象,通过调用get()方法打开指定的网页,并进行一系列操作,最后退出浏览器。如果判断到stop()函数返回True,则退出循环,停止刷播放量的操作。

一、前置准备

proxypool是一个免费开源的代理池。安装就不赘述了,我当时搞这个搞了一下午,太菜了呜呜呜

二、使用步骤

1.引入库

代码如下(示例):

import random
from selenium import webdriver
from threading import Timer
import time
import requests
import threading
import asyncio
from bilibili_api import video

2.核心代码

代码如下(示例):

def view_int():
    print('初始化成功')
    global state
    do1 = threading.Thread(target=Auto_Like_Your_Video, args=(get_proxy().get("proxy"), state,))
    do2 = threading.Thread(target=Auto_Like_Your_Video, args=(get_proxy().get("proxy"), state,))
    do3 = threading.Thread(target=Auto_Like_Your_Video, args=(get_proxy().get("proxy"), state,))
    do4 = threading.Thread(target=Auto_Like_Your_Video, args=(get_proxy().get("proxy"), state,))
    do5 = threading.Thread(target=Auto_Like_Your_Video, args=(get_proxy().get("proxy"), state,))
    print('线程打开')
    do1.start()
    do2.start()
    do3.start()
    do4.start()
    do5.start()
    time.sleep(2)
    state = True
    print('线程关闭')
    do1.join()
    do2.join()
    do3.join()
    do4.join()
    do5.join()
    state = False

该处使用的url网络请求的数据。


def Auto_Like_Your_Video(url,stop):
    print(stop)
    global b_time
    try:
        USER_AGENT = [
            'Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.229 Version/11.62',
            'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.9.168 Version/11.52',
            'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0',
            'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0',
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0',
        ]
        ChromeOptions = webdriver.ChromeOptions()
        ua = random.choice(USER_AGENT)
        ChromeOptions.add_argument('--user-agent=%s' % ua)
        ChromeOptions.add_argument("--proxy-server=" + "http://" + str(url))
        # desired_capabilities = DesiredCapabilities.CHROME
        # desired_capabilities["pageLoadStrategy"] = "none"
        driver = webdriver.Chrome(
            r'xxxxx\chromedriver.exe',
            options=ChromeOptions)
        driver.get('https://www.bilibili.com/video/xxxx')
        if driver.title == 'www.bilibili.com':
            print('页面访问失败')
            driver.close()
        time.sleep(b_time / random.randint(1, 4))
        driver.close()
        if stop:
            print(stop)

    except:
        pass

总结

未解决的问题,无法部署在linux服务器上,排查发现好像是webdriver没有被成功启用,希望有大佬可以帮忙看看

猜你喜欢

转载自blog.csdn.net/qq_33655643/article/details/131094703