Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações amigo!
Quero fazer um parse de um site e diminuir os valores dos campos em 20% do original. Já fiz isso usando o DOMXPath no php (graças a uma dica de um usuário em outra pergunta). Mas me deparei com 2 problemas, o site que estou a modificar é o https://br.sportingbet.com
Já fiz o parser e usei proxy pra exibir o site em:
http://cassiano.streamrocha.com/sport/browse.php?u=https%3A%2F%2Fbr.sportingbet.com%2F&b=0&f=norefer
Coloquei todos os valores para 1.00 para mim testar, mas obtive um problema, o valor não é recuperado pelo ajax, e quando entro em outro menu. por exemplo entrar no link:
futebol -> Jogos com apostas ao vivo - segunda feira.
Os dados não são alterados pela função que fiz, olhando o código vi que ele recebe esses dados por MVC:
<div class="processing"> </div>
<div class="coupon-events">
<input name="groupKey" type="hidden" value="ETG_NextFewHours_0_0" />
<input name="isAutoLoading" type="hidden" value="True" />
<input name="hasInplayEvents" type="hidden" value="True" />
</div>
</div>
</div>
<div id="couponTemplate-params" style="display:none">
<input id="displayCouponUrl" value="/services/CouponTemplate.mvc/GetCoupon"/>
<input id="action" value="EVENTCLASSCOUPON" />
<input id="sportIds" value="102" />
<input id="marketTypeId" value="" />
<input id="eventId" value="" />
<input id="bookId" value=""/>
<input id="eventClassId" value="574588" />
<input id="sportId" value="102" />
<input id="oddsFormat" value="EU" />
</div>
</div>
Ou seja, ele acessa um link e obtém os jogos, mas como eu posso alterar os valores vindo do mvc se o mesmo não está no documento html em questão? Alguém me dá um exemplo de como posso fazer isso? Pra quem quiser ver o exemplo acima, ele está na linha 1928.Esto usando DOM para diminuir os valores em 20%:
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
//Lista de spans filhos de div"isOffered"->a
//So lista as divs que contenham a class 'pricetext'
$nodeList = $xpath->query("*/div[@id='isOffered']/a/span[contains(concat(' ', @class, ' '), ' priceText ')]");
foreach ($nodeList as $node) {
if ($node instanceof \DOMElement) {
// Le o valor do span e transforma num inteiro
$value = (float) $node->nodeValue;
// Altera o valor do span
$node->nodeValue = $value * 0.8;
var_dump($node->nodeValue);
}
}
//salva as alterações feitas ao documenthtml
//e guarda na variavel newHtml
$newHtml = $doc->saveHtml();
Só que ele só captura da página inicial, pois lá existe os campos dos valores em html na página mesmo, já nos links mais importante ele usa este primeiro código e os valores não se alteram.Como eu alteraria os valores retornado pelo:
/services/CouponTemplate.mvc/GetCouponLembrando que colocando isto na URL ele não funciona:
https://br.sportingbet.com/services/CouponTemplate.mvc/GetCoupon?couponaAction=EVENTCLASSCOUPON&sportIds=102&eventClassId=574588&sportId=102&oddsFormat=EU&eventTimeGroup=nada me é retornado.Lembrando que estou usando proxy no PHP pra recuperar os valores da página.
Carregando comentários...