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

使用ABN Lookup与Simple HTML DOM提取ABN企业名称遇问题

解决ABN Lookup页面企业名称爬取问题

你的问题核心是Simple HTML DOM的选择器语法和文本提取方式用错了,以下是具体修正方案:

问题拆解

  1. 选择器语法错误:Simple HTML DOM不支持tbody(2)这种写法,定位第二个<tbody>元素,要改用tbody:nth-child(2),或者直接遍历所有tbody元素取第二个(索引从0开始,对应数组下标1)。
  2. 文本提取方式错误:Simple HTML DOM没有>text这种选择器语法,获取元素文本需要调用元素的plaintext属性,该属性会自动去除HTML标签,返回纯文本内容。

修正后的代码示例

// 引入Simple HTML DOM库
include('simple_html_dom.php');

// 目标页面URL
$targetUrl = 'https://abr.business.gov.au/ABN/View?id=12928238010';
// 获取页面HTML内容
$html = file_get_html($targetUrl);

// 方法1:用:nth-child选择器直接定位目标元素
$nameElement = $html->find('div#content div form div table tbody:nth-child(2) td:nth-child(1) a', 0);

// 方法2:遍历tbody数组取第二个元素(备选方案,避免:nth-child的兼容问题)
// $tbodies = $html->find('div#content div form div table tbody');
// $nameElement = isset($tbodies[1]) ? $tbodies[1]->find('td:nth-child(1) a', 0) : null;

// 提取并输出企业名称
if ($nameElement) {
    $companyName = $nameElement->plaintext;
    echo '企业名称:' . $companyName;
} else {
    echo '未找到目标企业名称元素';
}

额外提示

  • 目标网站的HTML结构可能会更新,定期检查选择器是否还能匹配到元素。
  • 不要高频次请求该网站,避免触发反爬机制导致IP被限制访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:40:15