快手批量获取真实地址python

Python代码

import requests
from bs4 import BeautifulSoup
import re
import xlrd
import xlwt
 
class KSNoMark():
    #  忽略警告代码
    requests.packages.urllib3.disable_warnings()
 
    def GetShareUrl(self):
        try:
            # 打开Excel表格
            wb = xlrd.open_workbook('分享链接.xlsx')
            # 获取当前正在显示的sheet
            sheet = wb.sheet_by_name('url')
 
            urls = [(sheet.cell_value(i, 0))for i in range(1, sheet.nrows)]
 
            while '' in urls:
                urls.remove('')
        except FileNotFoundError:
            print("分享链接.xlsx文件不存在")
        return urls
 
    def GetRealUrl(self):
 
        headers = {
            'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
            'Cookie': 'did=web_e4581e2dbe33aae5eac3d9fdf8b12566;',
        }
 
        urls = self.GetShareUrl()
 
        # 创建一个workbook设置编码
        workbook = xlwt.Workbook(encoding='utf-8')
        # 创建一个worksheet
        worksheet = workbook.add_sheet('realLinks')
        row_num = 0
 
        for url in urls:
            worksheet.write(row_num, 0, url)
            response = requests.get(url, headers=headers, allow_redirects=False,verify=False)
            share_url = response.headers['Location']
 
            share_response = requests.get(share_url,headers=headers,verify=False).text
 
            # 通过BeautifulSoup提取无水印播放地址字符串
            soup = BeautifulSoup(share_response,'lxml')
            noWaterMarkVideo = soup.find(attrs={'id': 'hide-pagedata'}).attrs['data-pagedata']
 
            try:
                # 正则处理字符串获取真实地址
                pattern = re.compile('\"srcNoMark\":"(.*?)"},',re.S)
                real_url = re.findall(pattern,noWaterMarkVideo)[0]
                worksheet.write(row_num, 1, real_url)
            except Exception as e:
                print(e)
                pass
 
            row_num += 1
 
            # 保存
            workbook.save('快手视频真实地址.xls')
            continue
 
if __name__ == '__main__':
    KSNoMark = KSNoMark()
    KSNoMark.GetRealUrl()
    print("快手真实地址采集完成")

说明

表格名称:分享链接.xlsx

sheet名称:url

第一列第一行:分享链接

第一列 第2-n行:需要解析的分享视频地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于飞SEO

如果对你有帮助,就是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值