Используйте PHP для извлечения простых числовых данных с веб-сайта и отображения в виде HTML - PullRequest
1 голос
/ 14 ноября 2010

Понятия не имею.

Как извлечь числовые данные% справа по ссылке ниже и отобразить их на моем веб-сайте без ежедневного обновления? Может ли простой PHP + HTML решить мою проблему?

http://www.mrrebates.com/merchants/all_merchants.asp

В то же время, как мне автоматически дать гиперссылку извлеченному числовому% и отобразить его как ссылку для этого розничного продавца? например,
1 Stop Florists ------------------------- 8% (эти 8% должны отображаться в виде гиперссылки для этого магазина, к сожалению, я слишком нов, чтобы иметь более 1 гиперссылки)
в то же время интегрируя мой реферальный идентификатор (показанный ниже) на эту 8% гиперссылку mrrebates.com?refid=420149

Ответы [ 3 ]

2 голосов
/ 14 ноября 2010

Вы можете использовать curl, чтобы загрузить страницу, а затем использовать регулярные выражения, чтобы проанализировать ее и распечатать в любой форме. Вот некоторый код PHP для этого:

<?php
system("curl -v http://www.mrrebates.com/merchants/all_merchants.asp > /tmp/x.txt");
$data = file_get_contents("/tmp/x.txt");

preg_match_all('/<td><a href="([^"]*)".*?<b>([^<]*)<\/b>.*?<td class="r">([^<]*)<\/td>/',
               $data, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
  $site_name = $match[2];
  $url = "http://www.mrrebates.com/{$match[1]}";
  $percent = $match[3];

  print "<a href='$url'>$site_name</a> ";
  print "<a href='$url'>$percent</a> <br/>";
}

Это выведет список ссылок каждый раз, когда вы обновляете страницу. Я понятия не имею, как работают реферальные коды на этом сайте, но я думаю, что это будет довольно легко привязать его к переменной $ url.

Одно предостережение: при каждом обновлении страницы сначала нужно будет загружать другой сайт и анализировать его, чтобы он работал медленно. Вы можете выделить системный ("curl ...") вызов в отдельный файл и делать это только раз в час или около того, если хотите, чтобы он шел быстрее. Удачи.

0 голосов
/ 14 ноября 2010

Вероятно, это лучше сделать с помощью javascript (или, по крайней мере, я обычно решал подобные проблемы на стороне клиента), особенно с библиотекой jQuery.

Вы хотите загрузить данные на этой странице с помощью

$.get("www.mrrebates.com/merchants/allmerchants.asp");

и проанализируйте оставшиеся данные, чтобы получить необходимую информацию (это должно быть достаточно просто для jQuery, если есть более полные парсеры DOM).Я не уверен, что вы знакомы до сих пор, но, вероятно, было бы много, чтобы описать здесь.Я вижу, что% info находится в td с классом "r"

У вас есть только один реферальный ID или один для каждого участника?это, очевидно, будет иметь значение

0 голосов
/ 14 ноября 2010

Синтаксический анализ XHTML лучше всего оставить парсеру DOM . Тем не менее, этот тип операции очистки в любом случае является грязным делом. Я предложу другое решение и позволю вам собрать его вместе.

Просмотр исходного кода HTML и выяснение начала и конца таблицы. Похоже, вы хотите это:

<table border="0" width="95%" cellpadding="3" cellspacing="0" style="border: 1px dotted #808080;">

       <tr>

        <td bgcolor="#FFCC00"><b>Store Name</b></td>

        <td width="75" align="center" bgcolor="#FFCC00"><b>Coupons</b></td>

        <td width="75" align="right" bgcolor="#FFCC00"><b>Rebate</b></td>

       </tr>

А затем найдите следующее вхождение </table>.

Теперь ваш контент находится в строках ... ищите <tr и </tr>.

Я дам вам понять, как разбить это оттуда.

Теперь, фактически, сделайте всю эту работу ... есть множество функций, которые могут вам помочь. Начните с strpos .

...