从另一个网站的 html 表中检索一行?
Posted
技术标签:
【中文标题】从另一个网站的 html 表中检索一行?【英文标题】:Retrieving a single line from a html table from another website? 【发布时间】:2014-08-18 01:37:20 【问题描述】:我正在尝试学习 curl 的用法,但我还不完全了解它是如何工作的。如何使用 curl(或其他函数)访问表的一个(顶部)数据条目。到目前为止,我只能检索整个网站。我怎样才能只回显整个表格,特别是第一个条目。我的代码是:
<?php
$ch = curl_init("http://www.w3schools.com/html/html_tables.asp");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
【问题讨论】:
php.net/manual/en/class.domdocument.php 【参考方案1】:使用 curl 是一个好的开始,但它还不够,正如 hanky 建议的那样,您还需要使用 DOMDocument
并且还可以包含 DOMXpath
。
示例代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.w3schools.com/html/html_tables.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
libxml_use_internal_errors(true);
$html = curl_exec($ch); // the whole document (in string) goes in here
$dom = new DOMDocument();
$dom->loadHTML($html); // load it
libxml_clear_errors();
$xpath = new DOMXpath($dom);
// point it to the particular table
// table with a class named 'reference', second row (first data), get the td
$table_row = $xpath->query('//table[@class="reference"]/tr[2]/td');
foreach($table_row as $td)
echo $td->nodeValue . ' ';
应该输出:
Jill Smith 50
【讨论】:
我如何以相同的格式回显它,意思是吉尔在左边,史密斯在中间,50 在同一行的右边? @user3517904 哦,好吧,省略<br/>
,或者用' '
(空格)替换它
@user3517904 确定没问题!以上是关于从另一个网站的 html 表中检索一行?的主要内容,如果未能解决你的问题,请参考以下文章
如何从另一个表中检索并再次将其输入到 laravel 中的另一个表中?
如何从AWS Lambda检索数据并将其显示在AWS S3托管的静态网站上?