批量获取及验证HTTP代理的Python脚本

 更新时间:2017年04月23日 22:16:42   投稿:mdxy-dxy  
这篇文章主要介绍了批量获取及验证HTTP代理的Python脚本,需要的朋友可以参考下

HTTP暴力破解、撞库,有一些惯用的技巧,比如:

1. 在扫号人人网时,我遇到单个账号错误两次,强制要求输入验证码,而对方并未实施IP策略。

我采用维护10万(用户名,密码) 队列的方式来绕过验证码。具体的做法是,当某个用户名、密码组合遇到需要验证码,就把该破解序列挂起,放到队列尾部等待下次测试,继续破解其他账号密码。

这样就可以保证2/3的时间都在进行正常破解和扫号。

2. 在破解美团网某系统账号时,我遇到了单个IP访问有一定限制,请求频率不可过快。于是我挂了72个 HTTP代理来解决这个问题。 看似每个IP的请求都正常,但其实从整个程序上看,效率还是挺可观的。

本篇我发出自己抓HTTP的脚本片段,其实只有几行。匿名代理是从这里抓取的:http://www.xici.net.co/nn/

首先获取代理列表 :

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()

接着验证代理是否可用,因为我是用于破解美团网系统的账号,因此用了美团的页面标记:

#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()

相关文章

  • 详解Python的lambda函数用法

    详解Python的lambda函数用法

    今天给大家带来的是关于Python的相关知识,文章围绕着lambda函数用法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 图解Python中的浅拷贝和深拷贝

    图解Python中的浅拷贝和深拷贝

    这篇文章主要介绍了图解Python中的浅拷贝和深拷贝,深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过来了,浅拷贝,拷贝的程度浅,只拷贝原数据的首地址,然后通过原数据的首地址,去获取内容,需要的朋友可以参考下
    2023-11-11
  • 如何利用python实现Simhash算法

    如何利用python实现Simhash算法

    这篇文章主要介绍了如何利用python实现Simhash算法,文章基于python的相关资料展开Simhash算法的详细介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Flask实现的接口响应中存在中文时接口返回为unicode乱码的解决方法

    Flask实现的接口响应中存在中文时接口返回为unicode乱码的解决方法

    本文给大家分享了新版Flask实现的接口响应中存在中文时接口返回为unicode乱码的解决方法,文中通过代码示例和图文介绍的非常详细,如果有遇到相同问题的朋友,可以参考阅读本文
    2023-11-11
  • From CSV to SQLite3 by python 导入csv到sqlite实例

    From CSV to SQLite3 by python 导入csv到sqlite实例

    今天小编就为大家分享一篇From CSV to SQLite3 by python 导入csv到sqlite实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • openstack中的rpc远程调用的方法

    openstack中的rpc远程调用的方法

    今天通过本文给大家分享openstack中的rpc远程调用的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • python实现网站用户名密码自动登录功能

    python实现网站用户名密码自动登录功能

    最近接到这样的需求通过网页用户认证登录实现上网,如何实现网站自动登录功能呢,接下来小编给大家带来了python实现网站用户名密码自动登录功能,需要的朋友可以参考下
    2019-08-08
  • Python 实例进阶之预测房价走势

    Python 实例进阶之预测房价走势

    买房应该是大多数都会要面临的一个选择,当前经济和政策背景下,未来房价会涨还是跌?这是很多人都关心的一个话题。今天分享的这篇文章,以波士顿的房地产市场为例,根据低收入人群比例、老师学生数量等特征,利用 Python 进行了预测,给大家做一个参考
    2021-11-11
  • django 前端页面如何实现显示前N条数据

    django 前端页面如何实现显示前N条数据

    这篇文章主要介绍了django 前端页面如何实现显示前N条数据。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Pycharm使用时会出现的问题之cv2无法安装解决

    Pycharm使用时会出现的问题之cv2无法安装解决

    这篇文章主要介绍了Pycharm使用时会出现的问题之cv2无法安装解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论