Не могу разобрать конкретные ссылки с php dom parser

Я анализирую некоторые ссылки ITunes с DOM Parser в PHP. С большинством ссылок это работает отлично. Другие, которые абсолютно такого же типа, не так ли ?! Мне нужен тег «img» и атрибут «src-swap-high-dpi». Это сводит меня с ума. Это часть моего php-кода

$url = "https://itunes.apple.com/us/podcast/id278981407";
$htmlContent = str_get_html(file_get_contents($url));

foreach ($htmlContent->find("img") as $element) {
$value  = $element->getAttribute("src-swap-high-dpi");
echo $value;
}

Так, например Я могу разобрать следующие ссылки:
https://itunes.apple.com/us/podcast/id201671138

https://itunes.apple.com/us/podcast/id523121474

https://itunes.apple.com/us/podcast/id152249110

Но это, например, не:

https://itunes.apple.com/us/podcast/id278981407

Я не получаю никакого вывода.

Редактировать:

Новый код также не работает:

Все еще не работает для меня. Очень странно. Вот мой новый полный код сейчас:

 <?php
ini_set("display_errors",1); error_reporting(E_ALL);
require_once ('simple_html_dom.php');

$url = "https://itunes.apple.com/us/podcast/id278981407";

$htmlContent = str_get_html(file_get_contents($url));foreach($htmlContent->find("div.artwork") as $div) {
$value = $div->find("img",0)->getAttribute("src-swap-high-dpi");
echo $value."<br/>";
}

?>

Я получаю вывод:

Fatal error: Call to a member function find() on a non-object in /home/www/whatever/delete.php on line 10

строка 10 — это строка, начинающаяся с «foreach». Ваш код прекрасно работает с указанными выше ссылками, которые я объявил работающими. Но как только я возьму один из указанных, который не работает, я получаю сообщение об ошибке, приведенное выше. ?!

0

Решение

Я думаю, что это один из случаев Простой DOM немного запутался и вам нужно предоставить его родителю:

$url = "https://itunes.apple.com/us/podcast/id278981407";
$htmlContent = str_get_html(file_get_contents($url));
foreach($htmlContent->find("div.artwork") as $div) {
$value = $div->find("img",0)->getAttribute("src-swap-high-dpi");
echo $value."<br/>";
}

ОБНОВИТЬ

Вот результаты, используя приведенный выше фрагмент:

http://a3.mzstatic.com/us/r30/Podcasts/v4/61/cc/7f/61cc7f25-131f-7616-6549-5553e6444b87/mza_7489225285918350214.150x150-75.jpg
http://a2.mzstatic.com/us/r30/Podcasts6/v4/04/a9/64/04a964d7-7c10-72d6-871b-97619cf89066/mza_1416781107029663068.150x150-75.jpg
http://a5.mzstatic.com/us/r30/Podcasts4/v4/bb/a6/f4/bba6f4b6-eeab-d7d9-8591-adb2bd277ccb/mza_5223368352447971673.150x150-75.jpg
http://a1.mzstatic.com/us/r30/Podcasts5/v4/aa/54/16/aa541600-cc8b-772b-9c0a-824efe8fdc42/mza_6772270613386652594.150x150-75.jpg
http://a2.mzstatic.com/us/r30/Podcasts3/v4/95/3d/2f/953d2f75-c2c2-4815-a752-f30fdcc0b9fb/mza_9037746738018570312.150x150-75.jpg
http://a4.mzstatic.com/us/r30/Podcasts4/v4/a2/1c/f5/a21cf5a4-2d8d-1ed7-983f-1c90f2f4f948/mza_7120473049241631392.340x340-75.jpg
http://a2.mzstatic.com/us/r30/Podcasts4/v4/5d/21/8d/5d218d2a-2980-0ac9-0bc7-9321ea6eb334/mza_6358466742996313573.150x150-75.jpg
http://a1.mzstatic.com/us/r30/Podcasts/b2/bb/bf/ps.ykmejwzs.150x150-75.jpg
http://a4.mzstatic.com/us/r30/Podcasts6/v4/17/ea/31/17ea3187-ef8c-4756-e488-0c65adced988/mza_7931750363714403933.150x150-75.jpg
http://a1.mzstatic.com/us/r30/Podcasts2/v4/0b/3c/7d/0b3c7d2b-19bf-f7a2-7c50-ca15338b8316/mza_2792239161425784587.150x150-75.jpg

Можете ли вы подтвердить, что не получаете ошибок совсем ? Скажем, просто напишите несколько странных символов в вашем PHP-файле, PHP показывает ошибку? Если нет, попробуйте добавить это в свой .htaccess файл.

<IfModule mod_php5.c>
# do not display errors
php_value display_errors 1
</IfModule>

ОБНОВЛЕНИЕ 2

$url = "https://itunes.apple.com/us/podcast/id278981407";

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
$html = curl_exec($ch);
curl_close($ch);

//$htmlContent = str_get_html(file_get_contents($url));
$htmlContent = str_get_html($html);
foreach($htmlContent->find("div.artwork") as $div) {
$value = $div->find("img",0)->getAttribute("src-swap-high-dpi");
echo $value."<br/>";
}

Причина, по которой я не использовал file_get_html Simple Dom, потому что он просто использует file_get_contents внутренне.

1

Другие решения

У меня есть еще один вопрос: я хотел бы повторить процесс синтаксического анализа с другими идентификаторами подкастов. Работает нормально, но останавливается после нескольких подключений. Количество рабочих соединений меняется, так что я думаю, что это как-то связано с таймаутом?

Так что в основном я написал разбор под этот код

for ($s =2; $s <=30;$s++) {
$url = "https://itunes.apple.com/us/podcast/".$array[$s]."";
//Parsing-Process which is mentioned above.
0

По вопросам рекламы [email protected]