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

使用requests模块无法从静态网页抓取不同公司名称

解决方法

首先,先确认请求是否正常返回页面内容:在res = s.get(link)后添加print(res.status_code),如果返回200说明请求成功,否则可能需要调整请求头或处理反爬限制。

其次,CSS选择器错误是导致无法获取内容的核心原因。实际页面中,公司名称所在的h3标签class是company-name而非company_info,正确的选择器应为 h3.company-name a。

修正后的代码如下:

import requests
from bs4 import BeautifulSoup

link = 'https://clutch.co/agencies/digital-marketing'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
    'Accept-Language': 'en-US,en;q=0.9'  # 可选,添加语言头避免内容展示异常
}

with requests.Session() as s:
    s.headers.update(headers)
    res = s.get(link)
    print(res.status_code)  # 确认请求状态是否正常
    soup = BeautifulSoup(res.text,"lxml")
    # 使用修正后的选择器提取公司名称
    for item in soup.select("h3.company-name a"):
        print(item.text.strip())

如果修正后仍无法获取内容,可能网站存在基础反爬机制,可以尝试添加Referer头,或者先访问网站首页获取Cookies后再请求目标页面,但从静态页面的属性来看,修正选择器即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:05:31