前面抓取得数据主要是图片,文字等信息,一直没有抓取过视频,这次用selenium模拟浏览器抓取小视频,与前面不同的是,视频抓取需要进入三级网页,因为视频源码是通过浏览器动态加载js文件得到的,所以使用浏览器打开网页抓取数据。
from bs4 import BeautifulSoup
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import requests
from lxml import etree
import os
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#创建浏览器对象
browser = webdriver.Chrome(chrome_options=chrome_options)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36'
}
def parse_url(vedio_title,vedio_url):
print(vedio_url)
browser.get(url = vedio_url)
r = browser.page_source
time.sleep(10)
print(type(r))
tree = etree.HTML(r)
#获取vedio链接//*[@class="player wide"]/div[1]/video