简体   繁体   中英

PHP - Simple HTML Dom Questions

Basically im trying to scrape IMDB to check how many seasons there are, How could I basically do something like this but instead have it just output how many in total there are instead of just outputting 1 2 3 4 5 if the show has 5 seasons and if it has 10 seasons it would output 1 2 3 4 5 6 7 8 9 10 but I just want it to output 9 if the series has 9 seasons. How could I do this?

This is my current code:

$seasons = $_GET['seasons'];
$url = 'http://www.imdb.com/title/'.$seasons.'/episodes';

$imdb_content = file_get_contents($url);
$html = str_get_html($imdb_content);

//Grabbed Content
$p = $html->find('select[id="bySeason"] option',0)->plaintext;
$p1 = $html->find('select[id="bySeason"] option',1)->plaintext;
$p2 = $html->find('select[id="bySeason"] option',2)->plaintext;
$p3 = $html->find('select[id="bySeason"] option',3)->plaintext;
$p4 = $html->find('select[id="bySeason"] option',4)->plaintext;
$p5 = $html->find('select[id="bySeason"] option',5)->plaintext;
$p6 = $html->find('select[id="bySeason"] option',6)->plaintext;
$p7 = $html->find('select[id="bySeason"] option',7)->plaintext;
$p = $html->find('select[id="bySeason"] option',8)->plaintext;
$p = $html->find('select[id="bySeason"] option',9)->plaintext;
$p = $html->find('select[id="bySeason"] option',10)->plaintext;
$p = $html->find('select[id="bySeason"] option',11)->plaintext;
$p = $html->find('select[id="bySeason"] option',12)->plaintext;
$p = $html->find('select[id="bySeason"] option',13)->plaintext;
$p = $html->find('select[id="bySeason"] option',14)->plaintext;
$p = $html->find('select[id="bySeason"] option',15)->plaintext;
$p = $html->find('select[id="bySeason"] option',16)->plaintext;
$p = $html->find('select[id="bySeason"] option',17)->plaintext;
$p = $html->find('select[id="bySeason"] option',18)->plaintext;
$p = $html->find('select[id="bySeason"] option',19)->plaintext;
$p = $html->find('select[id="bySeason"] option',20)->plaintext;
$p = $html->find('select[id="bySeason"] option',21)->plaintext;
$p = $html->find('select[id="bySeason"] option',22)->plaintext;
$p = $html->find('select[id="bySeason"] option',23)->plaintext;
$p = $html->find('select[id="bySeason"] option',24)->plaintext;
$p = $html->find('select[id="bySeason"] option',25)->plaintext;
$p = $html->find('select[id="bySeason"] option',26)->plaintext;
$p = $html->find('select[id="bySeason"] option',27)->plaintext;
$p = $html->find('select[id="bySeason"] option',28)->plaintext;
$p = $html->find('select[id="bySeason"] option',29)->plaintext;
$p = $html->find('select[id="bySeason"] option',30)->plaintext;

//Content
$content = "";
$content.= $p;
$content.= $p1;
$content.= $p2;
$content.= $p3;
echo $content;

Not sure if I understood correctly. Here is Game of Thrones season count by simple_html_dom.

<?php 
include("simple_html_dom.php");

$url = 'http://www.imdb.com/title/tt0944947/episodes';

$imdb_content = file_get_contents($url);
$html = str_get_html($imdb_content);

foreach($html->find('select[id="bySeason"] option') as $season){
    $last_season = $season->plaintext;
}

echo $last_season;

Output is: 7

References:

Simple Html Dom

Documentation

这真的很简单:

echo count($html->find('#bySeason option'));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM