python动态视频下载器的实现方法

  

这里向大家分享一python爬下虫的一些应用,主要是用爬虫配合简单的GUI界面实现视频,音乐和小说的下载器。今天就先介绍如何实现一个动态视频下载器。

  

  

  

首先介绍的是python爬取电影天堂网站的视频(包括电影,电视剧,综艺等),主要是用硒动态网页技术加上简单的爬虫技术。

  

(1)电影网站首页面地址:https://www.dytt8.net/

  

(2)用到的技术:硒模拟浏览器运行。

  

(3)首先要安装配置硒库和不同浏览器和该库配合的插件。这里安装配置的过程略过。

  

(4)然后我们用下面的代码打开首页,并输出该网页的源码:

        def getSource (url):   浏览器=webdriver.Chrome ()   browser.get (url)   打印(browser.page_source)   browser.close ()      

  

(5)然后我们找到搜索对应的网页元素标签,以及选择类型和立即搜索按钮对应的标签。

  

 python动态视频下载器的实现方法

  

分别为:

  

 python动态视频下载器的实现方法

  

 python动态视频下载器的实现方法

  

  

 python动态视频下载器的实现方法

  

(6)然后我们用下面的代码把用户输入的信息模拟放到浏览器上

  

由于未加载完毕会进入广告页面,因此有需要改进的地方,这时就需要延长载入时间。这里有显示等待和隐式等待,用简单的隐式等待即可。

  

有时候会出现错误,因为掩盖的div可能会在进行一些操作后,会消失,比如页面还在加载中。这时候点击元素的话,就直接点击在加载的标签上,所以在这个操作前可以加个等待,让掩盖的div自行消失后,再等待左侧菜单到可点击状态即可,或者进行刷新的操作,此div即可消失,再等待左侧菜单到可点击状态即可。

  

代码为:

        def putUserMessger (url、this_name this_type):   “‘   :param url:浏览器网址   :param this_name:需要下载的视频名   :param this_type:需要下载的视频类型   “‘   this_browser=webdriver.Chrome ()   this_browser.implicitly_wait (10)   this_browser.get (url)   #把下载的视频名和视频类型进行模拟浏览器匹配   #搜索输入框的标签属性有名称和类,这里用名字属性进行获取   this_browser.find_element_by_name(关键字).send_keys (this_name)   time . sleep (2)   #选择类型下拉框是html自带的下拉框,不是输入做的假的下拉框   选择(this_browser.find_element_by_name(领域)).select_by_visible_text (this_type)   time . sleep (2)   #点击立即搜索按钮,提交就不是单纯的单击,它会涉及到前后台的交互   this_browser.find_element_by_name('提交').click ()   this_browser.close ()   def main ():   name=输入(“请输入视频名:')   类型=输入(“请选择类型:')   url=' https://www.dytt8.net/'   putUserMessger (url、名称、类型)      

但是还是会出现下面的问题:

        selenium.common.exceptions.WebDriverException:消息:未知错误:元素& lt;输入名称=疤峤弧崩嘈?疤峤弧奔壑?" https://www.yisu.com/zixun/立即搜索”在不是可点击的点(702、220)。其他元素将获得点击:& lt; div祝辞& lt;/div>   (会话信息:chrome=73.0.3683.86)   (司机信息:chromedriver=73.0.3683.68 (47787 ec04b6e38e22703e856e101e840b65afe72),平台=Windows NT 10.0.17134 x86_64)      

但是我们发现我们点击后的其实是有规律的,因此用另一个方法。

  

(6)二层页面配置参数及视频三层地址输出

  

我们先分析一下url:
   python动态视频下载器的实现方法

  

分析第二层页面地址为:

        http://s.ygdy8.com/plus/so.php& # 63;类型id=1,关键字=% C4%E3%B5%C4%C3%FB % D7%D6      

  

是由http://s.ygdy8.com/plus/so.php& # 63; +类型id=视频编号,关键词=视频名gdk编码组成。因此需要先转化汉字为网页地址url的编码。

  

用下面的代码就可以构建一个需要的网址:

python动态视频下载器的实现方法