Задать вопрос

PHP парсер. Как парсить фото с сайта в оригинальном размере?

Я сделал парсер который на главной странице сайта копирует фото с каждой публикации.
Но есть одна проблема, я копирую фото с этого сайта (stvorenonaukoy.blogspot.com/) а этот сайт сделан на платформе блогер, поэтому фото копируются в размере 72х72, хотя на сайте они в нормальном размере.

На сайте url фото прописано в стилях.
Вот как это выглядит на сайте с которого я копирую фото:
<div class="thumb">
               <a href="http://goruzont.blogspot.com/2017/04/blog-post_6440.html" style="background:url(https://1.bp.blogspot.com/-6vpIH5iqPYs/WPzlNdxsRpI/AAAAAAAAntU/d7U_Ch_6FiIPwosNL4tWwqBeXw8qwo2nACLcB/s1600/1424051.jpg) no-repeat center center;background-size:cover">

<span class="thumb-overlay"></span></a>
 </div>


Вот код парсера:
<?php
header('Content-type: text/html; charset=utf-8');
require 'phpQuery.php';

function print_arr($arr){
	echo '<pre>' . print_r($arr, true) . '</pre>';
}
 
$url = 'http://stvorenonaukoy.blogspot.com/';
$file = file_get_contents($url);
 
$doc = phpQuery::newDocument($file);
 
foreach($doc->find('.blog-posts .post-outer .post') as $article){
    $article = pq($article);
    $img = $article->find('.thumb a')->attr('style');
    
    $img."<br>"; if (preg_match('!background:url.(.+). no!',$img,$match)) { 
$imgurl = $match[1]; 
} else 
{echo "<img src = http://goruzont.blogspot.com".$item.">";}  
    
    echo "<img src='$imgurl'>";
}
?>


Как мне копировать фото в таком же размере как и на сайте?
  • Вопрос задан
  • 1058 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Creditpower2015
Он отдает 72*72 из мобильной версии, как я вижу.
https://3.bp.blogspot.com/-sJKkDKsctvA/WTpqBZpeF6I... - mobile

https://3.bp.blogspot.com/-sJKkDKsctvA/WTpqBZpeF6I... - full

При получении контента попробуй юзерагента прописать/добавить к заголовку. К примеру такого:
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

Не знаю как это в php, я на asp работаю.

Или замени в ссылке /s72-c/ на /s1600/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы