Python爬虫实现刷B站、爱奇艺等视频网站播放量
很幸运,这篇文章能够被发出来。之所以归类的Python爬虫,因为他的访问机制跟爬虫类似。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:623406465
先上代码,然后再分析:
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 import time while True: chromeOptions = webdriver.ChromeOptions() browser = webdriver.Chrome("C:Program Files (x86)GoogleChromeApplicationchromedriver.exe", options=chromeOptions) #浏览器驱动 browser.delete_all_cookies() # 删除cookie browser.get("https://www.bilibili.com/video/av00000002") #视频地址 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()) time.sleep(100)# 等待时常 browser.quit()
代码分析:
1.库的调用
调用了这一堆库,不会安装库的看一看我的这篇博客:python库安装
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 import time
有人会问我,为什么不直接导入一个selenium库呢?养成好习惯,不要让你的代码很冗杂,不然打包的时候,把一整个库都会打包。
记住,这个习惯很重要!!!!!
2. 浏览器调试驱动
chromeOptions = webdriver.ChromeOptions() browser = webdriver.Chrome("C:Program Files (x86)GoogleChromeApplicationchromedriver.exe", options=chromeOptions) #浏览器驱动
这里要下载浏览器调试的驱动,要跟你的浏览器的版本一样。
网址:
- Chrom浏览器的web driver(chromedriver.exe):点这儿
- Firefox(火狐浏览器)的web driver (geckodriver.exe):点这儿
- Microsoft Edge :戳这里
- Apple Safari : Click it
然后放在浏览器根目录下,再把浏览器根目录下的驱动的地址,放到代码里即可。
browser = webdriver.Chrome("驱动路径", options=chromeOptions) #浏览器驱动
3.删除cookie
browser.delete_all_cookies() # 删除cookie
Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起,
保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web
文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能,
而这一切都不必使用复杂的CGI等程序 。 举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie
文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的
Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web
站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web
站点在机器上放置了Cookie(当然站点信息在文件里也有保存)
为了避免,多次访问,cookie记录的情况。
4. 视频地址
browser.get(" 要访问的视频地址") #视频地址
直接将要访问的视频地址粘贴,即可。
5. 自动播放
element = WebDriverWait(browser, 15).until( #等待播放按钮能够被加载并且能够被点击,15s后如果还没加载完成并且不满足被点击的条件,就抛出异常 EC.element_to_be_clickable((By.XPATH, "//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[8]/video")) ) element.click()
第一步:
是设置等待加载时常,是网络环境设置时将长度。
第二步:
获取播放按钮的位置,本文是B站的播放位置
其他网站,F12,点击该按钮,再点击播放按钮即可获取,按照代码种形式设置即可。