如何让Python逐行读取URL后缀并检测网站错误?
解决Python网站数据错误检测脚本的问题
你的原脚本存在几个关键问题:
with open后的for循环缺少冒号,存在语法错误- 函数里直接使用文件对象
numbers拼接URL,而非每行的后缀内容 - 未处理每行的换行符,会导致URL格式错误
- 未定义核心的
checkErr检测函数,也没有调用业务逻辑函数
以下是修正并完善后的完整脚本:
import requests def checkErr(url): # 实现错误检测逻辑,示例包含HTTP状态码和页面内容异常检测 try: response = requests.get(url, timeout=10) # 检查HTTP状态码是否正常 if response.status_code != 200: return f"❌ 错误: HTTP状态码 {response.status_code} | URL: {url}" # 可根据需求添加自定义内容检测,比如检查页面是否包含错误标识 if "Error" in response.text or "404" in response.text: return f"❌ 错误: 页面内容异常 | URL: {url}" return f"✅ 正常 | URL: {url}" except requests.exceptions.RequestException as e: return f"⚠️ 请求失败: {str(e)} | URL: {url}" def main(): # 读取txt文件中的URL后缀 with open('numbers.txt', 'r', encoding='utf-8') as numbers: for index, line in enumerate(numbers, start=1): # 去除每行的换行符和前后空白字符 suffix = line.strip() if not suffix: # 跳过空行 continue url = f"http://www.url.com/{suffix}" print(f"正在处理第 {index} 个地址: {url}") result = checkErr(url) print(result) print("-" * 50) # 分隔线,优化结果可读性 if __name__ == "__main__": main()
关键修正点说明:
- 添加
requests库依赖(需先执行pip install requests安装),用于发送HTTP请求 - 实现
checkErr函数,包含异常捕获、状态码检测和内容错误判断,可根据实际需求修改检测逻辑 - 使用
strip()处理每行内容,避免换行符导致的URL格式错误 - 用
main函数整合业务逻辑,通过if __name__ == "__main__"触发执行 - 添加空行判断,避免处理无效空内容
- 增加索引和分隔线,让输出结果更清晰
使用说明:
- 执行
pip install requests安装依赖库 - 将
numbers.txt放在脚本同目录下,确保每行一个URL后缀 - 运行脚本,即可依次检测每个拼接后的URL
内容的提问来源于stack exchange,提问作者Lew2234
相关产品推荐
相关产品推荐

