全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1311 0
2022-08-10
用Markdown发布解析有问题。 重新发吧。 。。
看完Al Sweigart的《Automate the Boring Stuff with Python》,附上网页原版https://automatetheboringstuff.com/喜欢实体书的可以豆瓣中文版。 这里不介绍统计、画图、机器学习了。 讲一下另一个更加有趣和实用的功能,自动化。 当然你也可能把它用来当做爬虫。

下面的例子教大家如何自动下载YouTube视频。 同样你也可以修改一下用来下B站视频,[参考]

简单介绍一下 Clicknium是2022年最新的Python自动化库,可以用来自动化操作网页和Windows App. 采用可视化操作和代码结合的方式实现自动化。
pytube是一个用来下载youtube视频的Python库。 只要用视屏的link就可以下载(当然网首先得通)

确保你有:
- 一个Python3.7+的环境
- VS Code
- 梯子

配置Clicknium


1. 在VS Code的插件市场中搜索并安装Clicknium


在VS Code右侧点击Clicknium的图标进入Welcome页面, 跟着welcome 点击按钮安装module, chrome的插件和注册账号。  




### Code

用VS Code 创建一个Python文件,比如 `youtube.py`
可以通过F5运行。 这行代码Clicknium会自动打开Chrome浏览器,并且进入油管的首页。
复制代码

抓取

这个时候,我们要下载霉霉的视频, 那就得先打开霉霉视频页,类似把大象塞进冰箱:

步骤:

1.  在搜索框输入Taylor Swift
2.  点击搜索按钮
3.  点击进入霉霉首页
4.  点击进入霉霉视频页

这里一个涉及到四个元素:搜索框, 搜索按钮,搜索结果中的艺人名字,视频页切换按钮

Clicknium中使用Locator来定位UI元素, 并且提供了Recorder来生成Locator。
我们使用上面的代码打开油管页面然后打开VS Code调用Recorder。


调用Recorder

点击上图VS Code中Locator tab上这个小小的capture按钮启用Recorder。这个按钮比较隐蔽。如果没看到LOCATORS 这个tab,点击右上角的三个点勾选Locator。 将鼠标移动到搜索栏上,会自动高亮显示input。按住Ctrl+Click(鼠标右键单击)即可抓取 搜索框。 同样的方法 抓取**搜索按钮**,和下图右上角**Taylor Swift的链接**。
)

Youtube页



Recorder

每次抓取都会在Recorder中生成一个UI元素对应的locator,可以对其进行重命名。完成后点击Complete。

然后回到VS Code
复制代码

通过find_element函数传入对应locator定位到某个UI元素然后利用set_text方法将“Taylor Swift”写入搜索框。

下一行是相同的方法定位到搜索按钮,然后用click函数表示鼠标点击。TS表示搜索结果中taylor Swift的连接。

运行上面的code,进入霉霉的主页,我们采用相同的方法进入视频列表。



视频列表

在上图的列表中我们需要拿到每个视频的地址。 这个地址可以通过locator取得。 我们不可能给每个视频都抓取一个Locator,这里使用Clicknium Recorder一个非常强大的功能 Similar elements。点击下图的按钮后, 同样采用Ctrl+Click的方式,Clicknium就能自动识别的到类型的元素,生成一个locator。




因为视频列表是异步加载的, 我们需要使用wait_appear等待locator出现。因为使用similar elements抓取了多个视频,这个locator指向了多个视频所以使用find_elements方法。这个方法会返回一个UiElement的List。我们可以href从中获取到视频的相对路径,拼接上油管的地址就能得到完整的URL。

有了完整url,就可以使用Pytube下载视频了。 Pytube可以根据指定的参数下载不同分辨率的视频,需要注意高画质是video codec 和audio codec分开的。 具体可以参考Working with Streams and StreamQuery。 这里我们下载1080p的版本,下载路径可以修改SAVE_PATH。可是使用相同的方法实现视频上传。 反响好我就再写一篇。

下面是完整的代码:
复制代码

参考:

[Clicknium]

[Pytube]



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群