Sunday, June 13th, 2010
Бывает банят по ипу социальные сети, или форумы, или нужно работать с нескольких аккаунтов, короче говоря нужен дополнительный айпи. Если есть свой сервер, где-нибудь в европе или США, то реализовать это довольно просто, нужно лишь поставить Squid :
Fedora/Centos : yum install squid
Ubuntu/Debian : sudo apt-get install squid
Поставим его на автозагрузку (при ребуте)
chkconfig squid on
Старт/Стоп/Рестарт (рестарт нужно делать при обновлении конфига)
service squid start
service squid stop
service squid restart
Посмотреть запущен ли Squid можно так :
pgrep squid
Файл конфигурации должен быть тут : /etc/squid/squid.conf
Если, вдруг, его там нет >>> whereis squid и внимательно втыкаем в показанные папки
По дефолту должно все быть настроено, единственное что нужно это указать свой ип с которого планируется пользоваться прокси.
acl my_work src 192.168.1.0/24
http_access allow my_work
Внимательно правите конфиг, там есть небольшая подъебка, которая неопытных пользователей линукса может ввести в ступор.
После всех объявлений идет такая строчка :
# And finally deny all other access to this proxy
http_access deny all
Т.е. запрет доступа от всего что не перечисленно выше, поэтому все настройки доступа нужно прописывать до этого. Если вам все равно что вашей проксей будут пользоваться все – делаете http_access allow all, тем самым разрешая доступ всему что имеет честь законнектится на 3128 порт. Между делом говоря, деволтный порт так же легко меняется в конфиге :
http_port 3128
Подробнее можно прочитать тут. Если у вас поднять файр, то все несколько сложнее, придется прописывать правила. Squid без проблем работает на OpenVZ контейнере, т.е. на VPS/VDS
Posted in Notes, Proxy, Server | 1 Comment »
Friday, September 4th, 2009
Да-да, теперь не лезет, в свое время многие постарались на славу, чтобы ушатать этот блогхост кодеками и прочими интересными вещами. Но тем не менее даже на данный момент блогспот можно использовать для привлечения траффика, хотя для этого теперь нужно приложить хоть какие-то усилия. Помимо этого хост можно использовать в качестве индексируемой базы данных (я например какое-то время сохранял результаты google hot trends), собрания каких-либо тематических ссылок. На самом деле вариантов масса, в результате будут получаться различные блоги, и если обновленеи будет поставленно на поток, то эти сайты в конечном итоге послужат фундаментом SEO-империи.
Помимо этого гугл любезно предоставляет API для работы с большей частью своих сервисов, все это дело регулярно апдейтится и документируется, скачать библиотеку для Python можно на официальной странице Google GData Python Client. В данном случае нас интересует работа с blogspot.com. Внутри архива Google GData есть подробная (и короткая) инструкция по установке пакетов (package) для Python.
По поводу использования, на активстэйт как обычно все уже сделали до нас, однако в этом примере мой питон выдает ошибку :
TypeError: CreatePost() takes exactly 6 arguments (5 given)
Это легко исправить, функция CreatePost() помимов всего прочего принимает список тэгов которые нужно добавить к посту. В примере не хватает как раз этого параметра, хз в чем прикол, возможно защита от дурака =) Я пофиксил баг (пример работы с blogspot через API), чтобы все запускалось без проблем, нужно только разобраться в коде и использовать уже готовые функции, единственная не поддающаяся автоматизации через API задача – регистрация аккаунтов, но гмыла можно купить, а регистрировать и оформлять блог или руками, или используя софт эмулирующий работу браузера вроде Human Emulator, хардкорные кодеры, конечно могут реализовать это через curl.
Работать через API конечно удобно, если собирать более-менее красивые блоги в небольшом количестве. В остальных случаях, крайне желательно использовать прокси и как вы понимаете этого (во всяком случае прямо) в API не предусмотрено, нужно или хитрить запуская код через различные проксификаторы или править код самой библиотеки.
Posted in GData, Google, Python | No Comments »
Friday, August 14th, 2009
Недавно возникла задача проверять прокси из списка. Посмотрев в гугл, нашел следующий код :
import urllib2
import socket
def is_bad_proxy(pip):
try:
proxy_handler = urllib2.ProxyHandler({'http': pip})
opener = urllib2.build_opener(proxy_handler)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib2.install_opener(opener)
req=urllib2.Request('http://www.example.com') # change the URL to test here
sock=urllib2.urlopen(req)
except urllib2.HTTPError, e:
print 'Error code: ', e.code
return e.code
except Exception, detail:
print "ERROR:", detail
return True
return False
def main():
socket.setdefaulttimeout(120)
# two sample proxy IPs
proxyList = ['125.76.226.9:80', '213.55.87.162:6588']
for currentProxy in proxyList:
if is_bad_proxy(currentProxy):
print "Bad Proxy %s" % (currentProxy)
else:
print "%s is working" % (currentProxy)
if __name__ == '__main__':
main()
Все просто, пытаемся открыть ресурс по адресу example.com (который 100% работает), если открыли – все ок, если нет – то нет. Подгрузить список проксей можно и из файла например так :
# Just load list from file
def LoadListFromFile(filename):
result = []
fileIn = open(filename, 'r')
for line in fileIn:
result.append(line.strip())
fileIn.close()
return result
Posted in Proxy, Python | No Comments »