位置: 编程技术 - 正文

以视频爬取实例讲解Python爬虫神器Beautiful Soup用法(在线视频爬取工具)

编辑:rootadmin

推荐整理分享以视频爬取实例讲解Python爬虫神器Beautiful Soup用法(在线视频爬取工具),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:爬取视频代码,如何爬取视频资源,爬取视频犯法吗,以视频爬取实例的软件,爬取视频犯法吗,爬取视频代码,以视频爬取实例的软件,以视频爬取实例的软件,内容如对您有帮助,希望把文章链接给更多的朋友!

1.安装BeautifulSoup4easy_install安装方式,easy_install需要提前安装

pip安装方式,pip也需要提前安装.此外PyPi中还有一个名字是 BeautifulSoup 的包,那是 Beautiful Soup3 的发布版本.在这里不建议安装.

Debain或ubuntu安装方式

你也可以通过源码安装,下载BS4源码

2.小试牛刀

很简单,代码注释里面已经解释的很清楚了.BeautifulSoup提供了一个更简单灵活的方式,去分析网站源码,更快获取图片link.

3.爬取实例3.1基本的抓取技术在写一个爬虫脚本时,第一件事情就是手动观察要抓取的页面来确定数据如何定位。

首先,我们要看一看在 上的 PyCon 大会视频列表。检查这个页面的 HTML 源代码我们发现视频列表的结果差不多是长这样的:

那么第一个任务就是加载这个页面,然后抽取每个单独页面的链接,因为到 YouTube 视频的链接都在这些单独页面上。

使用requests来加载一个 web 页面是非常简单的:

就是它!在这个函数返回后就能从response.text中获得这个页面的 HTML 。

下一个任务是抽取每一个单独视频页面的链接。通过 BeautifulSoup 使用 CSS 选择器语法就能完成它,如果你是客户端开发者的话你可能对这会很熟悉。

为了获得这些链接,我们要使用一个选择器,它能抓取在每一个 id 为video-summary-data的<div>中所有的<a>元素。由于每个视频都有几个<a>元素,我们将只保留那些 URL 以/video开头的<a>元素,这些就是唯一的单独视频页面。实现上述标准的 CSS 选择器是div.video-summary-data a[href^=/video]。下面的代码片段通过 BeautifulSoup 使用这个选择器来获得指向视频页面的<a>元素:

因为我们真正关心的是这个链接本身而不是包含它的<a>元素,我们可以使用列表解析来改善上述代码。

links = [a.attrs.get('href') for a in soup.select('div.video-summary-data a[href^=/video]')]现在,我们已经有了一个包含所有链接的数组,这些链接指向了每个单独页面。

以视频爬取实例讲解Python爬虫神器Beautiful Soup用法(在线视频爬取工具)

下面这段脚本整理了目前我们提到的所有技术:

如果你运行上面这段脚本你将会获得一个满是 URL 的数组。现在我们需要去解析每个 URL 以获得更多关于每场 PyCon 会议的信息。

3.2抓取相连页面下一步是加载我们的 URL 数组中每一个页面。如果你想要看看这些页面长什么样的话,这儿是个样例: YouTube 的链接,侧边栏在嵌入视频的右下方。获取这些元素的代码展示在下方:

关于这个函数需要注意的一些事情:

从首页抓取的 URL 是相对路径,所以root_url需要加到前面。大会标题是从 id 为videobox的<div>里的<h3>元素中获得的。注意[0]是必须的,因为调用select()返回的是一个数组,即使只有一个匹配。演讲者的姓名和 YouTube 链接的获取方式与首页上的链接获取方式类似。现在就剩下从每个视频的 YouTube 页面抓取观看数了。接着上面的函数写下去其实是非常简单的。同样,我们也可以抓取 like 数和 dislike 数。

上述调用soup.select()函数,使用指定了 id 名字的选择器,采集到了视频的统计数据。但是元素的文本需要被处理一下才能变成数字。考虑观看数的例子,在 YouTube 上显示的是"1, views"。用一个空格分开(split)数字和文本后,只有第一部分是有用的。由于数字里有逗号,可以用正则表达式过滤掉任何不是数字的字符。

为了完成爬虫,下面的函数调用了之前提到的所有代码:

3.3并行处理上面到目前为止的脚本工作地很好,但是有一百多个视频它就要跑个一会儿了。事实上我们没做什么工作,大部分时间都浪费在了下载页面上,在这段时间脚本时被阻塞的。如果脚本能同时跑多个下载任务,可能就会更高效了,是吗?

回顾当时写一篇使用 Node.js 的爬虫文章的时候,并发性是伴随 JavaScript 的异步特性自带来的。使用 Python 也能做到,不过需要显示地指定一下。像这个例子,我将开启一个拥有8个可并行化进程的进程池。代码出人意料的简洁:

multiprocessing.Pool 类开启了8个工作进程等待分配任务运行。为什么是8个?这是我电脑上核数的两倍。当时实验不同大小的进程池时,我发现这是最佳的大小。小于8个使脚本跑的太慢,多于8个也不会让它更快。

调用pool.map()类似于调用常规的map(),它将会对第二个参数指定的迭代变量中的每个元素调用一次第一个参数指定的函数。最大的不同是,它将发送这些给进程池所拥有的进程运行,所以在这个例子中八个任务将会并行运行。

节省下来的时间是相当大的。在我的电脑上,第一个版本的脚本用了秒完成,然而进程池的版本做了同样的工作只用了秒!

3.4完成爬虫脚本我最终版本的爬虫脚本在获得数据后还做了更多的事情。

我添加了一个--sort命令行参数去指定一个排序标准,可以指定views,likes或者dislikes。脚本将会根据指定属性对结果数组进行递减排序。另一个参数,--max代表了要显示的结果数的个数,万一你只想看排名靠前的几条而已。最后,我还添加了一个--csv选项,为了可以轻松地将数据导到电子制表软件中,可以指定数据以 CSV 格式打印出来,而不是表对齐格式。

完整脚本显示在下方:

下方输出的是在我写完代码时前个观看数最多的会议:

编写Python爬虫抓取豆瓣电影TOP及用户头像的方法 抓取豆瓣电影TOP一、分析豆瓣top页面,构建程序结构1.首先打开网页

Python制作爬虫抓取美女图 作为一个新世纪有思想有文化有道德时刻准备着的?潘磕星嗄辏?谙衷谡庋?桓錾缁嶂校?奶畚掖舐?サ种拼蟀俣鹊那疤嵯拢?皇露?仙贤?涔?Y看看斗鱼翻翻美女

Python使用Beautiful Soup包编写爬虫时的一些关键点 1.善于利用soup节点的parent属性比如对于已经得到了如下html代码:tdstyle="padding-left:0"width="%"labelNovember/labelinputtype="Hidden"id="cboMonth1"name="cboMonth1"value=""/td

标签: 在线视频爬取工具

本文链接地址:https://www.jiuchutong.com/biancheng/381288.html 转载请保留说明!

上一篇:使用Python的urllib和urllib2模块制作爬虫的实例教程(python urljoin)

下一篇:编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法(用python写爬虫)

  • 纳税申报的具体要求
  • 税务安全组件初审流程
  • 企业所得税纳税义务人
  • 公司购进一台不需要安装的设备设备价款为700万元
  • 简易计税的增值税要计提附加税吗
  • 为什么征收增值税体现了量益原则
  • 会计分录多借多贷是什么意思
  • 合并后税务局的全称是什么
  • 金税盘处于报税期是什么意思
  • 土地增值税计税依据
  • 债务重组双方如何进行会计处理
  • 小规模纳税人购买原材料会计分录
  • 增值税申报和开票不一致怎么做账
  • 住房公积金证书插上为什么登不进去
  • 车辆一次性入费用会计分录
  • 工资未发放是否可以仲裁
  • 土地转让增值税计税依据
  • 建筑企业甲供材税收筹划
  • 营改增后如何对建安企业进行税务稽查
  • 无形资产软件摊销年限的最新规定2021
  • 资产负债表损益表现金流量表
  • 事业单位固定资产报废处置流程
  • 个人独资企业简易注销流程及材料
  • 中药饮片加成率超的原因
  • 代开专票交的城建税怎么申报附加税
  • 工资薪金所得税前扣除项目标准
  • 没有购销合同怎么申报印花税
  • 住宿费和差旅费
  • 计提本月应付的租金
  • win11文件类型怎么改
  • 360压缩怎么压缩到指定大小
  • windows11怎么显示我的电脑
  • 企业收到的
  • 公司收入没有进项税额
  • PHP:session_regenerate_id()的用法_Session函数
  • 天猫魔合
  • 合并报表抵消分录未分配利润怎么算
  • 另一种答案
  • 哈利法塔里面有什么
  • 残保金计入税金及附加合理吗
  • php redis常用命令
  • php的中文名
  • 定额发票累计领取怎么算
  • Vue3中的pinia使用(收藏版)
  • expdp/impdp oracle数据泵导入导出
  • 普通发票还要交增值税吗
  • 处置长期股权投资产生的投资收益是什么
  • 没有什么盈利的公司应该进吗
  • python 规划求解
  • 材料暂估成本的账务处理
  • 控股子公司注销母公司账务处理实例
  • 在SQL Server中使用存储过程的优点包括
  • 收到税务局退回的个税手续费怎么入账
  • 企业经营的利润目标长期化
  • 营业外收入主要包括( )
  • 小微企业员工人数限制
  • 消费税是在哪个环节缴纳
  • 应收账款期初余额在借方还是贷方
  • 结账后发现期间损益结转的凭证做错
  • 给别人的借款怎么记账
  • 公司如何注销营业执照
  • sql查询和遍历数据
  • vmware虚拟机无法打开内核设备怎么办
  • 如何使用搜狗拼音输入法
  • win8系统win10有什么区别
  • 在windows中如何设置行间距
  • win10系统命令大全
  • 利用python中的scikit-learn对疫情数据挖掘
  • python中tab
  • javascript运行环境有哪些
  • jquery简单吗
  • 税务逾期未申报是什么意思
  • 纳税信用等级在哪里查
  • 国家税务总局监控的重点税源纳税人的标准是
  • 增值税税控开票软件密码不知道了怎么办
  • 南京税务局几点下班?
  • 税务局纪检组为税收工作纪律保障
  • 消费税是单一环节征税吗
  • 国家税务总局令第52号 ,税务稽查案件办理程序规定
  • 联通怎么在网上营业厅更改套餐
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设