我正在尝试从以下网站获取信息:http: //www.borsabcn.es/esp/aspx/Empresas/Empresas.aspx
如您所见,该网站列出了在巴塞罗那证券交易所上市的公司。但它仅按字母顺序列出第一页。我正在使用 PHP 来自动从所有页面获取信息。例如,如果您单击顶部显示 的链接ERC - HUL
,那么您将转到包含更多以字母开头的公司名称的页面:ERC。
我对 APSX 没有太多经验,但我在调查后可以看到,当您单击该链接时,会触发以下 JS 函数:
var GoPag = function (inicio) {
document.forms.aspnetForm['ctl00_Contenido_GoPag'].value = inicio;
document.forms.aspnetForm.submit();
}
这基本上只是提交带有隐藏输入字段(id="ctl00_Contenido_GoPag"
name="ctl00$Contenido$GoPag"
)的表单,其值包含我们要显示的页码。默认值为 0,值为ERC - HUL
3。
我正在尝试获取与第 3 页对应的页面,我有以下 PHP 代码,这是我在研究了一下后创建的:
$postdata = http_build_query(
array(
'ctl00$Contenido$GoPag' => '3'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/xhtml+xm',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://www.borsabcn.es/esp/aspx/Empresas/Empresas.aspx', false, $context);
echo $result;
但是,这总是返回默认页面 (0) 的结果,该页面列出了以字母 A 开头的公司。似乎发布的数据没有被正确解释。
我在正确的轨道上吗?有谁知道我可以做些什么来获取我正在寻找的数据?
谢谢!