python刷B站播放量

您所在的位置:网站首页 b站播放量排行榜 python刷B站播放量

python刷B站播放量

2023-07-23 01:29| 来源: 网络整理| 查看: 265

首先,我们要知道B站播放量计算方法:不同的IP只能算一次,如果点一下就关掉,会出现播放完成度很低的情况,反而不利。 所以我们要做的是:不停换IP地址打开视频播放页,最好能看完视频。 下面是实现方法: 获取某一个网页上的所有代理IP,返回一个IP列表:

def get_ip_list(url, headers): web_data = requests.get(url, headers=headers) soup = BeautifulSoup(web_data.text, 'lxml') ips = soup.find_all('tr') ip_list = [] for i in range(1, len(ips)): ip_info = ips[i] tds = ip_info.find_all('td') #tr标签中获取td标签数据 ip = tds[1].text + ':' + tds[2].text ip_list.append(ip) return ip_list

代码来自:https://blog.csdn.net/qq_38525781/article/details/81564036 我用xpath和requests的试了一下,不知道为什么不行,但是上面这个是可以的。

后来得知下载下来的text某些元素会被省掉,因此不能用绝对路径。

从网站上爬取数据(主要是不断的切换页面)

def Get_Ip_Form_66(): global ip_list ip_list=[] global headers headers = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding':'gzip, deflate, sdch', 'Accept-Language':'zh-CN,zh;q=0.8', 'Cache-Control':'max-age=0', 'Connection':'keep-alive', 'Host':'www.66ip.cn', 'If-None-Match':'W/"b077743016dc54409ebe6b86ba7a869b"', 'Upgrade-Insecure-Requests':'1', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36', } cookies = None for i in range(1,20): url = 'http://www.66ip.cn/'+str(i)+'.html' ip_list.append(get_ip_list(url,headers))

然后是自动打开网页。获取视频时间,然后二倍速播放。代理部分参考的是https://www.jb51.net/article/151634.htm

def Auto_Like_Your_Video(url): try: # 使用代理ip chromeOptions = webdriver.ChromeOptions() chromeOptions.add_argument("--proxy-server="+str(url))# 一定要注意,=两边不能有空格,不能是这样--proxy-server = http://202.20.16.82:10152 driver = webdriver.Chrome(options=chromeOptions) # 打开视频播放页 driver.get("https://www.bilibili.com/video/BV1hi4y1x7PM") time.sleep(7) # 获取视频时长 Video_Time = driver.find_element_by_xpath("//div[@name='time_textarea']/span[3]").text Total_Second = Change_The_Time_Type(Video_Time) # 两倍速 element=driver.find_element_by_xpath("//button[@class='bilibili-player-video-btn-speed-name']") webdriver.ActionChains(driver).move_to_element(element).click(element).perform() element=driver.find_element_by_xpath("//ul[@class='bilibili-player-video-btn-speed-menu']/li[1]") webdriver.ActionChains(driver).move_to_element(element).click(element).perform() # 点击播放 element=driver.find_element_by_xpath("//button[@class='bilibili-player-iconfont bilibili-player-iconfont-start']") webdriver.ActionChains(driver).move_to_element(element).click(element).perform() # 页面最小化 driver.minimize_window() # 看完视频 time.sleep(Total_Second/2) # 关闭页面 driver.close() except : pass

注意的是两倍速必须鼠标移上去才可以点击,所以新增加一个移上去的动作,别的用xpath定位就可以了,没什么麻烦的地方。

主要的不足:必须看完一个视频才能看下一个,而且没有对代理IP池进行检验。后来我试了一下检验,感觉不太行(比如打开百度,找里面的某个元素,看看能不能找到),用多线程的话,不知道为什么,是5个5个打开的,电脑直接就卡死了,页面能打开,但是很卡,无法点击,也不行。 如果大家有好的方法希望能跟我说一下。 完整的代码可以访问:https://github.com/HGGshiwo/AutoLikeYourVideo.git



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3