我必须从此链接中提取数据:http://bit.ly/l1rF5x
我想要做的是,我想要提取<a>
标记下属性rel="bookmark"
的所有p标记。我唯一的要求是只应解析此标题下的<p>
个标记,并保留原样。例如,在我给你的这个页面中,应该解析标题为“IIFT问题论文2006”的所有<p>
标签。
答案 0 :(得分:0)
由于您尚未提供有关要用于提取此信息的语言/环境的任何信息,因此我已经使用jQuery一起破解了某些内容。
(已更新)您可以在此处查看此操作:JS Fiddle。
如果您想使用PHP,我建议simplehtmldom
以下是使用simplehtmldom的示例:
$url = 'http://school-listing.mba4india.com/page/7/';
$html = file_get_html($url);
$data = array();
// Find all anchors with the desired rel attribute
foreach ($html->find('a[rel="bookmark"]') as $a) {
$h4 = $a->parent(); // Get the anchors parent (in this case an h4)
// We're assuming the next sibling is a p tag here - should test for this here
$p = $h4->next_sibling();
$content = '';
// Iterate over all following p tags, until we run out of siblings or find one
// that isn't a p tag
while ($p) {
$content .= (string) $p;
if ($p->next_sibling() && $p->next_sibling()->tag == 'p') {
$p = $p->next_sibling();
} else {
break;
}
}
$data[] = array('h4' => $h4, 'content' => $content);
}
$br = '<br/>';
foreach ($data as $datum) {
echo $datum['h4'] . $br . $datum['content'];
echo $br.$br;
}
有关详情,请参阅Simplehtmldom Documentation。
答案 1 :(得分:0)
您可以尝试使用以下内容:
$(function(){
var results= '';
$('a[rel="bookmark"] p').each(function(i,e){
results += $(e).html() + "\n";
});
alert(results);
});
将使用所需内容提醒可变结果。 示例:http://jsfiddle.net/eGmWw/1/