Boxerman Posted August 20, 2017 Share Posted August 20, 2017 (edited) Hi all, I'm annoyed because i cant figure this out, I want to crawl a website scan for links to the videos, not 100 percent if it can be done. The code dump is below; not 100 percent whats going wrong, i cant figure out what stage its failing. Can someone provide a poke please? <?php class Movie2k{ public $curl = null; public $misc = null; public $domain = "[redacted]"; function __construct(){ $this->curl = new Curl(); $this->misc = new Misc(); } public function getEmbeds($show,$season,$episode){ $show_url = $this->getShowUrl($show); $res = array(); $pages = array(); $counter = 1; if ($show_url){ $season_url = str_replace("-season-","-episode-$season-",$show_url); $page = $this->curl->get($season_url); $dom = new DOMDocument(); @$dom->loadHTML($page); $tables = $dom->getElementsByTagName('table'); for($i=0;$i<$tables->length;$i++){ if ($tables->item($i)->getAttribute("id")=="tablemoviesindex"){ $rows = $tables->item($i)->getElementsByTagName('tr'); for($j=0;$j<$rows->length;$j++){ $tds = $rows->item($j)->getElementsByTagName('td'); if ($tds->length==5){ $compare = preg_replace("/[^a-z0-9]/","",strtolower($tds->item(0)->textContent)); $img = $tds->item(4)->getElementsByTagName('img'); if (!$img->length){ continue; } if (strpos($compare,"episode$episode") == strlen($compare)-strlen("episode$episode") && substr_count($img->item(0)->getAttribute("src"),"us_flag")){ $type = strtolower(trim($tds->item(1)->textContent)); $type = explode("watch on",$type); $type = trim($type[1]); $link = $tds->item(0)->getElementsByTagName('a'); if (!$link->length){ continue; } $link = $this->domain.$link->item(0)->getAttribute("href"); $pages[] = array("link" => $link, "type" => $type); } } } } } } if (count($pages)){ foreach($pages as $key => $val){ if ($val['type']!="stream2k"){ $data = $this->getLink($val['link']); if ($data){ $embed = array(); $embed['language'] = "ENG"; if (isset($data['link'])){ $embed['embed'] = $this->misc->buildEmbed($data['link'],620,360); if (!$embed['embed']){ continue; } $embed['link'] = $data['link']; } elseif (isset($data['embed'])){ $link = $this->misc->buildLink($data['embed']); if (!$link){ continue; } $embed['embed'] = $data['embed']; $embed['link'] = $link; } $res[$counter] = $embed; $counter++; } } } } return $res; } public function getLink($url){ $page = $this->curl->get($url); $dom = new DOMDocument(); @$dom->loadHTML($page); $res = false; $links = $dom->getElementsByTagName('a'); for($i=0;$i<$links->length;$i++){ $img = $links->item($i)->getElementsByTagName('img'); if ($img->length){ $src = $img->item(0)->getAttribute("src"); if (substr_count($src,"click_link.jpg")){ return array("link" => $links->item($i)->getAttribute("href")); break; } } } if (!$res){ // finding embed then $divs = $dom->getElementsByTagName('div'); for($i=0;$i<$divs->length;$i++){ if ($divs->item($i)->getAttribute("id")=="emptydiv"){ $html = $this->getInnerHTML($divs->item($i)); preg_match("/\<iframe.*\<\/iframe\>/i",$html,$matches); if (count($matches)){ return array("embed" => $matches[0]); } } } } return $res; } public function getInnerHtml( $node ) { $innerHTML= ''; $children = $node->childNodes; foreach ($children as $child) { $innerHTML .= $child->ownerDocument->saveXML( $child ); } return $innerHTML; } public function getShowUrl($show){ $first_letter = strtoupper($show[0]); $stripped_show = preg_replace("/[^a-z0-9]/","",strtolower($show)); $page = $this->curl->get("[redacted]"); $dom = new DOMDocument(); @$dom->loadHTML($page); $res = false; $tables = $dom->getElementsByTagName('table'); for($i=0;$i<$tables->length;$i++){ if ($tables->item($i)->getAttribute("id")=="tablemoviesindex"){ $rows = $tables->item($i)->getElementsByTagName('tr'); for($j=0;$j<$rows->length;$j++){ $tds = $rows->item($j)->getElementsByTagName('td'); if ($tds->length==2){ $img = $tds->item(1)->getElementsByTagName('img'); if ($img->length && substr_count($img->item(0)->getAttribute("src"),"us_flag")){ $compare = preg_replace("/[^a-z0-9]/","",strtolower($tds->item(0)->textContent)); if ($compare == $stripped_show){ $link = $tds->item(0)->getElementsByTagName('a'); if ($link->length){ $res = $this->domain.$link->item(0)->getAttribute("href"); break; } } } } } break; } } return $res; } } ?> Edited August 20, 2017 by requinix yeah no Link to comment https://forums.phpfreaks.com/topic/304662-getting-links-from-website/ Share on other sites More sharing options...
requinix Posted August 20, 2017 Share Posted August 20, 2017 No can do. Can't help you with making a murky legal situation even worse. Link to comment https://forums.phpfreaks.com/topic/304662-getting-links-from-website/#findComment-1550053 Share on other sites More sharing options...
Recommended Posts