批量获取及验证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中的文本处理
Apr 11 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
详解Python3注释知识点
Feb 19 Python
python中列表的切片与修改知识点总结
Jul 23 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
利用python绘制数据曲线图的实现
Apr 09 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
为什么相对PHP黑python的更少
Jun 21 Python
pytorch 中forward 的用法与解释说明
Feb 26 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
服务器端解压缩zip的脚本
2006/12/22 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
layui表格数据重载
2019/07/27 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
python动态加载变量示例分享
2014/02/17 Python
Python输出9*9乘法表的方法
2015/05/25 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
python如何实现数据的线性拟合
2019/07/19 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
枚举与#define宏的区别
2014/04/30 面试题
汽车驾驶求职信
2013/10/25 职场文书
大四本科生的自我评价
2013/12/30 职场文书
关于毕业的中学校园广播稿
2014/01/26 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
医院见习报告范文
2014/11/03 职场文书
文化大革命观后感
2015/06/17 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript