Python网页爬取求助:提取IP摄像头HTTP页面内的视频文件名
解决IP摄像头视频文件名提取问题
嘿,很高兴你开启Python网页爬取的第一步!针对你从IP摄像头的简单HTML里提取视频文件名的需求,我整理了一套可行的方案:
先修正代码的小问题
你现有代码里的urlib是拼写错误,正确的库名是urllib,而且我们需要用到它的request模块来获取网页内容。
完整实现代码
下面是能直接运行的代码,我加了详细注释帮你理解每一步:
# 导入需要的库 import bs4 as bs import urllib.request # 替换成你的IP摄像头的HTTP访问地址,比如http://192.168.1.100/video_list.html camera_url = "你的摄像头HTML页面地址" try: # 获取网页内容 response = urllib.request.urlopen(camera_url) html_content = response.read() # 用BeautifulSoup解析HTML soup = bs.BeautifulSoup(html_content, 'html.parser') # 提取body标签里的所有文本 body_text = soup.body.get_text(strip=False) # 保留换行,方便分割 # 分割文本,提取所有.mov结尾的文件名 # 这里假设文件名是按换行或空格分隔的,根据实际情况调整分割方式 file_names = [line.strip() for line in body_text.splitlines() if line.strip().endswith('.mov')] # 打印提取到的文件名 print("提取到的视频文件名:") for name in file_names: print(name) except Exception as e: print(f"出现错误:{e}")
关键步骤说明
- 获取网页内容:用
urllib.request.urlopen访问摄像头的HTTP服务器,拿到HTML源码。 - 解析HTML:借助BeautifulSoup快速定位到body标签,提取里面的全部文本。
- 筛选文件名:因为你的文件名都是
.mov结尾的,所以我们通过分割文本后筛选出符合这个特征的内容,确保只拿到视频文件名。
如果摄像头的HTML里文件名是用其他方式分隔的(比如空格),你可以把splitlines()改成split()来适配。
内容的提问来源于stack exchange,提问作者Alec M
相关产品推荐
相关产品推荐

