/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.ently_body div.ently_text div.video-container iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if ($movies_el->hasAttribute('src')) { $url = $manager->resolve($movies_el->getAttribute('src')); if ($url !== false) { $movie_data[] = $url; } } } $query = 'div.ently_outline div.ently_body a'; $movies_els = $html->find($query); foreach ($movies_els as $movies_el) { $text = $movies_el->plaintext; if (preg_match('/リンク(/', $text) && $movies_el->hasAttribute('href')) { $resolve_url = $manager->resolve($movies_el->getAttribute('href')); if ($resolve_url) { $movie_data[] = $resolve_url; } } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.entryBody div.topmore a img'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if (!preg_match('/^動画.+/', $movies_el->getAttribute('alt'))) { continue; } // 親のaタグからリンクを取得する $parent_el = $next_el = $movies_el->parentNode(); $i = 0; while ($i < 3) { $next_el = $next_el->nextSibling(); if (is_null($next_el)) { break; } $i++; } if ($next_el->nodeName() == 'span') { $movie_data = []; break; } if ($parent_el->nodeName() == 'a') { $movie_data[] = $manager->resolve($parent_el->getAttribute('href')); } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#content div.cnt-video div.player iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { $movie_data[] = $manager->resolve($movies_el->getAttribute('src')); } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.entry-content object embed'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { $movie_data[] = $manager->resolve($movies_el->getAttribute('src')); } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#articlebody div.mainmore iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { $movie_data[] = $manager->resolve($movies_el->getAttribute('src')); } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.ently_body div.ently_text div.readmore script'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if ($movies_el->hasAttribute('url')) { $movie_data[] = $manager->resolve($movies_el->getAttribute('url')); } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.entry div.entry-content div#more p a'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if (preg_match('/動画[0-90-9]*はこちら/', $movies_el->plaintext)) { $movie_data[] = $manager->resolve($movies_el->getAttribute('href')); } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#main div.entry_permanent b span iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if ($movies_el->hasAttribute('src')) { $movie_data[] = $manager->resolve($movies_el->getAttribute('src')); } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#main div#main_contents div.content div.entry_body div.more p a'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { $url = $manager->resolve($movies_el->plaintext); if ($url) { $movie_data[] = $url; } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#more div[align="center"] iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if (!$movies_el->getAttribute('src')) { continue; } $url = htmlspecialchars_decode($movies_el->getAttribute('src')); $movie_data[] = $manager->resolve($url); } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.article-body-inner div.article-body-more'; $more_el = $html->find($query, 0); $movie_data = array(); $manager = new UriManager(); // 子供要素を持っていなければならない if (!$more_el->hasChildNodes()) { return $movie_data; } $child_els = $more_el->childNodes(); foreach ($child_els as $child_el) { // scriptタグであった場合 if ($child_el->tag == 'script') { // 主にFC2動画をembedしている場合 if ($child_el->hasAttribute('url')) { $movie_url = $child_el->getAttribute('url'); $movie_data[] = $manager->resolve($movie_url); continue; } // 主にasg.toの動画をembedしている場合 if ($child_el->hasAttribute('src') && $child_el->getAttribute('src') == 'http://asg.to/js/past_uraui.js') { // 次のスクリプト要素内にある関数に与えているmcd値を取得する // e.g. Purauifla("mcd=lNl25A52tkqoweP2", 450, 372); --> lNl25A52tkqoweP2 $next_el = $child_el->nextSibling(); $pattern = '/Purauifla\\("mcd=([0-9a-zA-Z]+)", [0-9]+, [0-9]+\\);/'; preg_match($pattern, $next_el->innertext, $matches); if (!isset($matches[1])) { continue; } $movie_url = 'http://asg.to?mcd=' . $matches[1]; $movie_data[] = $manager->resolve($movie_url); } } // iframeタグであった場合 if ($child_el->tag == 'a') { $url = $child_el->getAttribute('href'); if (!$manager->isXvideosUrl($url)) { continue; } $movie_data[] = $manager->resolve($url); } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.entry div.textBody div.centeringtext p a button.button-default'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { // 親要素のaタグを取得する $parent = $movies_el->parentNode(); if ($parent->nodeName() === 'a') { $url = $manager->resolve($parent->getAttribute('href')); if ($url) { $movie_data[] = $url; } } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#more a'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $el) { if (!$el->hasAttribute('href')) { continue; } $url = $el->getAttribute('href'); $info = parse_url($url); // 関係ないurlが含まれている場合があるためチェックする if ($info['host'] == 'ero-erodouga.com') { continue; } $movie_data[] = $manager->resolve($url); } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div#main_contents div.content div.entry_body iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { // iframeの次の次の要素であるa要素を取得する $link_el = $this->_fetchMovieLinkElement($movies_el); if (is_null($link_el)) { continue; } if ($link_el->nodeName() === 'a') { $movie_data[] = $manager->resolve($link_el->getAttribute('href')); } } // if (count($movie_data) > 0) return $movie_data; // div.entry_more_text以下にiframeがある場合もある // $query = 'div#container div#content div.entry_middle div.entry_more_text iframe'; // $movies_els = $html->find($query); // // 動画はこちらテキストのリンクを取得する // foreach ($movies_els as $movies_el) { // // iframeの次の次の要素であるa要素を取得する // $link_el = $this->_fetchMovieLinkElement($movies_el); // if (is_null($link_el)) continue; // if ($link_el->nodeName() === 'a') { // $movie_data[] = $manager->resolve($link_el->getAttribute('href')); // } // } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.ently_body div.ently_text a'; $movies_els = $html->find($query); $movie_data = array(); $link_stack = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { // href属性とplaintextが合致するもの、かつ重複していないリンクを格納する $link = $movies_el->getAttribute('href'); $text = $movies_el->plaintext; if ($link == $text && !in_array($link, $link_stack)) { $movie_data[] = $manager->resolve($movies_el->getAttribute('href')); $link_stack[] = $link; } } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.single_content div#bo-bo div iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する // 一つ目のiframeは広告のため除外 foreach ($movies_els as $k => $movies_el) { if ($k == 0) { continue; } $movie_data[] = $manager->resolve($movies_el->getAttribute('src')); } return $movie_data; }
/** * @test * @group uri * @group uri-unrelated-url */ public function AdultMidnightに関係のないurlの場合() { $url = 'https://google.com'; $url = $this->manager->resolve($url); $this->assertEquals('https://google.com', $url); }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'ul#player li iframe'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { if (!$movies_el->hasAttribute('src')) { continue; } $url = $movies_el->getAttribute('src'); $movie_data[] = $manager->resolve($url); } return $movie_data; }
/** * 動画のURLを取得する * * @param simple_html_dom $html * @return array **/ public function getMoviesUrl($html) { $query = 'div.entry article div#more a'; $movies_els = $html->find($query); $movie_data = array(); $manager = new UriManager(); // 動画はこちらテキストのリンクを取得する foreach ($movies_els as $movies_el) { $url = $movies_el->getAttribute('href'); $text = $movies_el->innertext; if ($url === $text) { $movie_data[] = $manager->resolve($url); } } return $movie_data; }