批量获取及验证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+OpenCV人脸检测原理及示例详解
Oct 19 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
pycharm 安装JPype的教程
Aug 08 Python
Python数据存储之 h5py详解
Dec 26 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
python实现猜数游戏
Mar 27 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
python实现扫雷小游戏
Apr 24 Python
python怎么判断模块安装完成
Jun 19 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
matplotlib更改窗口图标的方法示例
Feb 03 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
Python语言生成水仙花数代码示例
2017/12/18 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
Django异步任务线程池实现原理
2019/12/17 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
清明节网上祭英烈活动总结
2014/04/30 职场文书
生物科学专业自荐书
2014/06/20 职场文书
校庆团日活动总结
2014/08/28 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
2014年团队工作总结
2014/11/24 职场文书
自荐信模板大全
2015/03/27 职场文书
盗窃案辩护词
2015/05/21 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
电影开国大典观后感
2015/06/04 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
使用Redis实现点赞取消点赞的详细代码
2022/03/20 Redis