Python 3.6.5使用urlopen下载网页内容失败求助(MacOS)
帮你解决Python urlopen无法下载网页的问题
嘿,我来帮你排查一下问题~先看代码里的明显错误,再聊聊系统层面可能的原因:
代码里的直接问题
网址没有用引号包裹:
你写的url = https://en.wikipedia.org/wiki/Main_Page是语法错误,Python会把网址当成未定义的变量名,必须把它放在引号里(单引号或双引号都行),改成:url = "https://en.wikipedia.org/wiki/Main_Page"文件操作未正确关闭:
你直接用open()打开文件后没有调用html_file.close(),虽然Python有时会自动处理,但可能导致内容没完全写入文件。推荐用with语句,它会自动帮你关闭文件,更安全:with open('download.html', 'w', encoding='UTF-8') as html_file: html_file.write(web_page_text)
修正后的完整代码
from urllib.request import urlopen # 注意给网址加引号 url = "https://en.wikipedia.org/wiki/Main_Page" try: web_page = urlopen(url) web_page_bytes = web_page.read() web_page_text = web_page_bytes.decode('UTF-8') # 使用with语句安全操作文件 with open('download.html', 'w', encoding='UTF-8') as html_file: html_file.write(web_page_text) print("网页下载成功啦!") except Exception as e: # 捕获并打印错误信息,方便排查 print(f"出错了:{e}")
系统/软件层面的排查方向
如果修正代码后还是不行,你可以试试这些:
- 检查网络连接:打开浏览器直接访问维基百科,看能不能正常加载,排除网络本身的问题。
- 代理设置:如果你的Mac用了代理(比如科学上网工具),可能会影响Python的网络请求。可以暂时关闭代理再试,或者在代码里配置代理(如果需要的话)。
- 防火墙/安全软件:有些Mac的安全软件或系统防火墙可能会阻止Python联网,你可以检查一下设置,给Python放行。
- Python版本:确保你用的是Python 3(因为
urllib.request是Python 3的模块),在终端输入python --version或者python3 --version确认。
内容的提问来源于stack exchange,提问作者SkinnyBetas
相关产品推荐
相关产品推荐

