python爬虫爬取某网站视频的示例代码


Posted in Python onFebruary 20, 2021

把获取到的下载视频的url存放在数组中(也可写入文件中),通过调用迅雷接口,进行自动下载。(请先下载迅雷,并在其设置中心的下载管理中设置为一键下载)

实现代码如下:

from bs4 import BeautifulSoup
import requests
import os,re,time
import urllib3
from win32com.client import Dispatch
class DownloadVideo:
  def __init__(self):
    self.r = requests.session()
    self.url=self.get_url()
    self.download_urla=[]
    self.download_urlb=[]
    self.url_set=["%s/shipin/list-短视频.html"%self.url]
  #获取最新网址
  def get_url(self):
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    a=self.r.get('https://www.k58.com',verify=False)
    b=a.url
    return b
  #几页内容的网址
  def url_set1(self,n):
    if n==2:
      url="%s/shipin/list-短视频-2.html"%self.url
      self.url_set.append(url)
    elif n>=3:
      m=n+1
      for i in range(2,m):
        url="%s/shipin/list-短视频-%d.html"%(self.url,i)
        self.url_set.append(url)
    else:
      pass
  #分别加载每一个页内容的网址
  def download_url1(self):
    for j in self.url_set:
      urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
      r=self.r.get(j,verify=False)
      sp1=r.content
      soup = BeautifulSoup(sp1, "html.parser")
      sp2 = soup.find_all(class_="shown")
      for i in sp2:
        url1=re.findall('<a href="(.*?)" rel="external nofollow" ',str(i))
        u=self.url+url1[0]
        self.download_urla.append(u)
  #分别获取各个视频的下载链接
  def download_url2(self):
    for i in self.download_urla:
      urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
      r=self.r.get(i,verify=False)
      sp1=r.content
      soup = BeautifulSoup(sp1, "html.parser")
      sp2 = soup.find_all(class_="form-control input-sm copy_btn app_disable")
      for j in sp2:
        url2=j["data-clipboard-text"]
        self.download_urlb.append(url2)
        #将链接写入txt中
        # self.write_txt(url2)
  #迅雷下载
  def thunder_download(self):
    try:
      thunder = Dispatch("ThunderAgent.Agent64.1")
      for i in self.download_urlb:
        thunder.AddTask(i)
        thunder.CommitTasks()
        time.sleep(2)
    except:
      print("请下载迅雷,并在其设置中心的下载管理中设置为一键下载")

  def mkdir(self,path):
    folder = os.path.exists(path)
    if not folder:
      os.makedirs(path)
    else:
      pass
  def write_txt(self,c):
    self.mkdir(r"D:\AAAAA")
    file_name=time.strftime('%Y%m%d_%H%M%S.txt')
    with open(r"D:\AAAAA\%s"%file_name,'a') as f:
      f.write(c+"\n")

if __name__ == '__main__':
  d=DownloadVideo()
  #数字表示几页的内容
  d.url_set1(5)
  d.download_url1()
  d.download_url2()
  d.thunder_download()

到此这篇关于python爬虫爬取某网站视频的示例代码的文章就介绍到这了,更多相关python爬虫爬取网站视频内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python and、or以及and-or语法总结
Apr 14 Python
Python实现的rsa加密算法详解
Jan 24 Python
Python3.5 创建文件的简单实例
Apr 26 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
python http基本验证方法
Dec 26 Python
Python实现最常见加密方式详解
Jul 13 Python
python内置函数sorted()用法深入分析
Oct 08 Python
在Tensorflow中查看权重的实现
Jan 24 Python
django queryset相加和筛选教程
May 18 Python
Python常用模块函数代码汇总解析
Aug 31 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
Python os库常用操作代码汇总
Nov 03 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 #Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 #Python
Keras保存模型并载入模型继续训练的实现
Feb 20 #Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 #Python
tensorflow2.0教程之Keras快速入门
Feb 20 #Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 #Python
Python3爬虫RedisDump的安装步骤
Feb 20 #Python
You might like
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
php实现的SESSION类
2014/12/02 PHP
PHP积分兑换接口实例
2015/02/09 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
python3实现磁盘空间监控
2018/06/21 Python
python使用turtle绘制分形树
2018/06/22 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
Python多进程编程常用方法解析
2020/03/26 Python
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
授权委托书
2014/07/31 职场文书
考试作弊检讨书
2014/10/21 职场文书
安全先进班组材料
2014/12/26 职场文书
师范生见习自我总结
2015/06/23 职场文书
Python实现滑雪小游戏
2021/09/25 Python