这个项目旨在从某电影网站 抓取最新电影的下载链接和电影名称,并将其保存到本地的 JSON 文件中。项目实现了以下主要功能:
网页内容获取:
通过发送 HTTP 请求,从指定的 URL 获取网页源码。
处理服务器可能返回的压缩内容,自动识别并解压缩 gzip 和 deflate 编码的数据。
编码处理:
使用多种编码方式解码网页内容,优先尝试 GB2312 编码,如果失败则使用 chardet 检测实际编码,最后尝试其他常见编码(如 utf-8、gbk、big5)。
确保能够正确解码网页内容,避免出现乱码问题。
数据解析:
使用正则表达式匹配网页源码中的特定内容,提取电影的下载链接和名称。
利用 urljoin 拼接基 URL 和相对 URL,生成完整的电影下载链接。
数据存储:
将解析出的电影下载链接和名称保存到 JSON 文件中,便于后续查看和使用。
生成的 JSON 文件格式化良好,支持中文字符显示。
错误处理:
在获取和解析网页内容过程中添加异常处理,确保程序在发生错误时能够输出有用的错误信息,便于调试和改进。
项目实施细节
模块使用:
re: 用于正则表达式匹配,精准提取电影下载链接和名称。
urllib.request: 发送 HTTP 请求,获取网页源码。
chardet: 自动检测网页内容编码,提升解码成功率。
zlib: 解压缩压缩网页内容。
json: 将解析结果保存为 JSON 文件。
urllib.parse: 拼接基 URL 和相对 URL。
编码处理:
优先尝试常见编码 GB2312,自动检测编码并尝试其他常见编码,确保解码成功。
正则表达式:
通过正则表达式匹配 <a> 标签中的下载链接和电影名称,并提取这些信息。
项目成果
JSON 文件输出:
成功抓取并保存了最新电影的下载链接和名称,生成的 JSON 文件结构清晰,便于查看和使用。
输出文件 movie2.json,包含最新电影的下载链接和名称。
扩展性:
项目可以扩展以抓取其他网页内容或处理更多不同编码的网页。
提供了良好的异常处理机制,便于在实际使用中应对各种网络和编码问题。