PHP简单HTML DOM-如何通过TD中的特定值查找表?
我的桌子看起来像PHP简单HTML DOM-如何通过TD中的特定值查找表?,php,html,web-scraping,simple-html-dom,Php,Html,Web Scraping,Simple Html Dom,我的桌子看起来像 <table width="100%" border="0" cellpadding="2" cellspacing="0"> <tr> <td><strong>NPA/Area Code:</strong></td> <td><a href="/area-code/area-code-229.asp">229</a></td> <td><s
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr>
<td><strong>NPA/Area Code:</strong></td>
<td><a href="/area-code/area-code-229.asp">229</a></td>
<td><strong>NXX Use Type:</strong></td>
<td>LANDLINE</td>
</tr>
<tr>
<td><strong>NXX/Prefix:</strong></td>
<td>428</td>
<td><strong>NXX Intro Version:</strong></td>
<td>2000-10-31</td>
</tr>
</table>
NPA/区号:
NXX使用类型:
固定电话
NXX/前缀:
428
NXX简介版本:
2000-10-31
有太多没有id
或class
的表,所以很难找到我想要的表。我正在考虑使用td
中的文本来选择表
。可能吗?因为我想从中提取数据的站点是这样编码的。我不确定如何使用简单的HTML DOM操作代码,选择此表,然后选择td
中的文本。我知道如何提取td
中的值,所以问题是如何选择我想要的这个特定表。我想收集数据的链接是
感谢您的帮助。
谢谢。可能会有帮助
基本上,您可以得到如下第n个元素:
$table = $html->find('table', 3);
只要表的数量没有改变,您就可以扩展它来做您想做的事情。我建议您为该表创建一个标记,因为您试图获取下面的表
AreaCode/前缀229-428详细信息
,然后使用该标记,然后指向您想要的下一个同级表。例如:
$html = file_get_html('http://www.area-codes.com/exchange/exchange.asp?npa=229&nxx=428');
$table = null;
$needle = 'AreaCode/Prefix 229-428 Details';
foreach($html->find('h3') as $marker) {
if($marker->innertext == $needle) {
$table = $marker->next_sibling();
break;
}
}
$data = array();
if($table) {
foreach($table->children() as $k => $tr) {
foreach($tr->children as $td) {
$data[$k][] = $td->innertext;
}
}
}
echo '<pre>';
print_r($data);
$html=file\u get\u html('http://www.area-codes.com/exchange/exchange.asp?npa=229&nxx=428');
$table=null;
$Pineder='区域代码/前缀229-428详细信息';
foreach($html->find('h3')作为$marker){
如果($marker->innertext==$pinder){
$table=$marker->next_sibling();
打破
}
}
$data=array();
若有($表){
foreach($table->children()作为$k=>$tr){
foreach($tr->children as$td){
$data[$k][]=$td->innertext;
}
}
}
回声';
打印(数据);
您到底想解析什么?jQuery允许您这样做:$('table:has(td:contains(“LANDLINE”)))
-simple不能这样做,但是有嵌套的表。所以伯爵搞砸了,太棒了!谢谢,这正是我要找的,但我没有能力将其翻译成代码:)@Eshwar是的,因为你不能直接指出这么多的表,因为它们太多(而且很复杂),所以这种方式更好。我很高兴这有帮助是的,再次感谢,这教会了我关于记号笔的知识,我很高兴也很感谢:)