Tengo un programa el cual recolecta jugadores de una página web.
El problema es que al realizar un for e intentar recoger datos del jugador la página me devuelve:
failed to open stream: HTTP request failed! HTTP/1.0 403
Esto me sucede despues de mandar cierta cantidad de peticiones, al principio no sucece.
El PHP:
Código PHP:
Ver original
$deaths = $t->characterDeaths($core->fixName($row["name"])); foreach($deaths as $d) { if($d["level"]!="") { "char_id"=>$row["id"], "level"=>$d["level"], "reason"=>$d["reason"] ); $core->Deaths($info); } }
La clase:
Código PHP:
Ver original
public function characterDeaths($name) { throw new CharacterNotFoundException($name); } $domd = $this->getDOMDocument($html); $domx = new \DOMXPath($domd); $rows = $domx->query("//b[text() = 'Character Deaths']/ancestor::table[1]//tr[position() > 1]"); foreach ($rows as $row) { $date = $row->firstChild->nodeValue; $text = $row->lastChild->nodeValue; "date" => \DateTime::createFromFormat("M d Y, H:i:s T", $date), "level" => $matches[2], "reason" => $matches[3], ); } return $deaths; }
Estoy pensando como evitar que a cierta cantidad de datos no me devuelva el error 403 pero no se me ocurre como.
Mas o menos son unos 1.000 registros los que tiene que recorrer y la idea es que al script no le tome tanto tiempo recoger sus datos.