这里向大家分享一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)然后我们找到搜索对应的网页元素标签,以及选择类型和立即搜索按钮对应的标签。
分别为:
(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:
分析第二层页面地址为:
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的编码。
用下面的代码就可以构建一个需要的网址: