Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Snake911 on June 19, 2017, 12:03:41 AM
-
Требуется взять содержимое с поля с одной вкладки, скопировать его, перейти на другую вкладку и вставить содержимое поле в поиск нажав ENTER , после поиска найти ссылку по классу, взять из найденной ссылки URL вернутся на начальную страницу и вставить URL в поле, заранее благодарю за помощь! Скрины подкрепил
-
Требуется взять содержимое с поля с одной вкладки, скопировать его, перейти на другую вкладку и вставить содержимое поле в поиск нажав ENTER , после поиска найти ссылку по классу, взять из найденной ссылки URL вернутся на начальную страницу и вставить URL в поле, заранее благодарю за помощь! Скрины подкрепил
Ссылка с который нужно взять URL находится в разных местах, нужно ее определить по классу либо айди
-
... Скрины подкрепил
Скрины - это хорошо.
Ссылка с который нужно взять URL находится в разных местах, нужно ее определить по классу либо айди
Про классы и айди - непонятно ничего, нет таких букав на скринах. Как их "определить" то? В ТЗ чего то не хватает кажется. ???
-
Если вы так уверены, что данный скрипт ПРОСТЕНЬКИЙ,то почему не напишите его самостоятельно?
Если бы у меня ума хватило довести это до ума , то я сам бы написал и не просил бы помощи)
-
... Скрины подкрепил
Скрины - это хорошо.
Ссылка с который нужно взять URL находится в разных местах, нужно ее определить по классу либо айди
Про классы и айди - непонятно ничего, нет таких букав на скринах. Как их "определить" то? В ТЗ чего то не хватает кажется. ???
-
Если вы так уверены, что данный скрипт ПРОСТЕНЬКИЙ,то почему не напишите его самостоятельно?
Если бы у меня ума хватило довести это до ума , то я сам бы написал и не просил бы помощи)
выходит; вы утверждаете, что лично у вас, не хватает ума даже на простенькие скрипты? ???
Я не нуждаюсь в ваших бесполезных комментариях! Я просил помощи у людей которые в этом разбираются, если вам нечем мне помочь, проходите мимо.
-
Кликер не умеет работать с классами или id HTML документа. Кликер больше по пикселам экрана.
Точнее, не умеет напрямую. Можно с плагином к мозиле меняющим стили подсветить элемент с нужным классом.
Если страница не сильно навороченая в плане защиты, авторизаций сложных и подгрузок по скриптам, то эту задачу целесообразней сделать на другом языке. Особенно если нужно быстро или много или долговременно. Если на раз, то как уже сказал подсветить плагином и ловить по цвету.
-
Дело не в том, что кликер чего-то не умеет, а в засекреченности сайта, с которым нужно работать. С исходным кодом веб-страницы кликерман прекрасно разберется. Просто надо брать и пробовать. А пробовать то и не на чем... Давно бы уже что нибудь придумали.
-
Я и говорю, что стандартного простого метода нет, так чтоб дать универсальный пример.
-
Я и говорю, что стандартного простого метода нет, так чтоб дать универсальный пример.
Возможно лм реализовать поиск ссылки на странице по айди либо классу, чтоб кликер нашел ее на странице и кликнул на неё!?
-
Возможно лм реализовать поиск ссылки на странице по айди либо классу, чтоб кликер нашел ее на странице и кликнул на неё!?
Да, возможно.
// Получаем исходный код страницы этого форума
$str = HTTPGET("http://crapware.aidf.org/forum/index.php?action=recent")
LOGWRITE ($str) // Выводим результат в лог
STRWRITELN("out.html", $str, 1) // Сохраняем результат в файл, с перезаписью файла (кодировка ANSI)
HALT
Затем находим в коде тег с нужным классом или id, берем из него в буфер обмена нужный текст и вставляем в нужное поле браузера.
Как закрепить элемент веб-страницы в браузере, для удобства, обсуждалось здесь (http://crapware.aidf.org/forum/index.php?topic=3143.msg21149#msg21149).
Но не всё так просто и гладко. Не каждый сайт даст получить исходный код страницы без боя. Добавим сюда еще кавычки и кодировки.
Поэтому и нужно взглянуть на конкретный сайт, прежде чем давать советы.
Другой вариант - это распознавание текста и изображений на странице в браузере, там тоже не всё так просто. Но Clickermann это может сделать, если сможет человек.
UPD: Неудачную я ссылку выбрал для примера, один раз сработало и больше не хочет. Поменял ссылку на страницу Последние сообщения.
-
Возможно лм реализовать поиск ссылки на странице по айди либо классу, чтоб кликер нашел ее на странице и кликнул на неё!?
Да, возможно.
// Получаем исходный код страницы этого форума
$str = HTTPGET("http://crapware.aidf.org/forum/index.php?action=recent")
LOGWRITE ($str) // Выводим результат в лог
STRWRITELN("out.html", $str, 1) // Сохраняем результат в файл, с перезаписью файла (кодировка ANSI)
HALT
Затем находим в коде тег с нужным классом или id, берем из него в буфер обмена нужный текст и вставляем в нужное поле браузера.
Как закрепить элемент веб-страницы в браузере, для удобства, обсуждалось здесь (http://crapware.aidf.org/forum/index.php?topic=3143.msg21149#msg21149).
Но не всё так просто и гладко. Не каждый сайт даст получить исходный код страницы без боя. Добавим сюда еще кавычки и кодировки.
Поэтому и нужно взглянуть на конкретный сайт, прежде чем давать советы.
Другой вариант - это распознавание текста и изображений на странице в браузере, там тоже не всё так просто. Но Clickermann это может сделать, если сможет человек.
UPD: Неудачную я ссылку выбрал для примера, один раз сработало и больше не хочет. Поменял ссылку на страницу Последние сообщения.
Огромнейшее спасибо за разъяснение :)!!
Ну если возможно то на примере ..Вот на http://hotline.ua этом сайте будет поиск элементов по классам
-
Не поучилось у меня получить код станицы функцией HTTPGET().
Напишу как я бы сделал в таком случае. Потребуются утилиты командной строки.
Предположим, что мы знаем название товара который ищем. Дописываем к адресу сайта маску для поиска, в данном случае "/sr/?q=Vladi++140". Перейти по полученному адресу, все равно что заюзать поиск по сайту. Теперь надо получить исходник страницы http://hotline.ua/sr/?q=Vladi++140 и проверить есть ли там искомый товар. На странице могут уместиться только 20 товаров, остальные мы не увидим без дополнительных действий, поэтому запрос должен быть максимально точным.
Скачиваем утилиту "Download (http://www.f2ko.de/en/cmd.php)". Она может получить код страницы с того сайта.
del "intput"
download.exe "http://hotline.ua/sr/?q=Vladi++140" "intput"
Скачиваем утилиту "Swiss File Knife (http://stahlworks.com/dev/swiss-file-knife.html)", чтобы заменить кавычки в коде страницы.
sfk replace intput /\"/'/ -yes
Скачиваем утилиту "TCode (http://svoy-nemec.narod.ru/Soft/TCode.htm)", для смены кодировки страницы.
tcode "intput" /auto "intput.html" /win /utf /html-
Пишем для всего этого bat-файлы, упаковываем их в Bat To Exe Converter, чтобы скрыть окно командной строки.
Но лучше не упаковывать батники, а запускать через EXECUTE() в свернутом виде через ярлыки, тогда Clickermann сможет надежно отслеживать момент завершения их работы по HWND окон.
В результате получаем файл "intput.html" из которого Clickermann вытащит названия товаров и их URL; файлы для теста во вложении, результат работы см. в логе (кодировку не менял; кавычки заменил вручную).
Это была обработка только одной страницы из выдачи поисковика сайта. Для поиска URL других товаров придется создавать bat-файл кликером по ходу выполнения сценария.
Вот такой простенький скрипт получается. :) Но всё вполне реализуемо.
Может кто-то предложит вариант проще с обработкой графики.
-
Не поучилось у меня получить код станицы функцией HTTPGET().
Может потому что
(http://savepic.net/9383584m.png) (http://savepic.net/9383584.htm)
Я же говорю, на кликере это в здравом уме не делают. Вот на питоне
[spoiler]#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
PATH_SCRIPT = os.path.dirname(os.path.abspath(unicode(sys.argv[0], 'cp1251')))
sys.path.append(os.path.join(os.path.split(os.path.split(PATH_SCRIPT)[0])[0], 'A_Python', 'API'))
import colorprint as cp
import requests.api
from bs4 import BeautifulSoup
def errors(_type, arg=u''):
if _type == 'noLoad':
err = u'13Не можем получить страницу url: ^15_%s' % arg
elif _type == 'noRead':
err = u'13Не можем прочитать файл ^15_%s' % arg
elif _type == 'noFile':
err = u'13Нет файла ^15_%s' % arg
else:
err = u'13Неизвестная ошибка'
print
cp.cprint(err)
cp.cprint(u'12Работа скрипта остановлена.')
cp.cprint(u'14------------- ^12_ERROR ^14_---------------')
raw_input()
exit()
def loading_html(url, params):
r = requests.get(url, params=params)
if r.status_code == 200:
return r.text
errors('noLoad', url)
def save_file(filename, data, cod='utf-8'):
if filename and data:
with open(filename, 'w') as f:
f.write(data.encode(cod))
def read_file(filename=None):
print u'Читаем файл %s' % filename
html = None
if filename and os.path.isfile(filename):
try:
with open(filename, 'r') as f:
html = f.read().decode('utf-8')
return html
except IOError:
errors('noRead', filename)
else:
errors('noFile', filename)
# ------------------------------------------------------------------------------
if __name__ == '__main__':
os.system('color 71')
url = 'http://hotline.ua/sr/'
params = {
'q': u'VLADI+140'
}
html = loading_html(url, params)
# save_file(u'html.txt', html)
# html = read_file(u'html.txt')
soup = BeautifulSoup(html, 'html.parser')
all_tov = soup.findAll('a', attrs={'class':'g_statistic', 'data-eventlabel':'Product name'})
cp.cprint(u'3Найдено элементов: ^4_%d \n' % len(all_tov))
text = []
result = []
for num, tovar in enumerate(all_tov):
# print tovar.prettify()
name = tovar.contents[0].rstrip(' \n')
href = 'hotline.ua' + tovar['href']
result.append(name)
result.append(href)
pref = ''
if num > 0:
pref = u'^'
text.append(u'%s4_%d ^1_%s' % (pref, num+1, name))
text.append(href)
text.append('')
# print '\n'.join(text).encode('cp866', 'ignore')
cp.cprint('\n'.join(text))
save_file(u'result.txt', '\n'.join(result), 'cp1251')
здесь 80% кода это красивый вывод и обработка ошибок.
[/spoiler]
Файл result.txt
[spoiler]VLADI Palermo 140х200
hotline.ua/dom-pledy/vladi-palermo-140h200/
VLADI Плед Dolce Vita 140х200 (409)
hotline.ua/dom-pledy/vladi-pled-dolce-vita-140h200-409/
VLADI Плед Корсика Бастия 140х200 (33604)
hotline.ua/dom-pledy/vladi-pled-korsika-bastiya-140h200-33604/
VLADI Плед полушерстяной Лондон 140x200 см Тип: плед, размер: 140x200 см
hotline.ua/dom-pledy/vladi-pled-polusherstyanoj-london-140x200-sm-tip-pled-razmer-140x200-sm/
VLADI Плед шерстяной Шарм бело-серый 140х200 см (-Шарм_140*200)
hotline.ua/dom-pledy/vladi-pled-sherstyanoj-sharm-belo-seryj-140h200-sm-sharm140200/
VLADI Плед шерстяной Чили бело-серый 140х200 см (-Чили_140*202)
hotline.ua/dom-pledy/vladi-pled-sherstyanoj-chili-belo-seryj-140h200-sm-chili140202/
VLADI Плед жаккард Кот 140*200 бежевый
hotline.ua/dom-pledy/vladi-pled-zhakkard-kot-140200-bezhevyj/
VLADI Плед жаккард Кот 140*200 серый
hotline.ua/dom-pledy/vladi-pled-zhakkard-kot-140200-seryj/
VLADI Плед Флоренция коричневый 140*200 шерсть
hotline.ua/dom-pledy/vladi-pled-florenciya-korichnevyj-140200-sherst/
VLADI Плед Флоренция фиолетовый 140*200 шерсть
hotline.ua/dom-pledy/vladi-pled-florenciya-fioletovyj-140200-sherst/
VLADI Плед Флоренция красный 140*200 шерсть
hotline.ua/dom-pledy/vladi-pled-florenciya-krasnyj-140200-sherst/
VLADI Плед Метро 140*200
hotline.ua/dom-pledy/vladi-pled-metro-140200/
VLADI хлопковое жаккардовое 140*205 см (CB0002700)
hotline.ua/dom-pokryvala/vladi-hlopkovoe-zhakkardovoe-140205-sm-cb0002700/
VLADI Плед Palermo біл-сір-чорн 140x200 140x200 см 18885 (2200000018885)
hotline.ua/dom-pledy/vladi-pled-palermo-bl-sr-chorn-140x200-140x200-sm-18885-2200000018885-10367995/
VLADI Плед "Сан-Ремо" трава 140*200 біл-беж (33512)
hotline.ua/dom-pledy/vladi-pled-san-remo-trava-140200-bl-bezh-33512/
VLADI Плед "Сан-Ремо" трава 140*200 біл-сір (31880)
hotline.ua/dom-pledy/vladi-pled-san-remo-trava-140200-bl-sr-31880/
VLADI Ковдра дит. "Букашка" 100*140 рожевий (34120)
hotline.ua/dom-pledy/vladi-kovdra-dit-bukashka-100140-rozhevij-34120/
VLADI Плед "Сан-Ремо" олень 140*200 біл-сір (34151)
hotline.ua/dom-pledy/vladi-pled-san-remo-olen-140200-bl-sr-34151/
VLADI Плед Флоренция коричневый 140*200 новый
hotline.ua/dom-pledy/vladi-pled-florenciya-korichnevyj-140200-novyj/
VLADI Плед Флоренция фиолетовый 140*200 новый
hotline.ua/dom-pledy/vladi-pled-florenciya-fioletovyj-140200-novyj/
[/spoiler]
Можно и в файл не выводить, сразу делать то, что нужно с сылкой