You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Beautiful Soup返回空HTML?新手爬取网页遇问题求助

解决BeautifulSoup爬取返回空字符串的问题

嘿,别担心,新手刚接触爬虫遇到这种情况太正常啦!我帮你分析下问题所在:

你当前的代码用urllib.request.urlopen直接发起请求,很多网站会识别出这是Python程序的默认请求(没有带浏览器标识的User-Agent),会直接拦截你的请求,所以你拿到的是空的响应内容。

解决方案:添加请求头伪装成浏览器请求

我们只需要给请求加上浏览器的User-Agent标识,让网站以为是真实用户在访问,修改后的代码如下:

from urllib.request import urlopen, Request
from bs4 import BeautifulSoup as soup

url = 'https://www.ccna8.com/ccna4-v6-0-final-exam-full-100-2017/'
# 模拟Chrome浏览器的请求头,你也可以换成其他浏览器的标识
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 创建带请求头的Request对象
req = Request(url, headers=headers)
uClient = urlopen(req)
page_html = uClient.read()
uClient.close()

page_soup = soup(page_html, "lxml")
# 用prettify()格式化输出,更易读
print(page_soup.prettify())

额外提示

如果添加请求头后还是返回空内容,那可能网站的内容是通过JavaScript动态渲染的,这时候你需要用selenium这类工具模拟浏览器加载页面。不过先试试上面的方法,绝大多数新手遇到的这类问题都是请求头不规范导致的。

内容的提问来源于stack exchange,提问作者Time4Boom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:13:41