时间戳转换器

抓取页面然后计算某个类的 div 数并回显该数字

日期:2023-05-09     浏览:80    
【中文标题】抓取页面然后计算某个类的 div 数并回显该数字【英文标题】:Scrape page then count the number of divs of a certain class and echo that number 【发布时间】:2016-04-14 23:46:02 【问题描述】:

大家好,似乎在这里碰壁了,我正在尝试创建一个简单的脚本,通过抓取页面来计算当前运行此地图的服务器数量,计算类“.row ark_srv1”的 div,然后回显那个号码。

问题:脚本返回 0

到目前为止,这是我设法拍到的:

<?php

$html_string = file_get_contents('toparkservers.com/1/search/?term=Umassoura'); 

function getElementsByClassName($elements, $className) 
    $matches = array();
    foreach($elements as $element) 
        if (!$element->hasAttribute('class')) 
            continue;
        
        $classes = preg_split('/\s+/', $element->getAttribute('class'));
        if ( ! in_array($className, $classes)) 
            continue;
        
        $matches[] = $element;
    
    return $matches;


$dom = new DOMDocument;
$dom->loadHTML($html_string);
$divs = getElementsByClassName($dom->getElementsByTagName('.row ark_srv1'), '.row ark_srv1');
$length = $divs->length;

echo count($divs);

?>

【问题讨论】:

$dom-&gt;getElementsByTagName('.row ark_srv1') - 这不应该是getElementsByClassName('.row ark_srv1')吗? .row 是一个班级,是吗? div 会是“标签名称”吗? 【参考方案1】:

作为替代方案,为什么不使用xpath 按类名获取元素:

$html_string = file_get_contents('http://toparkservers.com/1/search/?term=Umassoura'); 
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html_string);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$class = 'row ark_srv1';
$elements = $xpath->query("//*[contains(@class, '$class')]");
echo 'elements found: ', $elements->length;

【讨论】:

好多了。我正在制定相同的示例,但陷入了无效的 HTML :) @RobbieAverill 打败了你:p【参考方案2】:

当我解析 HTML 时,我喜欢使用 XPath.

$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$divs= $xpath->query("//div[@class='className']");
echo count($divs);

【讨论】:

【参考方案3】:

您可能想使用QueryPath:

<?php

print html5qp('http://toparkservers.com/1/search/?term=Umassoura', '.row.ark_srv1')->length;
// 9

【讨论】:

相关文章

vue+springboot上传oss阿里云并回显到前端页面(代码片段)

{vue+Springboot上传图片到oss并回显最近需要用到文件上传了,找了好多博客,最后总结了一下,记录一下操作。1、前端代码<!--文件上传弹出框--><el-buttontype="primary"round@click="uploadvisible=true&#...}

如何使用jquery计算某个类的隐藏div的数量(代码片段)

{...个链接,允许用户删除一个字段,该字段设置隐藏字段,然后用slideUp();隐藏字段。我想知道用户希望提交的屏幕上是否有5个字段。这是我目前正在使用的-这只是计算具有该类名的所有div。if($(".classname").length<5)}

图片上传并回显后端篇(代码片段)

{图片上传并回显后端篇我们先看一下效果继上一篇的图片上传和回显,我们来实战一下图片上传的整个过程,今天我们将打通前后端,我们来真实的了解一下,我们上传的文件,是以什么样的形式上传到服务器,难道也是一张图...}

从数据库中请求并回显一个浮点数[重复]

{】从数据库中请求并回显一个浮点数[重复]【英文标题】:requestandechoafloatnumberfromdatabase[duplicate]【发布时间】:2014-08-2013:19:49【问题描述】:这是在MySQL数据库中显示浮点数的正确方法吗?if($a=="balance")$querys="SELECTbalanceFROMusersWHER...}

springboot实现多图片上传并回显,涨姿势了~(代码片段)

{...个商户注册的后台功能,其中需要商户上传多张图片并回显。由于之前没做过这方面的东西,此篇文章用以记录一些知识点,以便后续查看。上传Controller的代码非常简单,由于用了SpringMVC}

springboot实现多图片上传并回显,涨姿势了~(代码片段)

{...个商户注册的后台功能,其中需要商户上传多张图片并回显。由于之前没做过这方面的东西,此篇文章用以记录一些知识点,以便后续查看。上传Controller的代码}

具有多个类的 Scrapy 抓取 div?

{】具有多个类的Scrapy抓取div?【英文标题】:Scrapygrabdivwithmultipleclasses?【发布时间】:2015-03-2407:02:35【问题描述】:我正在尝试使用类获取div:“产品”。问题是,一些具有“产品”类的div也具有“产品小”类。所以当我使用xpa...}

PHP:如何在我的页面上显示文本文件的内容?

{】PHP:如何在我的页面上显示文本文件的内容?【英文标题】:PHP:HowdoIdisplaythecontentsofatextfileonmypage?【发布时间】:2011-06-1220:49:42【问题描述】:我的网络服务器(本地)上有一个.txt文件,并希望通过PHP回显显示页面中的内容...}

sh在目录中查找并回显一个yaml格式的字符串,其中包含可以放入prometheus配置的规则文件列表(代码片段)

{}

如何在bash中回显包含未转义的美元符号的变量

{...的全部内容?例如调用脚本:./script.sh"test1$test2"然后,如果我想使用该参数,它会被“截断”,如下}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号