最近想做一些自己的项目,需要网上采集一些数据,以前都是用火车头采集的,感觉很不灵活,于是今天就花了一些时间学下python

展示下今天的成果,做了两个小实战

一个是抖音去水印

另外一个是爬取B站上的视频弹幕,用结巴分词,再用词云生成一张图片

请忽略变量命名 变量命名随便取的

抖音去水印

[Python] 纯文本查看 复制代码

import requests

import re

import json

def download_page(url, pc=True):

if pc == True:

ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'

else:

ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'

headers = {

'User-Agent': ua

}

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

return res

if __name__ == '__main__':

# https://v.douyin.com/JyPHShN/

url = input('输入抖音视频地址:')

# 获取真实地址

res1 = download_page(url)

patten = re.compile('/video/(.*?)/')

# https://www.iesdouyin.com/share/video/6881151874846723339/?region=CN&mid=6881152095287479053&u_code=imbie9bd&titleType=title×tamp=1602169029&app=aweme&utm_campaign=client_share&utm_medium=ios&tt_from=copy&utm_source=copy

# /vodeo/ 后面那串数字就是item_ids号 6881151874846723339 通过正则获取

item_ids = (patten.findall(res1.url))[0]

# 获取视频相关数据

res2 = download_page(f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={item_ids}')

res2_text = json.loads(res2.text)

info = res2_text['item_list'][0]

old_addr = info['video']['play_addr']['url_list'][0]

new_addr = old_addr.replace('playwm', 'play')

# 通过手机UA获取无水印视频地址

res3 = download_page(new_addr, False)

new_addr = res3.url

douyin_info = {

'aweme_id': info['aweme_id'],

'title': info['desc'],

'cover': info['video']['cover']['url_list'][0],

'play_addr': new_addr

}

print(douyin_info)

爬取弹幕

[Python] 纯文本查看 复制代码

import requests

import json

import re

# 下载页面

def download_page(url):

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'

}

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

return res

# 根据dvid获取cid

def get_cid(dvid):

'''

获取cid

:param dvid: https://api.bilibili.com/x/player/pagelist?bvid=BV1KK4y1h76a&jsonp=jsonp

:return: cid

'''

url = f'https://api.bilibili.com/x/player/pagelist?bvid={dvid}&jsonp=jsonp'

res = download_page(url)

return json.loads(res.text)['data'][0]['cid']

# 根据cid请求弹幕

def get_msg(cid):

'''

:param cid: https://api.bilibili.com/x/v1/dm/list.so?oid=241955049

:return:

'''

url = f'https://api.bilibili.com/x/v1/dm/list.so?oid={cid}'

res = download_page(url)

res.xml = res.content.decode('utf-8')

patten = re.compile('(.*?)')

dan_mu_list = patten.findall(res.xml)

return dan_mu_list

# 保存弹幕到txt文件

def save_to_file(dan_mu_list, filename):

with open(filename, mode='w', encoding='utf-8') as f:

for i in dan_mu_list:

f.write(i)

f.write('\n')

# 爬取弹幕主程序

def main(dvid):

cid = get_cid(dvid)

dan_mu_list = get_msg(cid)

save_to_file(dan_mu_list, f'{dvid}.txt')

if __name__ == '__main__':

# dvid = 'BV1aE411d7Rp'

dvid = input('输入B站视频后缀:')

main(dvid)

print('弹幕爬取成功')

词云生成图片

[Python] 纯文本查看 复制代码

import jieba

import wordcloud

# 读取弹幕文件

def rand_file(filename):

with open(filename, mode='r', encoding='utf-8') as f:

dan_mu = f.read()

return dan_mu

# 结巴分词 生成词云

def jieba_cut(str, imgname):

cut_list = jieba.lcut(str)

word = ' '.join(cut_list)

w = wordcloud.WordCloud(font_path='msyh.ttc', background_color='white', width=600, height=400)

w.generate(word)

w.to_file(f'{imgname}.png')

if __name__ == '__main__':

# dvid = 'BV1aE411d7Rp'

dvid = input('输入B站视频后缀:')

str = rand_file(f'{dvid}.txt')

jieba_cut(str, dvid)

print('词云图生成完毕')

生成的图片效果 ,字幕出现的次数越多,字体就会越大,感觉挺有意思的

python一天学费多少_自学python一天的小项目实战相关推荐

  1. 学python需要记笔记吗_自学python需要做什么笔记

    python3.4学习笔记 3.x和2.x的区别,持续更新 python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) impo ...

  2. python一直循环怎么写_自学Python,写一个挨打的游戏代码来初识While循环

    自学Python的第11天. 旋转~跳跃~,我~闭着眼! 学完循环, 沐浴着while的光芒,闲来无事和同事一起扯皮, 我说:"编程语言好神奇, 一个小小的循环,竟然在生活中也可以找到原理和 ...

  3. 自学python能干什么知乎_自学python能干什么

    自学python能干什么? 1,比如可以做web应用开发 在国内,豆瓣一开始就使用Python作为web开发基础语言,知乎的整个架构也是基于Python语言,这使得web开发这块在国内发展的很不错. ...

  4. python能力写进简历_自学 Python,用 django 它写了小贴吧,投简历都没有回应,是简历还是能力问题?...

    4月底的时候写的回答,现在来做个更新. 答主在5月中的时候找到工作,但从投简历到面试这个过程真的很艰辛. 由于我非科班,投的简历很多企业收到了也看了,但就是没回音.所幸自己坚持投,最后面试了6,7家, ...

  5. python后端开发技术论坛_自学 Python后端开发 到什么程度可以找工作?

    前两天,在群里收到一个群友(强哥)跳槽成功的消息.真心为其感到高兴.为了找到一个更好的平台,为了拿到更理想的薪酬.他在面试前期做了相当多的准备(机会永远是留给有准备的人,这一点值得学习),写了很多关于 ...

  6. 学python编程好就业吗_自学Python编程开发靠谱吗 就业前景怎么样

    人工智能行业学习Python编程到底有多么重要,新人在学习Python的时候改如何选择,就业方向有哪些?想要了解这些,现在我们今天就来看看Python的主要开发领域以及每个岗位对应的薪资. Pytho ...

  7. python分析微博数据中心_未明学院:量化金融项目实战,成为掌握数据分析技能的复合型人才!...

    原标题:未明学院:量化金融项目实战,成为掌握数据分析技能的复合型人才! 金融科技(FinTech)的风口下,想进入核心岗位找到自己的机会,在这个风口中起飞,却不懂数据和编程?你正在失去机会-- 1. ...

  8. python编程的条件语句_自学Python编程【第五节】if条件语句

    我们已经能让程序程序判断我们输入的值了,但这程序还是有点呆,不管怎样都要把话说三遍.因为到目前为止,我们的程序都是按照顺序从上到下一行接一行地执行.有同学发来问题了:怎么能让它根据我们输入的结果来选择 ...

  9. python交流群教学视频_自学 Python,视频教程和代码一看就懂,动手就废,应该这么学...

    ​ 一.代码量太少了,看得多做得少,导致一做就错. 每一个测试工程师必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时 ...

最新文章

  1. jmeter吞吐量图形显示_Jmeter系列(43)- 详解 Jmeter 图形化 HTML 压测报告之 Charts 模块...
  2. 数学之美——统计语言模型
  3. JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)
  4. Highmaps网页图表教程之Highmaps第一个实例与图表构成
  5. 论文笔记:MobileNet v2
  6. 计划策略的配置参数(2)
  7. windows无法打开所需的文件C:\Sources\install.wim。
  8. 学python需要什么基础-0基础学Python 需要些什么?
  9. [转载] python 运算符重载有什么用_Python运算符重载用法实例分析
  10. 不会日语也能在日本点菜 | 通用篇
  11. Spark 中 map 与 flatMap 的区别
  12. 面向对象chapter2
  13. 二叉树常见算法总结(java)
  14. Bug人生---初看windows核心编程有感
  15. NLog文章系列——入门教程(转)
  16. 项目管理软件-禅道-内网部署
  17. 嵌入式开发常用到的在线工具
  18. Linux安装cuda10.2
  19. 支付宝当面付打shang系统源码分享
  20. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)

热门文章

  1. 旅游网-去哪儿网景点评论爬取
  2. Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队
  3. ACS 中PEAP的认证
  4. 【python】parser.add_argument后面为什么要加-和--?
  5. 学临床专业和计算机哪个好,大学里“炙手可热”的专业,未来10年也不会被淘汰,发展前景更好...
  6. gnuplot小功能
  7. 在WPS表格里制作连接到openGauss的实时刷新报表
  8. 微信小程序文本、图片内容违规信息校验
  9. MinIO集群怎么接入Prometheus监控?(上)
  10. win7电脑设置自动关机