Скрипт проверки индексации сайта гуглем

Nov 08, 2009 05:02

А под катом - скрипт для проверки на индексацию сайта гуглем, с несколько нестандартным подходом. Написан, не совсем правильно, местами в быдло-стиле, но работает! )
Входные данные: файл "qcw.txt" - желательно, чтобы перевод строк был "\n" (Unix-формат), а не "\r\n" (Windows-формат). Сайты во входняке должны быть каждый с новой строки и без "http://". Пример: "yandex.ru"
Выходные данные: файл "out.csv" - можно сразу импортить в эксель.

Ещё раз напомню, что прогу писал давно, и уже гораздо более продвинулся в изучении и понимании Питона, а рефакторить ещё ленюсь )

# -*- coding: cp1251 -*-
import urllib, re, random, time

#################################################
# This script checking REAL #
# site indexation by Google #
#################################################

"""
1. site:site.ru (IMAGE) (http://www.google.com/search?&q=inurl:http://site.ru&filter=0)
2. if exist page 2, checking from it (REAL) (http://www.google.com/search?hl=ru&q=inurl:http://site.ru&start=10&sa=N&filter=0)
"""

#im1 = ('http://www.google.com/search?hl=ru&q=inurl:http://') #site.ru('&filter=0')
#im2 = ('&filter=0')
rl1 = ('http://www.google.com/search?hl=ru&q=inurl%3A%22http://') #site.ru('&start=990&sa=N&filter=0')
rl2 = ('&start=990&sa=N&filter=0&sa=X&oi=nshc&resnum=1&ct=more-results')

opener = urllib.URLopener()

#################################
# Opening file with sites #
# and prepare list #
#################################

inp = open("gcw.txt", 'r')
l = inp.read()
inp.close()
del inp
l = l.split('\n')
l.remove('')

#################################
# ...testing one site... #
# #
#################################
def cnt(iorr1, iorr2, s):
global opener, f, text, pt, sr, gr, e, patt
opener.addheaders = []
r = random.randrange(10, 99)
opener.addheader("User-Agent", r'Opera/9.'+str(r)+' (Windows NT 5.1; U; MRA 5.5 (build 02'+str(r)+'2); ru) Presto/2.1.1')
time.sleep(7)
f = opener.open(iorr1+s+'%22%20+site:'+s+iorr2)
time.sleep(7)
cde = f.getcode()
if cde == 403:
print "403 Forbidden: Your client does not have permission to get URL"
text = f.read()
#text = text.decode('utf-8')
#text = unicode(text)
#text = text.decode('cp1251')
#f.close()
#del f

###########
# Parsing
###########

#sr = re.findall(' \xd0\xa0\xd0\xb5\xd0\xb7\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x82\xd1\x8b [\d]+ - [\d]+ \xd0\xb8\xd0\xb7 ([\d]+) \xd0\xb4\xd0\xbb\xd1\x8f inurl:http:', text)
sr = re.findall(' \xd0\xa0\xd0\xb5\xd0\xb7\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x82\xd1\x8b: [\d]+ - [\d]+ \xd0\xb8\xd0\xb7 ([\d]+) \xd0\xb8\xd0\xb7 \xd0\xb4\xd0\xbe\xd0\xbc\xd0\xb5\xd0\xbd\xd0\xb0 ', text)
if not sr:
print "Null!"
return 0
else:
gr = sr[0]
return gr

i = 0
out = file("out.csv", 'wb')
while i < len(l):

### image ###
#im = cnt(im1, im2, l[i])
#print str(i)+". IMAGE:", l[i], im
#time.sleep(7)
rl = cnt(rl1, rl2, l[i])
print str(i)+". REAL:", l[i], rl
time.sleep(7)
### write to file ###
if i == 0:
#out.write('"image",,,"real",\n"URL","pages",,"URL","pages"\n"'+l[i]+'",'+str(im)+',,"'+l[i]+'",'+str(rl)+'\n')
out.write('"URL","pages"\n"'+l[i]+'",'+str(rl)+'\n')
else:
#out.write('"'+l[i]+'",'+str(im)+',,"'+l[i]+'",'+str(rl)+'\n')
out.write('"'+l[i]+'",'+str(rl)+'\n')
i += 1

out.close()

Вроде, дофига всяких, более "прямых" сервисов и прог на эту тему, но Вы просто сравните результаты. Увидите разницу. Можете даже сказать мне, что это за странная разница.

python, seo, гугл