Dram

Рейтинг
1114
Регистрация
28.06.2008

Раньше был новые современные сайты, а этот старый динозавр в кодировке 1251

---------- Добавлено 25.05.2019 в 12:28 ----------

$links = 'http://hramy.ru/regions/city_abc.htm';

$pars = getPageByUrl ($links);

//$pars = iconv('CP1251','UTF-8',$pars);

require_once 'C:\OSPanel\domains\localhost\phpQuery.php';

$pq = phpQuery::newDocument($pars);

$elem = $pq->find('#table2');

$text = $elem->html();

Задачу я решил, это моя была инициатива вывести красиво :)) По кодировке не подскажите?

Вчерашнюю задачку решил - вытащив названия пицц из alt картинок.

Перешел к следующей задачи и опять застрял - кодировка сайта

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Сначала пробовал менять тут

$pq = phpQuery::newDocument($pars);

на

$pq = phpQuery::newDocument($pars . 'utf-8');
или
$pq = phpQuery::newDocument('<meta charset="utf-8">' .$pars);

Перепробовал все виды сочетаний кодировок - победить не удалось.

Затем думаю подняться на уровень выше и менять кодировку в curl

Изменил

$result = curl_exec($curl);

на

$result = iconv('CP1251', 'UTF-8', curl_exec($curl));

и в результате получаю пустоту при запросе. Почему?

---------- Добавлено 25.05.2019 в 11:57 ----------

Еще попробовал $result = utf8_decode(curl_exec($curl));

была строка

<th dir="LTR" class="style1" style="width: 118px">�����</th>

стала

<th dir="LTR" class="style1" style="width: 118px">?????</th>

---------- Добавлено 25.05.2019 в 12:08 ----------

curl_setopt($curl, CURLOPT_ENCODING ,"UTF-8");

или

curl_setopt($curl, CURLOPT_ENCODING ,"");

вообще не оказывают никакого влияния

Да, тоже наблюдаю периодически. Никаким стилями я это победить не смог.

Получил все названия и только 1 картинку (самая первая)

где ошибся?

foreach ($elem as $product) {
$pqLink = pq($product);
$title = $pqLink->find('.product-card__title');
$kartinka = $pqLink->find('.product-card-media__element');
$img = $kartinka->attr('src');
echo "<h1>".$title ."</h1>". "<br>";
echo "<img src=".$img.">". "<br>";
}

Но тут вывод, насколько я понимаю опять такой же - сначала все названия, только потом картинки. Да от двух циклов ушли но как сделать вывод - название / картинка?

Дошел до парсинга реальных сайтов 😎

задача - получить названия и картинки пицц. Вот сваял я код, все получил.

$links = 'https://dominos.by/Pizza/';
$pars = getPageByUrl ($links);
require_once 'C:\OSPanel\domains\localhost\phpQuery.php';
$pq = phpQuery::newDocument($pars);
$elem = $pq->find('span')->remove();
$elem = $pq->find('.product-card__title');
$kartinka = $pq->find('.product-card-media__element');
$text = $elem->html();
//var_dump($text);


foreach ($elem as $pizza) {
$pqLink = pq($pizza);
echo $pqLink . "<br>";
}

foreach ($kartinka as $item) {
$src = pq($item);
$img = $src->attr('src');
echo $img . "<br>";
}

И захотелось мне вывести красиво :

Название - картинка
Название - картинка

и вот тут я застрял на 2 часа :))) как можно совместить два цикла?

Дошел до круглого решил выложить свой список чуть более 1000 доменов отборного шлака.

Ничего лишнего, никаких конкурентов - только шлак.

Можете смело добавлять к своему, если будут дубли адсент их просто проигнорирует.

txt bilan.txt
Ingvarr:
как догадался?

Че тут догадываться? домен .top - сразу в бан, без траты времени на анализ.

Valpor:
Собрал для себя урлы из всего топика, удалил дубли. Примерно полторы тысячи получилось. Берите если надо

https://docs.google.com/spreadsheets/d/1C9u0Ac42gMHVzoNl4m3VxV_V3yZgDiqctBi2zV3kyYk/

Нужно остаивть только домен 1 уровня и снова почистить от дублей. Завтра сделаю...

Продолжаю изучать phpQuery и запнулся вот о что... нужно найти все ссылки с нужным классом.

Как искать по отдельности или класс или ссылку, я знаю, а как все вместе?

пробую так, но явно где-то ошибка

$pq = phpQuery::newDocument($pars);
$elem = $pq->find('a')->find('.www')->html();
var_dump($elem);



---------- Добавлено 21.05.2019 в 17:15 ----------

Ларчик просто открывался :))) $elem = $pq->find('a.www')->html();

---------- Добавлено 21.05.2019 в 17:28 ----------

Еще непонятка: так все нормально

$pq = phpQuery::newDocument($pars);
$elem = $pq->find('.pag a');
$text = $elem->html();
foreach ($elem as $item) {
$pqLink = pq($item);
echo $pqLink .'<br>';
}

Так ошибка цикла - почему? Warning: Invalid argument supplied for foreach()

$pq = phpQuery::newDocument($pars);
$elem = $pq->find('.pag a')->html();
foreach ($elem as $item) {
$pqLink = pq($item);
echo $pqLink .'<br>';
}
Всего: 6924