python有趣小項目
需要的庫:
- itchat
- requests
- re
項目步驟:
- 獲取某音的鏈接
- 用reqests.get()函數獲取鏈接的網頁內容並返回
- 用re正則表達式提取網頁當中的視頻鏈接
- 發現某音視頻鏈接當中/playwm/爲有水印視頻,而/play/爲無水印視頻
- 去掉鏈接當中的‘wm’,並返回去掉後的網址
- itchat接收網址併發送鏈接給微信好友
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/31 16:03
# @Author : Cxk
import itchat
from itchat.content import *
import requests
import re
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}
def win_html_data(html_url):
"""
爬取整個網頁內容
:param html_url:
:return:
"""
response = requests.get(html_url, headers=headers)
response.encoding = 'utf-8'
# 獲取網頁內容並返回整個網頁
html_content = response.text
return html_content
def get_vido_url(html_datas):
# 提取視頻連接
video_player_url = re.findall('playAddr: "(.*?)"',html_datas)[0]
# 將playwm中的wm除去變成無水印視頻連接 水印:watermark
video_url = video_player_url.replace('wm','')
# 返回處理後的無水印視頻下載連接
return video_url
def get_url(chuli_url):
# 接收抖音複製下來的連接並處理掉無用的字,提取出視頻連接
pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
url = re.findall(pattern,chuli_url)
html_url=''
# 將提取出的視頻連接轉爲字符串
for i in url:
html_url = i
# 訪問連接並獲取到網頁內容
html_datas =win_html_data(html_url)
# 從網頁內容中提取視頻無水印連接並返回
video_url=get_vido_url(html_datas)
return video_url
@itchat.msg_register('Text')
def text_reply(msg):
"""類似qq上的自動回覆"""
if not msg['FromUserName']==myUserName:
return get_url(msg['Text'])
if __name__=='__main__':
itchat.auto_login(hotReload=True)
myUserName=itchat.get_friends(update=True)[0]["UserName"]
itchat.run()