Парсим wordstat без капчи

Не все знают, как можно парсить wordstat без бана, сегодня я расскажу как это можно сделать.  Вся фишка в сервисе kiks.yandex.ru, который используется для идентификации реального пользователя, через него мы и будем парсить сколько нам влезет. Из кода вырезаны пару интересных особенностей, поэтому он может не правильно работать, проверяйте сами, если что поправлю. Многопоточно реализовывать можете не пробовать, там нужна ещё одна хитрость, иначе получите бан по ip :) .


#coding:utf-8
from grab import Grab
import threading,Queue,re,time,random
from urllib import quote_plus
lock = threading.RLock()
queue = Queue.Queue()

class WordStat(object):
    def __init__(self):
        self.min = 30
        self.max = 3000
        self.used = []
        self.cook = self.magic_cookie()
        open("parsing.txt","w")

    def write(self,data,name,mode='a+'):
        lock.acquire()
        put = open("%s.txt"%(name),mode)
        put.write(data)
        put.flush()
        put.close()
        lock.release()   

    def parse(self,key):
        page = 1
        query_safe = quote_plus(key.encode('utf-8'))
        g = Grab()
        for i in xrange(3):
            try:
                url = 'http://wordstat.yandex.ru/?cmd=words&page=%d&text=%s&geo=&text_geo=' % (page, query_safe)
                g.setup(url=url,cookies=self.cook,timeout=150,)
                g.request()
                for tr in  g.xpath('//tr[@class="tlist"]'):
                    items = [x.strip().encode('utf-8') for x in tr.xpath('td//text()')]
                    kkey = self.clear(items[1])
                    count = items[-1]
                    if (kkey not  in self.used)  and (int(count)>self.min):
                        queue.put(kkey)
                        self.used.append(kkey)
                        if (int(count)0:
            self.parse(queue.get_nowait()) 
 
w = WordStat()
w.go()
  • http://www.seocoder.org/ SeoCoder

    не вижу запросов на kiks

    • http://klipner.ru/ RushteR

      Добавил :)

  • http://seo13.ru SkYmAn

    Интересно, а методик парсить выдачу без каптчи не знаете? :)

    • http://klipner.ru/ RushteR

      Знаю, если будет желание, то поделюсь.

      • http://seo13.ru SkYmAn

        Если вы о моем желании то оно есть :)

  • Саша

    а wordstat поидее не довал парсить без этой куки уже как года пол

  • Sadsad

    Rush, слушай, я после твоего поста решим поизучать питон, но чето как то тяжело идет. Очень много геморра с установкой модулей нужных, по самому языку то вопросов нет пока. Вчера всю ночь колупался чтобы установить LXML, она то ставится, но не хочет работать, как я понял из-за отсутствия libxml2 и libxsl (или как то атк, забыл). А вот как ставить   
    libxml2 я так пока и не дошел. 

    Если будет настроение, может напишешь пост о том как ты ставишь плагины.

    Я на винде ставил тупо устанавливая .exe, потом пробовал с помощью easy_install из .egg файлов. Но есть еще какой то способ устанавливать из архива, где исходники, как это сделать чето вообще не ясно.. что для этого нужно и т.п.

    Естественно я продолжу гуглить и надеюсь в результате разберусь, но как то пока не видать внятного простого манула и разъяснением моментов установки модулей. Отсюда к тебе и такое предложение, описать это в блоге, думаю этот пост поможет многим новичкам. 

  • Алекс

    Раш, есть ли сейчас возможность парсить вордстат без капчей многопоточно при наличии большого числа приватных проксей с авторизацией по логину и паролю(проксей 415 штук)?