Python爬虫工程师面试题,采集头条西瓜视频

使用工具

  1. Python 3.7.0
  2. requests库
  3. re库
  4. base64库

分析过程

确定视频资源下载地址

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

由于之前没有这方面的项目经历,在网上查找资料后,这篇文章给了我灵感(原来西瓜视频上的Url是经过Base64加密的),那么是如何确定西瓜视频上的Url是经过Base64加密的呢?

  1. 这个字符串仅有64个字符(A~Z a~z + / )以及后缀=组成
  2. 将目标字符串解密后再将解密字符串加密回去与原来的值做比较如果相同就是Base64
import requests
import re
from base64 import b64decode, b64encode

url = 'https://www.ixigua.com/i6704446868685849092'

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}

resp =requests.get(url=url, headers=headers)

ex = '''"main_url":"(.*?)"'''

def doCheck(source):
    if bytes(source, encoding='utf-8') == b64encode(b64decode(source)):
        return True
    return False

if doCheck(re.findall(ex, resp.text)[0]):
    print('该Url是Base64加密!!!')
else:
    print('该Url不是Base64加密!!!')

下载测试

import requests
import re
from base64 import b64decode, b64encode

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}

url = 'https://www.ixigua.com/i6704446868685849092'

resp =requests.get(url=url, headers=headers)

ex = '''"main_url":"(.*?)"'''

def doCheck(source):
    if bytes(source, encoding='utf-8') == b64encode(b64decode(source)):
        return True
    return False

def getVideoUrl(source):
    return b64decode(source).decode('utf-8')

source =re.findall(ex, resp.text)[0]


if doCheck(source):
    resp = requests.get(url=getVideoUrl(source), headers=headers)
    with open('./Video.mp4', 'wb') as fp:
        fp.write(resp.content)
else:
    print('该Url不是Base64加密!!!')

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值