Вставляйте в текст свою ссылку. Или поставьте скрипт который при отдаче контента прикрепляет ссылку. Я вас уверяю текста там парсят и не проверяют. А будет ссылка пусть даже неактивная, гугл поймет. А и для вас это сигнал..значит ваш сайт проигрывает гс. Просто так не ставят выше. При написании новой статьи сразу индексируйте ее через вебмастер.
ДА фреймворк не плохой, но его нужно устанавливать. А по-моему на обычных хостинг (не сервак) хрен поставишь. Или я туплю? Залить его в корневую папку вместе с парсером?
DenisVS: Это не простой вариант, а отложенный на потом гемморой.
Панели нужны клиентам хостингов, которые не собираются лезть в настройки никогда, либо админам для ускорения однотипных задач при полном понимании процессов.
Уважаемый DenisVS, в двух словах если возможно расскажите с чем связан гемморой.
Фактически мне нужно будет вести на vps 3-4 сайта, я их захощу с помощью панели веста и норм.
А если этих Элементов несколько будет?
пример:
Array
(
[0] => Array
(
[text] => 1-к квартира, 43 м², 4/10 эт.
[link] => https://www.avito.ru/penza/kvartiry/1-k_kvartira_43_m_410_et._548929607
)
[1] => Array
(
[text] => Комната 13 м² в 5-к, 3/4 эт.
[link] => https://www.avito.ru/penza/komnaty/komnata_13_m_v_5-k_34_et._846776782
)
[2] => Array
(
[text] => 1-к квартира, 27 м², 9/10 эт.
[link] => https://www.avito.ru/penza/kvartiry/1-k_kvartira_27_m_910_et._790457909
)
// И ещё 48
)
Как записать в базу такое
Array ( [0] => Тормозные колодки: БМВ, 1 (E81) )
Сам код:
$headlines = array();
foreach($html->find('h1') as $header) {
$headlines[] = $header->plaintext;
}
print_r($headlines);
$query =("INSERT INTO'marka'('name')VALUES('$headlines,')");
echo $query
ошибка:
Array ( [0] => Тормозные колодки: БМВ, 1 (E81) )
Notice: Array to string conversion in W:\xampp\htdocs\newsite\index.php on line 30
INSERT INTO'marka'('name')VALUES('Array,')
Что я делаю не так ?
Вставляйте в текст свою ссылку. Или поставьте скрипт который при отдаче контента прикрепляет ссылку. Я вас уверяю текста там парсят и не проверяют. А будет ссылка пусть даже неактивная, гугл поймет. А и для вас это сигнал..значит ваш сайт проигрывает гс. Просто так не ставят выше. При написании новой статьи сразу индексируйте ее через вебмастер.
ДА фреймворк не плохой, но его нужно устанавливать. А по-моему на обычных хостинг (не сервак) хрен поставишь. Или я туплю? Залить его в корневую папку вместе с парсером?
Давайте разберем на конкретном примере.
На странице есть таблица там стоят цены.
<td class="cost ttip">
6,89
</td>
Мне их нужно все спарсить и аккуранто записать в базу.
<?php
//подгружаем библиотеку
require 'simple_html_dom.php';
//подключаем базу
$dbn = mysql_connect('localhost', 'user', 'password');
mysql_select_db('parser', $dbn);
mysql_query('SET NAMES utf8');
//создаём новый объект
$html = new simple_html_dom();
//загружаем в него данные
$html = file_get_html('http://site.ru');
//Ищем все <td> в <table> где class = cost ttip
$es = $html->find('table.cost ttip td');
{
if($es->value == '') continue;
$insert .= '('.$es->value.', \''.$es->plaintext.'\'),';
}
//записываем в базу
$query = $db->prepare('INSERT INTO tovar SET price=$es');
//освобождаем ресурсы
$html->clear();
unset($html);
?>
---------- Добавлено 30.04.2017 в 23:17 ----------
Почему не работает ?
Делов для профи нет, а для меня еще все сложно.
Вот есть такой код, не совсем понимаю что он делает. Хочу переработать его.
require ('simple_html_dom.php');
$dbn = mysql_connect('localhost', 'user', 'password');
mysql_select_db('parser', $dbn);
mysql_query('SET NAMES utf8');
$brands = array();
$html = str_get_html(file_get_contents('http://url.kz'));
$insert = 'INSERT INTO kolesa_brands (id, name) VALUES ';
$select = $html->find('select[id=auto.car.mm_0]', 0);
foreach($select->find('option') as $opt)
{
if($opt->value == '') continue;
$insert .= '('.$opt->value.', \''.$opt->plaintext.'\'),';
$brands[$opt->value] = $opt->plaintext;
}
mysql_query(rtrim($insert, ','));
т.е я так понимаю что я ищу место 'option' и присваиваю переменной $opt,,
далее если $opt имеет значение, то продолжаю. А вот это место не понимаю.
$insert .= '('.$opt->value.', \''.$opt->plaintext.'\'),';
$brands[$opt->value] = $opt->plaintext;
}
Datacol не подайдет, суть в том чтоб сделать парсер, который по крону будет записывать в базу цены и выводить их на сайте.
Получается все работает ? Что делать дальше?
картинки прописываются :<img src="http://site.com/templates/public/casino/images/tbuk_John_Barnes_1001x677_9.jpg" alt="">
Может их нужно по другому вставлять? писать полный путь /var/www/public_html/...?
---------- Добавлено 06.03.2016 в 14:19 ----------
Поставил
RewriteRule .*\.(jpg|gif|png|css|zip|doc|php|js)$ - [L]
в htaccess и все заработало!!!
Кто может пояснить почему?
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration, referer: http://www.site.com
Как запустить RewriteEngine?
Это не простой вариант, а отложенный на потом гемморой.
Панели нужны клиентам хостингов, которые не собираются лезть в настройки никогда, либо админам для ускорения однотипных задач при полном понимании процессов.
Уважаемый DenisVS, в двух словах если возможно расскажите с чем связан гемморой.
Фактически мне нужно будет вести на vps 3-4 сайта, я их захощу с помощью панели веста и норм.
Какой геморой еще может быть? Обновление php?