Новые функции и массовый парсинг сайтов и ещё немного магии
Очень часто бывает, что договорились о сотрудничестве, дали скидку от цен на сайте, а дальше парься как хочешь. Через какое-то время постоянная ручная синхронизация надоедает и быть может плодотворное сотрудничество сойти на нет.
Рассмотрим полностью полный парсинг сайта (для наглядности опустим некоторые моменты).
Для начала нам нужно получить все ссылки с сайта через sitemap.xml. Отлично, если мы его нашли, то приступим к написанию бота.
#!/bin/bash
#инклудим различные вспомогательные функции
source ./help_scripts/var_functions.sh
source ./help_scripts/bot_bot.sh
url=`get_promo_url`
gen_bot_js start
goto_url "$url"
save_page_in_html
gen_bot_js end
start_bot vk_bot.js
#тут определяем время работы работы. В параметре указывается максимальное время, после которого
#браузер можно убить. Также в этом скрипте определяются дополнительный обработки, которые могут потребоваться в процессе работы
for j in `seq 1 56`
do
sleep 1
is_run=`is_process_run firefox`
if [ $is_run -eq 0 ]
then
break
fi
done
#после того, как сохранили страницу, вырезаем цену. В данном примере, мы опустим написание регулярного выражения
new_price=`cat /tmp/page.htm | grep price`
#чтобы синхронизация была правильно и мы обновили там, где нужно будем использовать артикул
articul=`cat /tmp/page.htm | grep articul`
#Теперь используем полученное значение новой цены, для обновления цен в магазине.
#Большинство CMS имею API для обновления параметров товаров, включая цену.
#В данном параметре вы обновляем цену товара, по его артикулу, который у вас и у #поставщика одинаковый
curl `http://my_shop.ru/api/product/articul/$articul/update/price/$new_price`
#не забываем проставлять, что задача сделана, а то валидатор не пропустит
job_done DONE
Теперь остался последний шаг. Тут мы научимся передавать параметры для запуска ваших скриптов. В качестве параметра у нас на данный момент будет урл сайта партнёра. Пример постановки задачи написан на bash, но можно использовать любое подходящее решение
#!/bin/bash
for prod_url in `GET firend_shop.ru/sitemap.xml | grep http`
do
echo '{
"projectId": "4195574",
"promotions": [
{
"query": "",
"url": "’.$prod_url.’",
"quantity": 1,
"promoType": 131,
"text": "'`cat /tmp/script.sh | base64 | tr '\n' ' '`'"
}
]
}' > /tmp/bj
curl -X POST -v -H "Content-Type: application/json" -H "X-SERVICE-KEY:dsfsfds7" "https://api.trafficstore.com/promotion/add" -d @/tmp/bj
done
В данном примере мы видим несколько дополнительных возможностей.
- в json при постановке задачи теперь записывается параметр url, который мы достаём в нашем боте через get_promo_url. Данная функция возвращает параметр, записанный в переменную url при постановке задачи.
- бот содержит множество дополнительного функционала, который позволяет писать скрипты любой сложности и делать наиболее продуктивное решение. В данном случае мы воспользовались командой curl.
Количество задач ничем не ограничено. Для оптимизации скорости постановки задач, можно воспользоваться методом batch. Поближе познакомиться с предлагаемыми методами можно на странице https://api.trafficstore.com/
Теперь покажем не много “магии”. Очень часто поступают запросы не только на парсинг, но и на автоматизацию различных действий, которые делать оооочень лень, а надо. приведем простой пример добавления людей в друзья для vk.com
gen_bot_js start
goto_url "$url"
exec_code "TAG POS=1 TYPE=BUTTON ATTR=TXT:Добавить<SP>в<SP>друзья"
gen_bot_js end
Теперь воспользовавшись церебро вы сможете собрать вокруг себя нужную аудиторию. Только используйте с умом.