Python爬取qq看点视频

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import re
from lxml import etree
import requests
import time
from tqdm import tqdm
import os
from urllib.request import urlopen
 
def download_from_url(url, dst):
    """
    @param: url to download file
    @param: dst place to put the file
    :return: bool
    """
    # 获取文件长度
    try:
        file_size = int(urlopen(url).info().get('Content-Length', -1))
    except Exception as e:
        print(e)
        print("错误,访问url: %s 异常" % url)
        return False
 
    # print("file_size",file_size)
    # 判断本地文件存在时
    if os.path.exists(dst):
        # 获取文件大小
        first_byte = os.path.getsize(dst)
    else:
        # 初始大小为0
        first_byte = 0
 
    # 判断大小一致,表示本地文件存在
    if first_byte >= file_size:
        print("文件已经存在,无需下载")
        return file_size
 
 
    header = {"Range": "bytes=%s-%s" % (first_byte, file_size)}
 
    pbar = tqdm(
        total=file_size, initial=first_byte,
        unit='B', unit_scale=True, desc=url.split('/')[-1])
 
    # 访问url进行下载
    req = requests.get(url, headers=header, stream=True)
    try:
        with(open(dst, 'ab')) as f:
            for chunk in req.iter_content(chunk_size=1024):
                if chunk:
                    f.write(chunk)
                    pbar.update(1024)
    except Exception as e:
        print(e)
        return False
 
    pbar.close()
    return True
 
def DownloadFile(url, name):
    """
    下载文件
    :param url:
    :param name:
    :return:
    """
    try:
        resp = requests.get(url=url, stream=True)
        content_size = int(resp.headers['Content-Length']) / 1024
        with open(name, "wb") as f:
            print("package total size is:", content_size, 'k,start...')
            for data in tqdm(iterable=resp.iter_content(1024), total=content_size, unit='k', desc=name):
                f.write(data)
 
        print("%s 下载成功"%url)
        return True
    except Exception as e:
        print(e)
        print("%s 下载失败" % url)
        return False

 
if __name__=='__main__':
	# 头部
	headers = {
	    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
	}
	download_from_url('https://shortv.cdp.qq.com/szg_4973_50001_0b6bz4aagaaajuappnkwkfqvdt6daphqaa2a.f612.mp4?dis_k=bf2737aba3e9527a1443fb1897aa9f6e&dis_t=1634261339&bid=kandian&network=2&seqid=1634261339949674', 'lol.mp4')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要使用Python爬取微信公众号的视频,可以按照以下步骤进行操作: 1. 安装必要的库:使用pip安装requests、beautifulsoup4和lxml库。 2. 模拟登录微信公众平台:使用requests库发送登录请求,获取登录所需的参数和Cookie,并保存下来。 3. 获取文章列表:使用requests库发送请求,获取公众号文章列表的HTML页面。 4. 解析文章列表:使用beautifulsoup4和lxml库解析HTML页面,提取出文章标题和链接。 5. 进入文章页面:使用requests库发送请求,进入文章页面。 6. 解析文章页面:使用beautifulsoup4和lxml库解析文章页面,找到视频所在的标签。 7. 下载视频:使用requests库下载视频文件。 以下是一个简单的示例代码,供您参考: ```python import requests from bs4 import BeautifulSoup # 模拟登录微信公众平台 def login(): login_url = 'https://***.weixin.qq.com/cgi-bin/bizlogin?action=login' # 发送登录请求,获取登录所需的参数和Cookie # ... # 获取文章列表 def get_article_list(): article_list_url = 'https://***.weixin.qq.com/cgi-bin/appmsg?...' # 发送请求,获取公众号文章列表的HTML页面 # ... # 解析HTML页面,提取出文章标题和链接 # ... # 进入文章页面 def enter_article(article_url): # 发送请求,进入文章页面 # ... # 解析文章页面,找到视频所在的标签 # ... # 下载视频 def download_video(video_url): # 使用requests库下载视频文件 # ... # 主函数 def main(): # 登录微信公众平台 login() # 获取文章列表 article_list = get_article_list() for article in article_list: # 进入文章页面 article_url = article['url'] enter_article(article_url) # 下载视频 video_url = get_video_url() download_video(video_url) if __name__ == '__main__': main() ``` 请注意,这只是一个示例代码,实际操作可能会有一些差异。不过,通过以上步骤,您应该能够基本实现使用Python爬取微信公众号的视频。祝您成功!如果有任何问题,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值