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

使用Beautiful Soup爬取网页时返回脚本代码而非HTML的问题求助

解决购物网站爬取返回脚本内容的问题

问题说明

  • 爬取URL1(https://www.auchan.pt/pt/alimentacao/alimentacao-bebe-e-crianca/papa-e-farinha-lactea/farinha-cerelac-lactea-500g/70511.html)时,能正常获取页面完整HTML并解析
  • 爬取URL2(https://www.continente.pt/produto/papa-infantil-farinha-lactea-6m-cerelac-2004388.html)时,返回内容为脚本代码,导致后续解析元素失败,但浏览器打开该网页显示正常

你的基础爬取代码:

import requests
from bs4 import BeautifulSoup

response = requests.get(url)

soup = BeautifulSoup(response.content, "html.parser")

# ... 后续解析代码 ...

解决方法

1. 添加请求头模拟浏览器访问

多数网站会通过User-Agent识别请求来源,直接用requests.get发起的请求会被判定为非浏览器请求。添加浏览器请求头即可绕过基础验证:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
response = requests.get(url, headers=headers)

可以从自己浏览器的开发者工具中复制真实的User-Agent,匹配当前使用的浏览器版本,效果更好。

2. 处理JavaScript动态渲染

如果网站内容是通过JavaScript动态生成的,requests只能获取页面初始的静态HTML,无法拿到JS加载后的内容。这种情况需要用工具模拟浏览器加载页面:

使用Selenium示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup

# 配置无头模式,不弹出浏览器窗口
options = Options()
options.add_argument('--headless=new')
driver = webdriver.Chrome(options=options)

driver.get(url)
# 获取浏览器渲染完成后的页面源码
soup = BeautifulSoup(driver.page_source, "html.parser")

# 执行你的解析逻辑...

driver.quit()  # 关闭浏览器实例

使用前需要安装Selenium库,以及对应浏览器的驱动(比如ChromeDriver)。

3. 保持会话携带Cookie

部分网站会通过Cookie验证用户会话,第一次请求会设置Cookie,后续请求需要携带才能获取完整内容。用requests.Session()可以自动管理会话Cookie:

import requests
from bs4 import BeautifulSoup

session = requests.Session()
session.headers.update(headers)  # 复用之前的headers

response = session.get(url)
soup = BeautifulSoup(response.content, "html.parser")

4. 控制请求频率

短时间内频繁请求会触发网站的反爬限制,添加请求间隔可以降低被封禁的概率:

import time

# 每次请求前等待2秒
time.sleep(2)
response = requests.get(url, headers=headers)

注意事项

  • 遵守目标网站的robots.txt规则,避免过度爬取给服务器造成压力
  • 若遇到验证码、IP封禁等更严格的反爬机制,优先考虑使用网站提供的官方API(如果有),或调整爬取策略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:06:17