前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >只要30行代码!7步教会你Python爬取网页抖音热门视频

只要30行代码!7步教会你Python爬取网页抖音热门视频

作者头像
松鼠爱吃饼干
发布2020-09-15 15:54:46
2.8K0
发布2020-09-15 15:54:46
举报
文章被收录于专栏:Python分享Python分享

前言

抖音短视频相信大家都听过,也不陌生对吧!可以看到海量的短视频,涵盖了各大行业。个人觉得抖音有毒,刷着刷着根本停不下来,一看时间就是凌晨3、4点。今天带大家爬取抖音网页版的视频数据!一睹为快吧

本篇文章内容:

1、系统分析网页性质

2、正则提取数据(难点)

3、海量音频数据保存

环境介绍:

python 3.6 pycharm requests re

爬虫的一般思路

1、分析目标网页,确定爬取的url路径,headers参数

2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据

3、解析数据 -- 正则表达式

4、保存数据 -- 保存在目标文件夹中

步骤:

1、导入工具

代码语言:javascript
复制
base_url = 'http://douyin.bm8.com.cn/d_1.html'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

2、分析目标网页,确定爬取的url路径,headers参数

代码语言:javascript
复制
base_url = 'http://douyin.bm8.com.cn/d_1.html'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

3、发送请求 -- requests 模拟浏览器发送请求,获取响应数据

代码语言:javascript
复制
response = requests.get(url=base_url, headers=headers)
html_data = response.text

4、解析数据 -- 正则表达式

代码语言:javascript
复制
pattern = re.compile('onclick="open1\(\'(.*?)\',\'(.*?)\',\'\'\)')
result = pattern.findall(html_data)
print(result)

5、构建一个for循环

代码语言:javascript
复制
for page in range(8, 10):
    print('===================正在取第{}页数据================='.format(page))
    # 1、分析目标网页,确定爬取的url路径,headers参数
    base_url = 'http://douyin.bm8.com.cn/d_{}.html'.format(page)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

6、处理文件名非法字符

代码语言:javascript
复制
def change_title(title):
    pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]")  # '/ \ : * ? " < > |'
    new_title = re.sub(pattern, "_", title)  # 替换为下划线
    return new_title

7、保存数据 -- 保存在目标文件夹中

代码语言:javascript
复制
for title, url in result:
        # 请求抖音视频数据
        data = requests.get(url=url, headers=headers).content

        new_title = change_title(title)
        with open('videos\\' + new_title + '.mp4', mode='wb') as f:
            f.write(data)
            print('保存完成:', title)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本篇文章内容:
  • 环境介绍:
  • 爬虫的一般思路
  • 步骤:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档