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

如何通过Web Scraping从网站中提取Href?Python网页抓取获取参展商网址问题求助

解决Web Scraping中无法获取参展商网址的问题

嘿,我一眼就看出问题所在啦!你当前的代码是在定位目标<div>元素,但href属性根本不是这个div的属性——它是div内部<a>标签的属性,难怪拿不到结果呢。

问题出在哪

你写的这段代码:

for i in soup.findAll( "div",attrs={"class":"m-exhibitor-entry__item__body__contacts__additional__website"}): 
    print(i['href'])

这里的i是找到的div元素,而div本身没有href属性,href是嵌套在div里的<a>标签才有的属性,所以直接访问i['href']肯定会出错或者返回空。

修正后的代码方案

我给你两种可行的解决方式:

方式1:先找div,再在div内定位a标签

这种方式更贴合你原来的思路,先定位到目标div,再从中提取内部的a标签:

# 推荐用find_all(小写),和findAll功能一致,更符合Python命名规范
for div in soup.find_all("div", attrs={"class":"m-exhibitor-entry__item__body__contacts__additional__website"}):
    # 在当前div下查找a标签
    website_link = div.find("a")
    # 加个判断,避免某些div没有a标签导致报错
    if website_link:
        print(website_link['href'])

方式2:用CSS选择器直接定位a标签

这种方式更简洁,直接通过父div的class筛选出对应的a标签:

# 使用CSS选择器,直接定位目标div下的a标签
for a_tag in soup.select("div.m-exhibitor-entry__item__body__contacts__additional__website a"):
    print(a_tag['href'])

额外小提示

  • findAll是BeautifulSoup的旧写法,现在更推荐使用find_all(小写),两者功能完全相同;
  • 加上if website_link:的判断很重要,能避免页面中出现没有a标签的目标div时,程序抛出AttributeError或KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:29:08