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

Python网页爬虫无法抓取目标站点公司名称字段问题求助

公司名称爬虫提取解决方案

原有代码错误原因

  • soup.find_all("a href")写法不符合BeautifulSoup API规范:要查找带href属性的a标签,正确写法是soup.find_all("a", href=True),但即使修正也拿不到目标内容,因为该站点的高亮公司数据是JS动态渲染生成的,静态HTML响应中不存在对应内容。
  • soup.find_all('alt')写法错误:alt是img标签的属性而非独立标签,要查找带alt属性的元素,正确写法是soup.find_all(attrs={"alt": True})。

可行批量提取方案

方案1:直接调用后端数据接口(效率最高)

打开浏览器F12开发者工具,切换到「网络」标签后刷新页面,筛选XHR/JSON类型的请求,找到返回公司列表数据的后端接口,直接请求接口解析JSON提取即可,示例代码如下:

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36',
    'Accept': 'application/json'
}
# 替换为你抓到的实际返回公司列表的接口地址
resp = requests.get("替换为实际接口URL", verify=False, headers=headers)
data = resp.json()
# 遍历JSON结构提取公司名称,字段名根据实际接口返回调整
for company in data:
    print(company.get("name"))

方案2:动态渲染页面后解析HTML

如果找不到对应接口,可以用Selenium/Playwright等工具模拟浏览器加载完整页面后再解析:

from selenium import webdriver
from bs4 import BeautifulSoup
import time

# 需提前安装对应版本的ChromeDriver
driver = webdriver.Chrome()
driver.get("https://www.hispanicmeetings.org")
# 等待页面动态加载完成,可根据实际情况调整等待时长,也可以用显式等待优化
time.sleep(3)
# 获取渲染完成的完整HTML
soup = BeautifulSoup(driver.page_source, "html.parser")
# 用浏览器元素检查器定位公司名称对应的标签和类名,替换下方参数即可
company_items = soup.find_all("标签名", class_="对应类名")
for item in company_items:
    print(item.get_text(strip=True))
driver.quit()

注意事项

  • 抓取前请先核查网站的robots.txt规则,确认目标内容允许爬虫抓取,避免违规。
  • 控制请求频率,避免对站点服务器造成过大压力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 15:57:04