0

我是 Android 应用程序的发布者。

我的网站需要自动检索 Android 应用程序数据,但 Google Play 不支持 iTunes Store 等 API 系统。因此,我需要创建一个有助于检索 Android 数据的 PHP 命令。我需要获取标题、应用图片、描述和电子邮件地址。

首先,当我知道 Google Play URL 地址时,我试图获取电子邮件地址。这是我做的例子。这是华尔街日报应用程序。

华尔街日报 Android 应用 URL - https://play.google.com/store/apps/details?id=wsj.reader_sp

<a href="mailto:mobilereader@wsj.com" rel="nofollow">Email Developer</a>

当我点击该网站时,我可以找到上面的 HTML 代码。

$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);

$parsing = new SimpleXmlElement($string); 
$attrs = (array)$parsing->attributes(); 
$mail = str_replace('mailto:','',$attrs['href']); 
if(filter_var($mail,FILTER_VALIATE_MAIL))
{
   echo $mail;
}

结果应该是“mobilereader@wsj.com”,但它失败了。你能看出问题吗?谢谢你。

4

2 回答 2

3

您可以使用 PHP DOMDocument来执行此操作,例如:

$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);

$dom = new DOMDocument();
$dom->loadHTML($string);
$anchors = $dom->getElementsByTagName('a');

foreach ($anchors as $anchor) {
    if ($anchor->nodeValue === 'Email Developer') {
        $email = str_replace('mailto:', '', $anchor->getAttribute('href'));

        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            echo $email;
        }
    }
}

您提供的 url 的示例输出为:mobilereader@wsj.com

于 2013-01-02T03:17:51.127 回答
1

使用正则表达式匹配电子邮件地址。此外,您在过滤器名称中有错字。

尝试这个:

$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);

preg_match('/<a href="mailto\:(.*)" rel="nofollow">Email Developer<\/a>/s', $string, $matches);
if (count($matches) > 0 && filter_var($matches[1], FILTER_VALIDATE_MAIL))
{
   echo $matches[1];
}
于 2013-01-02T03:12:40.113 回答