• XSS.stack #1 – первый литературный журнал от юзеров форума

чекер Чекер Hydraruzxpnew4af

grinGo

RAID-массив
Пользователь
Регистрация
30.11.2018
Сообщения
65
Реакции
7
Пожалуйста, обратите внимание, что пользователь заблокирован
Чекер слит из под хайда на BHF
Адаптирован под private keeper
Сам не юзал!

У вас должно быть более 25 сообщений для просмотра скрытого контента.
 
чекает сайт hydra (не реклама)
Чего он там чекает то?) К слову у меня тоже есть чекер гидры, чтобы траву искать по выгодным ценам и поближе к дому :cool:. Могу пошарить, если кому интересно ;)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Чего он там чекает то?) К слову у меня тоже есть чекер гидры, чтобы траву искать по выгодным ценам и поближе к дому :cool:. Могу пошарить, если кому интересно ;)
баланс на акках походу
 
Чего он там чекает то?) К слову у меня тоже есть чекер гидры, чтобы траву искать по выгодным ценам и поближе к дому :cool:. Могу пошарить, если кому интересно ;)

Там же поиск внутри с указанием районов даже маленьких городов и сортировкой цен, зачем он?
 
Там же поиск внутри с указанием районов даже маленьких городов и сортировкой цен, зачем он?

поиск сделали далеко не сразу, да и работает он не всегда, так как продавцы не всегда используют теги или что они там ставят. У тебя на районе больше стафа, чем ты думаешь :smile12:.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Норкоманы)))
 
поиск сделали далеко не сразу, да и работает он не всегда, так как продавцы не всегда используют теги или что они там ставят. У тебя на районе больше стафа, чем ты думаешь :smile12:.

Чекер то свой выложишь?
 
ImmaBe
Не вопрос, скрипт не самый изящный, но он работает :). Скрипт будет заходить в каждый товар и искать там строки из "wanted_loc". Как пользоваться:
  1. обнови параметры поиска (# search options), эти параметры можешь найти в адресной строке твоего браузера.
  2. Логинимся на сайт и обновляем куки в скрипте (cookies).
  3. запускаем скрипт и радуемся.

requirements.txt
Код:
requests
pysocks
beautifulsoup4
lxml

code.py
Python:
import requests
from bs4 import BeautifulSoup
import re
import os
import logging

# StuffFinder for Hydra http://hydraruzxpnew4af.onion/
# this script trying to check each item from search result.
# It is need to find best location for pickup stuff.
# Also, it can discover new shops for you and safe your time.

# You need to pass site capture and get your cookies for this script.
# Script will pass capture if the cookies works in your browser.

site_address = 'http://hydraruzxpnew4af.onion/'

# search options
# 11 - hash
# 12 - weed
page = 'catalog/12'
query = ''
region_id = 1
price_min = ''
price_max = ''
unit = 'g'
weight_min = ''
weight_max = 10
storage_type = 1
item_type = 'momental'

# _pk_id_6_c278=; pregate=; gate=; _session=

# strings for filter location
wanted_loc = ['Смоленская', 'Краснопресненская']

# your cookies, after login to site.
cookies = {'_pk_id_6_c278': '...',
           'gate': '...',
           'pregate': '...',
           '_session': '...',
           '_pk_ses_6_c278': '%2A',
           '_pk_cvar_6_c278': 'false'}

headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0',
        'Referer': 'http://hydraruzxpnew4af.onion/'
    }
interesting_item = []

# starting tor session
session = requests.session()
session.proxies = {'http':  'socks5h://localhost:9050',
                   'https': 'socks5h://localhost:9050'}
session.cookies = requests.utils.cookiejar_from_dict(cookies)
session.headers = headers


def get_custom_logger(name, level=logging.DEBUG):
    if name.lower().endswith((".py", ".pyc")):
        name = os.path.basename(name)
    _logger = logging.getLogger(name)
    _logger.propagate = False
    handler = logging.StreamHandler()
    formatter = logging.Formatter(fmt='%(asctime)s [%(levelname)s][%(name)s:%(lineno)d)][%(funcName)s()] %(message)s')
    handler.setFormatter(formatter)
    _logger.addHandler(handler)
    _logger.setLevel(level)
    return _logger


logging.basicConfig(level=logging.DEBUG, format='%(name)s %(asctime)s: %(levelname)s: %(message)s')
logger = get_custom_logger(__file__)


# make search request
search_req = '{}{}?query={}' \
             '&region_id={}' \
             '&price%5Bmin%5D={}' \
             '&price%5Bmax%5D={}' \
             '&unit={}' \
             '&weight%5Bmin%5D={}' \
             '&weight%5Bmax%5D={}' \
             '&storage_type%5B%5D={}' \
             '&storage_type%5B%5D=2' \
             '&storage_type%5B%5D=3' \
             '&type={}'.format(site_address, page, query,
                               region_id,
                               price_min,
                               price_max,
                               unit,
                               weight_min,
                               weight_max,
                               storage_type,
                               item_type)


def product(html):
    shop = html.find('h1', attrs={'class': 'title'})
    shop = shop.text if shop else ''
    logger.debug('checking shop {}'.format(shop))
    li = html.findAll('li')
    for tag in li:
        if item_type in tag.get('class', []):
            data = {'shop': shop}
            div = tag.find_all('div')
            product_name = html.find('a', href=re.compile("/product/[0-9]+"))
            data['product_name'] = product_name.text if product_name else ''
            for d in div:
                if 'title' in d.get('class', []):
                    data['location'] = d.text.strip().split('   ')[-1]
                if 'av_storage' in d.get('class', []):
                    data['av_storage'] = d.text.strip()
                if 'av_nal' in d.get('class', []):
                    data['av_nal'] = float(d.text.split()[0])
                if 'av_price' in d.get('class', []):
                    if 'руб' in d.text.strip():
                        data['av_price'] = int(d.text.strip().split('руб')[0].replace(' ', ''))
                    else:
                        data['av_price'] = int(d.text.strip().split('$')[0].replace(' ', ''))
            link = tag.find_all('a')
            for l in link:
                if 'btn' in l.get('class', []):
                    data['checkout_link'] = l.attrs['href']
                    data['product_link'] = '/product/{}'.format(l.attrs['href'].split('/')[2])
            if data.get('location'):
                for loc in wanted_loc:
                    if loc in data.get('location'):
                        if data.get('av_nal') < weight_max:
                            logger.debug('adding shop {} and location {}'.format(shop, data.get('location')))
                            yield data


def search(html):
    logger.debug('try to find products on a search page')
    links = []
    products = html.findAll('a', href=re.compile("/product/[0-9]+"))

    # find next page with items
    try:
        next_page = html.findAll('li', attrs={'class': 'pag_right'})
        if next_page:
            next_page = next_page[0].contents[0].attrs['href']
        else:
            next_page = False
    except Exception as search_ex:
        logger.error(search_ex)
        next_page = False

    for p in products:
        links.append('{}{}'.format(site_address, p.attrs['href']))
    links = list(set(links))
    # check all links
    for link in links:
        try:
            n_page = session.get(link).text
        except Exception as search_ex:
            logger.error(search_ex)
            continue
        # going to add items
        for data_item in product(BeautifulSoup(n_page, 'lxml')):
            interesting_item.append(data_item)

    return next_page


next_p = search_req
while next_p:
    try:
        page = session.get(next_p).text
        next_p = search(BeautifulSoup(page, 'lxml'))
    except Exception as e:
        logger.error(e)

for item in interesting_item:
    print(item)

exit(0)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх