网页视频抓取浏览器(selenium库可以控制浏览器行为吗?如何处理行为?)
优采云 发布时间: 2021-10-13 19:06网页视频抓取浏览器(selenium库可以控制浏览器行为吗?如何处理行为?)
selenium 库可以控制浏览器行为。我们可以使用 selenium 库来抓取我们需要的网页上的所有信息。
需要配合浏览器驱动使用,可以从selenium官网下载:
注意:选择与您的浏览器兼容的驱动程序以使用
详细的 selenium 教程不在这里介绍。本程序使用 Chrome 浏览器并使用以下功能:
from selenium import webdriver
driver = webdriver.Chrome()#创建驱动实例
driver.get("https://www.bilibili.com")#打开网页
data = driver.page_source #获得网页源码
driver.add_cookie(cookie) #加入cookie
cookieData = driver.get_cookies() #获得当前网页cookie
currentUrl = driver.current_url #获得当前网页网址
driver.refresh() #刷新网页
driver.close() #关闭网页
button = driver.find_element_by_class_name("bilibili-player") #根据类名查找元素(按钮元素)
button.click() #点击这个按钮
driver.get(Url):
将使您的浏览器打开此网址
driver.page_source():
它可以返回网页源代码,包括html代码、javascript代码等,这也是我们选择使用selenium来抓取数据的原因。urlopen、requests等通用函数无法返回渲染出来的javascript代码,而seleniumn可以完美解决这个问题。
driver.get_cookies():
如果您需要浏览器记录登录信息以实现自动登录,我们需要启用它来保存cookie。我们可以使用此方法将 cookie 存储为字典以供下次调用。
driver.add_cookie(cookie):
可以给当前打开的页面添加cookies,一般和driver.refresh()配合使用。cookie 的效果只有在页面刷新后才会体现出来。
driver.find***():
Selenium 有很多 find 函数,可以通过不同的键值返回不同的对象。这里只使用了find_element_by_class_name,即根据类名查找对象。找到对象后(对象可能是按钮或文本框),我们可以对对象进行不同的操作,比如点击、填充数据等。这里我们使用click(),也就是点击这个对象。
关于如何处理cookies,需要用到json库,下期会讲到。