批量获取及验证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 相关文章推荐
如何搜索查找并解决Django相关的问题
Jun 30 Python
详解Django中的权限和组以及消息
Jul 23 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
简单实现python数独游戏
Mar 30 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python利用7z批量解压rar的实现
Aug 07 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
python反爬虫方法的优缺点分析
Nov 25 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
PHP URL路由类实例
2013/11/12 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
在vs2010中调试javascript代码方法
2011/02/11 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
Python多继承原理与用法示例
2018/08/23 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Python内置函数property()如何使用
2020/09/01 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
abstract是什么意思
2012/02/12 面试题
Java面试题汇总
2015/12/06 面试题
工商管理专业学生的自我评价
2013/10/01 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
我的梦想演讲稿
2014/04/30 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
职工培训工作总结
2015/08/10 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL