HTML数据抓取(我认为)

HTML Data Scraping (I think)

本文关键字:数据 抓取 HTML      更新时间:2023-09-26

我目前正在为一个客户端做一些工作,这个客户端恰好是魔兽世界游戏的视频游戏组。

他们想在他们的网站上显示他们目前的评分。

分级显示在这里。

他们希望在他们的网站上显示"Oceanic"的号码和"US"的号码。

有没有人能告诉我一种方法,我可以让这些数字自动更新在网站上,如果他们改变?

谢谢!

您可以使用这个代码片段来废弃数据-假设PHP可以,因为您正在运行wordpress。我会将这些值保存在数据库/平行线/缓存中。

<?php
$data = file_get_contents('http://www.wowprogress.com/guild/us/caelestrasz/Crimson/rating.tier13_25');
$oceanic = explode('<dt>Oceanic: </dt>', $data);
$oceanic = substr($oceanic[1], 4, strpos($oceanic[1], '</dd>') - 4);
$us = explode('<dt>US: </dt>', $data);
$us = substr($us[1], 4, strpos($us[1], '</dd>') - 4);
echo 'Oceanic: ' . $oceanic . "<br />'n";
echo 'US: ' . $us . "<br />'n";

这很简单。我更喜欢使用simplehtmldom,但您也可以使用内置的php dom解析方法。

require 'simple_html_dom.php';
$html = file_get_html('http://www.wowprogress.com/guild/us/caelestrasz/Crimson/rating.tier13_25');
$xxx = $html->find('div.guildStats dl dd');
foreach($xxx as $k)
echo $k->plaintext."'n";

由于跨域安全,你不能用javascript这样做,如果你可以访问它,你将不得不获得你的信息服务器端

这是一个使用RegEx的解决方案。

<?php
$data = implode('', file('http://www.wowprogress.com/guild/us/caelestrasz/Crimson/rating.tier13_25'));
$pat_world = '/<span class="rank blue">('d+)<'/span>/';
$pat_us = '/<dt>US:'D+('d+)/';
preg_match($pat_world, $data, $world);
preg_match($pat_us, $data, $us);
echo $world[1];
echo "'n'n";
echo $us[1];

我知道每个人都反对用正则表达式来抓取网页,但我认为它在像这样的简单情况下工作得很好。