подскажите прогу) - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD66352.7491
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 21.10.2009, 23:51   #1
od06
Senior Member
 
Регистрация: 04.09.2008
Сообщений: 174
Бабло: $30090
По умолчанию подскажите прогу)

народ помогите))
есть ли готовые решения для парсинга кеев из гугла - кеев которые внизу выдачи "Searches related to:" ??
именно этих кеев - не из suggestions
od06 вне форума  
Старый 22.10.2009, 02:52   #2
pepper
Senior Member
 
Регистрация: 04.06.2008
Сообщений: 466
Бабло: $172376
По умолчанию

писал когда-то для себя на коленке. выкладываю as is
PHP код:
#!/usr/bin/env python
#coding=utf-8
import httplib,re,urlparse,traceback,random
from time import sleep
from os import system
from urllib import quote_plus
unquote_plus
#================ data ===============
language 'en'
domain_google "www.google.com"
url '''http://%s/search?hl=%s&q={KEYW}&btnG=Search''' % (domain_google,language)
patt_rel '''<a href="/search\?.*?ct=broad-revision.*?">(.*?)</a>'''

#

def save_rsl(keywords):
    
rsl open(unquote_plus(kw_begin)+".txt","a+")
    for 
i in keywords:
        
rsl.write(unquote_plus(i)+"\n")
    
rsl.close()
    
#================ code ===============
try:
    for 
kwr in open("keywords.txt","r").read().splitlines():
        
kw_current ""
        
kw_last = []
        
kw = []
        
kw_tosave = []
        
        while 
1:
            
kw_begin kwr
            
if kw_current == "":
                
kw_current kw_begin
            elif kw_current 
== "none":
                try:
                    
kw_current kw.pop(0)
                    while 
kw_current in kw_last:
                        
kw_current kw.pop(0)
                
except IndexError:
                        
kw_current ''
                        
break
            print 
"[*] Current kw: %s. Last kw: %d. Job: %d" %(kw_current,len(kw_last),len(kw))
            
url1 url.replace("{KEYW}",quote_plus(kw_current))
            
up urlparse.urlparse(url1)
            
conn httplib.HTTPConnection(domain_google)
            
conn.connect()
            
conn.putrequest("GET"up.path+'?'+up.query)
            
conn.putheader("User-Agent""Opera/9.63 (Windows NT 5.1; U; en) Presto/2.1.1")
            
conn.putheader("Accept","text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1")
            
conn.putheader("Accept-Language","en")
            
conn.putheader("Connection","Keep-Alive")
            
conn.endheaders()
            
conn.getresponse()
            
source r.read()
            
#source = open("3.htm","r").read()
            
kw_new re.findall(patt_rel,source,re.I)
            
kw_last.append(kw_current)
            
kw_tosave.append(kw_current)

            if 
len(kw_tosave) % 50 == 0:
                
system("CLS")
                
save_rsl(kw_tosave)
                
kw_tosave = []
            
            if 
kw_new != []:
                for 
i in kw_new:
                    
re.sub("<.*?>","",i)
                    
re.sub('&#(\d+);'lambda xchr(int(x.group(1))), i)
                    if 
i not in kw_last:
                        
kw.append(i)
                
kw_current "none"
                
continue
            
            
elif kw == []:
                print 
"[*] All kw find!"
                
save_rsl(kw_tosave)
                break
            
            else:
                print 
"[*] Not find kw on query:",kw_current
                kw_current 
"none"
                
continue
    
except KeyboardInterrupt:
    
save_rsl(kw_tosave)
    for 
i in kw_last+kw_tosave:
        try:
            
kw.remove(i)
        
except ValueError:
            continue
    
save_rsl(kw)

except:
    
traceback.print_exc(file=open("log.txt","w")) 
парсит related ссылки и следуя по ним собирает новые.
в файле keywords.txt ключевик на строчку.
остановить скрипт с сохранением результатов Ctrl+C
ps: не рекомендую чекать очень распространненые кеи, а то парсер "уйдет от темы". у меня так при исходнлм запросе russia конечный оказался deputy prime minister england
UPD: обновил. теперь можно собирать не только английские кейворды. язык можно задать в параметре language.
UPD1: Добавил чистку дублей и кейвордов.
Вложения
Тип файла: zip relatedk.zip (1.3 Кб, 20 просмотров)

Последний раз редактировалось pepper; 07.02.2010 в 07:11.
pepper вне форума  
Старый 22.10.2009, 13:28   #3
od06
Senior Member
 
Регистрация: 04.09.2008
Сообщений: 174
Бабло: $30090
ТС -->
автор темы ТС По умолчанию

я в пхп вообще не силен - пробую на денвере запустить это - оно вообще на запускается
может я что-то неправильно делаю?
od06 вне форума  
Старый 22.10.2009, 13:33   #4
imgreen
Senior Member
 
Аватар для imgreen
 
Регистрация: 15.11.2008
Сообщений: 13,230
Бабло: $247845871
По умолчанию

Цитата:
Сообщение от od06 Посмотреть сообщение
я в пхп вообще не силен - пробую на денвере запустить это - оно вообще на запускается
может я что-то неправильно делаю?
вообще-то он на питоне
imgreen вне форума  
Старый 22.10.2009, 14:10   #5
od06
Senior Member
 
Регистрация: 04.09.2008
Сообщений: 174
Бабло: $30090
ТС -->
автор темы ТС По умолчанию

разобрался))
вроде все работает))
pepper спасибо огромное

Последний раз редактировалось od06; 22.10.2009 в 14:27.
od06 вне форума  
Старый 22.10.2009, 19:53   #6
pepper
Senior Member
 
Регистрация: 04.06.2008
Сообщений: 466
Бабло: $172376
По умолчанию

но проблем
pepper вне форума  
Старый 20.01.2010, 18:02   #7
dmjROV
Senior Member
 
Аватар для dmjROV
 
Регистрация: 22.06.2008
Сообщений: 603
Бабло: $122240
По умолчанию

апну топик, народ обьясните на пальцах как запустить это скрипт)
я запускаю так python -v script.py, вроде запускается но не работает(
dmjROV вне форума  
Старый 20.01.2010, 18:35   #8
kalombo
Senior Member
 
Регистрация: 20.04.2008
Сообщений: 604
Бабло: $116367
Отправить сообщение для kalombo с помощью ICQ
По умолчанию

Просто два раза кликнуть можешь, если скрипт сразу закрывается, открой консоль набери там путь до скрипта, запусти и посмотри какие ошибки выдает. Всякие python -v необязательны.
kalombo вне форума  
Старый 20.01.2010, 18:38   #9
od06
Senior Member
 
Регистрация: 04.09.2008
Сообщений: 174
Бабло: $30090
ТС -->
автор темы ТС По умолчанию

я после инстала python 2 раза кликаю по файлу и все работает)
od06 вне форума  
Старый 20.01.2010, 21:03   #10
pepper
Senior Member
 
Регистрация: 04.06.2008
Сообщений: 466
Бабло: $172376
По умолчанию

http://www.gofuckbiz.com/showpost.ph...37&postcount=2

Последний раз редактировалось pepper; 31.01.2010 в 14:24.
pepper вне форума