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

如何提取页面企业简介区块所有href链接?Python代码运行问题求助

代码问题分析
  • 缺少请求头伪装,绝大多数网站会拦截无User-Agent标识的爬虫请求,返回错误页面或反爬验证页面,导致后续无法解析到目标内容
  • 无异常捕获逻辑,网络波动、页面不存在、请求超时等异常情况都会直接导致程序崩溃
  • 单独写的re、page1两行无实际作用,仅在Python交互式终端中会输出变量值,独立脚本运行时这两行没有任何效果
  • 当前find_all的筛选条件仅匹配指定class的a标签,无法提取页面内所有链接,和你描述的需求不符
  • 提取到的href属性多为相对路径,没有拼接域名生成可直接访问的完整URL,后续无法直接使用
  • 依赖lxml第三方解析器,若本地未安装该库会直接抛出解析错误,新手可优先使用Python内置的html.parser解析器
修正后可运行代码
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
# 若后续需要将结果导出为表格可保留pandas导入,否则可以删除
# import pandas as pd

# 基础参数配置
base_domain = "https://www.industrystock.com"
target_page = "https://www.industrystock.com/en/companies/Agriculture"
# 加请求头模拟浏览器访问,避免被反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
link_list = []

try:
    # 发送请求,加超时限制避免长时间无响应
    resp = requests.get(target_page, headers=headers, timeout=10)
    # 请求状态码非200时直接抛出异常,方便定位问题
    resp.raise_for_status()
    
    # 用内置html.parser解析,无需额外安装第三方依赖
    soup = BeautifulSoup(resp.text, "html.parser")
    
    # 提取所有a标签,若你只需要指定class的链接,替换为你原来的筛选条件即可
    all_a = soup.find_all("a")
    for tag_a in all_a:
        href = tag_a.get("href")
        # 过滤空的href属性
        if href:
            # 拼接相对路径为完整URL
            full_link = urljoin(base_domain, href)
            link_list.append(full_link)
    
    # 打印结果验证
    print(f"共提取到{len(link_list)}个链接")
    # 打印前10个链接确认内容是否正确
    print(link_list[:10])
    
except Exception as e:
    print(f"程序运行出错,错误信息:{e}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:57:00