Update 测绘站采集.py
This commit is contained in:
+11
-21
@@ -29,15 +29,7 @@ from bs4 import BeautifulSoup
|
|||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
from translate import Translator # 导入Translator类,用于文本翻译
|
from translate import Translator # 导入Translator类,用于文本翻译
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import time
|
|
||||||
import random
|
import random
|
||||||
import requests
|
|
||||||
import re
|
|
||||||
import os
|
|
||||||
import cv2
|
|
||||||
from datetime import datetime
|
|
||||||
from bs4 import BeautifulSoup
|
|
||||||
import base64
|
|
||||||
from fake_useragent import UserAgent # 需要先安装:pip install fake-useragent
|
from fake_useragent import UserAgent # 需要先安装:pip install fake-useragent
|
||||||
|
|
||||||
# 创建输出目录
|
# 创建输出目录
|
||||||
@@ -90,24 +82,22 @@ def validate_video(url, mcast):
|
|||||||
print(f"正在验证: {video_url}")
|
print(f"正在验证: {video_url}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 使用 FFmpeg 作为后端来打开视频流
|
# 发送请求,尝试下载 1 千字节的数据
|
||||||
cap = cv2.VideoCapture(video_url, cv2.CAP_FFMPEG)
|
response = requests.get(video_url, headers=get_random_header(), timeout=REQUEST_TIMEOUT, stream=True)
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
# 设置超时参数
|
content_length = 0
|
||||||
ret, frame = cap.read()
|
for chunk in response.iter_content(chunk_size=1024):
|
||||||
if not ret:
|
if chunk:
|
||||||
print(f"视频验证失败: 无法读取帧")
|
content_length += len(chunk)
|
||||||
return False
|
if content_length >= 1024:
|
||||||
|
break
|
||||||
# 检查视频流是否有效
|
return content_length >= 1024
|
||||||
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
|
|
||||||
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
|
||||||
cap.release()
|
|
||||||
return width > 0 and height > 0
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"视频验证异常: {str(e)}")
|
print(f"视频验证异常: {str(e)}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# 获取需要处理的文件列表
|
# 获取需要处理的文件列表
|
||||||
files = [f.split('.')[0] for f in os.listdir('rtp') if f.endswith('.txt')]
|
files = [f.split('.')[0] for f in os.listdir('rtp') if f.endswith('.txt')]
|
||||||
|
|||||||
Reference in New Issue
Block a user