Главное Авторские колонки Вакансии Образование
131 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Новые функции и массовый парсинг сайтов и ещё немного магии

Приветствую уважаемые читатели.В предыдущих статьях мы рассмотрели немного теории про ботов. Но теория без практики это совсем не дело. Я с вами полностью согласен. Как бывший владелец интернет магазина, я могу сказать, что договориться о сотрудничестве это ещё полдела, вовремя синхронизовать цены и наличие это вторая часть дела. Давайте решим эту проблему с ботами от ТрафикСтора.
Мнение автора может не совпадать с мнением редакции

Очень часто бывает, что договорились о сотрудничестве, дали скидку от цен на сайте, а дальше парься как хочешь. Через какое-то время постоянная ручная синхронизация надоедает и быть может плодотворное сотрудничество сойти на нет.

Рассмотрим полностью полный парсинг сайта (для наглядности опустим некоторые моменты).

Для начала нам нужно получить все ссылки с сайта через 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

Теперь воспользовавшись церебро вы сможете собрать вокруг себя нужную аудиторию. Только используйте с умом.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.