批量获取及验证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使用PyV8执行javascript代码示例分享
Dec 04 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
使用Python的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
python字典的常用操作方法小结
May 16 Python
深入理解Django的自定义过滤器
Oct 17 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python 自由定制表格的实现示例
Mar 20 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php实现简单文件下载的方法
2015/01/30 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
介绍一下gcc特性
2012/01/20 面试题
商务考察邀请函范文
2014/01/21 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
中小学生学籍证明
2014/10/25 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
健康状况证明书
2014/11/26 职场文书
2015年推普周活动总结
2015/03/27 职场文书
2016继续教育研修日志
2015/11/13 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书