如何从另一个页面获取Html元素

时间:2020-06-06 作者:R.M. Reza

我正在建立一个网站,提供用户可以下载的Windows软件。我想检索另一页上的文本。

Software Review Page (e.g: domain.com/obs-studio/):

<ul class="software_facts">
    <li>
        <div class="dorat">
            <div class="labelimg">[thumbnail]</div> 
            <div class="wp-block-button is-style-squared">
                <form name="myform1" action="/download-page/" method="post"><input name="bode" type="hidden" value="https://github.com/obsproject/obs-studio/releases/download/25.0.8/OBS-Studio-25.0.8-Full-Installer-x64.exe"></form>
                <div class="wp-block-button__link has-background has-vivid-green-cyan-background-color" onclick="document.myform1.submit()">Download (24 MB)</div>
            </div>
        </div>
    </li>
    <li class="bg">
        <p class="labelnil">Nilai:</p>
        [kkratings]
    </li>
    <li>
        <p class="label">Version:</p>
        <p itemprop="softwareVersion">25.0.8</p>
    </li>
    <li class="bg">
        <p class="label">Publisher:</p>
        <p itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization"><span itemprop="name">Jim</span></p>
    </li>
    <li>
        <p class="label">Sistem Operasi:</p>
        <p itemprop="operatingSystem">Windows</p>
    </li>
    <li class="bg">
        <p class="label">Kategori Aplikasi:</p>
        <p itemprop="applicationCategory">Multimedia</p>
    </li>
    <li>
        <p class="label">Licence:</p>
        <p>Freeware</p>
    </li>
</ul>
用户被定向到域。com/download page/page单击“下载(24MB)”按钮时。

Download Page (e.g. domain.com/download-page/):

<p>OBS Studio was developed by <strong>Jim</strong>, the latest version is <strong>25.0.8</strong>.</p>
我想要“Jim“和”25.0.8“根据用户希望在上一页下载的软件信息更改的部分。

我使用Wordpress,如何使用Javascript或PHP实现这一点。有人能帮我吗,提前谢谢。

1 个回复
SO网友:Adam Bernot

你说的是刮取,这通常是一种不可靠的获取数据的方法,尤其是如果你不控制另一个页面的话。

然而,在PHP中,一旦您使用以下内容检索下载页面wp_remote_get, 可以使用正则表达式提取所需的片段preg_match_all.

$response = wp_remote_get( \'domain.com/download-page/\' );
$page = wp_remote_retrieve_body( $response );
$regexp = \'/developed by <strong>(.*?)<\\/strong>.*?version is <strong>(.*?)<\\/strong>/\';
preg_match( $regexp, $page, $matches );
echo $matches[1]; // Jim
echo $matches[2]; // 25.0.8
基本上(.*?) parts捕获模式该部分中出现的内容,并将其放入一个名为$matches. 请注意,对下载页面上显示开发人员和版本的方式的任何更改都可能会打破这种模式,因此请小心。

相关推荐

我在WordPress单页php编码中遇到错误

我在WordPress single page中遇到错误当移动网站时,此页面在另一台服务器中正确加载其他服务器出现错误致命错误:未捕获错误:语法错误,意外的“endwhile”(T\\u endwhile)在/单个产品中。php第149行下面的php代码,如果有人能帮我解决,我会非常感谢,提前谢谢,我已经尝试解决了无法解决的问题,下面是我的代码<?php /** * The template for displaying all single product *