0. 参考

yu961549745/WeiboBlackList  微博批量拉黑

1. 代码 block.py

更新内容:多线程,urllib.request 改为 requests + session

改成从 firefox 或 chrome 读取 cookie 更方便,懒得改了

#!/usr/bin/env python
# -*- coding: UTF-8 -*import requests
from requests.exceptions import (ConnectionError, ConnectTimeout, ReadTimeout, SSLError,ProxyError, RetryError, InvalidSchema)
import threading
import Queue
import tracebackimport logging
def get_logger():logger = logging.getLogger("threading_example")logger.setLevel(logging.DEBUG)# fh = logging.FileHandler("d:/threading.log")fh = logging.StreamHandler()fmt = '%(asctime)s - %(threadName)-10s - %(levelname)s - %(message)s'formatter = logging.Formatter(fmt)fh.setFormatter(formatter)logger.addHandler(fh)return loggerlogger = get_logger() def block():while True:try:uid = task_queue.get()data = dict(payload)  #dictdata.update({'uid': uid})resp = s.post(url, data=data)except (ConnectionError, ConnectTimeout, ReadTimeout, SSLError,ProxyError, RetryError, InvalidSchema) as err:task_queue.task_done()  ############### 重新 put 之前需要 task_done ,才能保证释放 task_queue.join()
            task_queue.put(uid)     except Exception as err:logger.debug(u'\nuid: {}\nerr: {}\ntraceback: {}'.format(uid, err, traceback.format_exc()))task_queue.task_done()  ############### 重新 put 之前需要 task_done ,才能保证释放 task_queue.join()
            task_queue.put(uid)else:try:code = resp.json()['code']if code != '100000':logger.debug(u'uid: {} code: {}'.format(uid, code))else:logger.debug(u'uid: {}'.format(uid))    except Exception as err:logger.debug(u'\nuid: {}\nresp: {}\nerr: {}\ntraceback: {}'.format(uid, resp.text, err, traceback.format_exc()))finally:task_queue.task_done()if __name__ == '__main__':# lines: request in raw format captured from Fiddler '''['POST http://weibo.com/aj/filter/block?ajwvr=6 HTTP/1.1','Host: weibo.com','User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0','Accept: */*','Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Accept-Encoding: gzip, deflate','Content-Type: application/x-www-form-urlencoded','X-Requested-With: XMLHttpRequest','Referer: http://weibo.com/u/5471246591?is_hot=1','Content-Length: 57','Cookie: your cookie###########################################','Connection: keep-alive','','uid=5471246591&filter_type=1&status=1&interact=1&follow=1']'''# 移除黑名单:# In [317]: url2='http://weibo.com/aj/f/delblack?ajwvr=6'# In [318]: resp = s.post(url2, data={'uid':'5209943797'})# In [320]: resp.json()# Out[320]: {u'code': u'100000', u'data': {}, u'msg': u''}
    with open('uids.txt') as f:uids = [uid.strip() for uid in f.readlines()]with open('headers.txt') as f:lines = [i.strip() for i in f.readlines()]url = lines[0].split()[1] headers = {}for line in lines[2:-2]:k, v = line.split(': ',1)  #:spaceheaders[k] = vdata=lines[-1]# datas = [re.sub(r'uid=\d+','uid=%s'%uid ,data) for uid in uids]payload = dict([i.split('=',1) for i in data.split('&')])# payloads = [payload.update({'uid': uid}) for uid in uids]# payloads = []# for uid in uids:# payload.update({'uid': uid})# payloads.append(dict(payload))  ### dict# for payload in payloads:# r = requests.post(url, headers=headers, data=payload)# r.text# {"code":"100000","msg":"\u96b1\u85cf\u6210\u529f","data":{}}        # In [287]: r.json()['code']# Out[287]: u'100000'
s = requests.Session()s.headers = headerss.mount('http://', requests.adapters.HTTPAdapter(pool_connections=1000, pool_maxsize=1000))task_queue = Queue.Queue()        for uid in uids:task_queue.put(uid)threads = []for i in range(100):t = threading.Thread(target=block)  #args接收元组,至少(a,)
        threads.append(t)for t in threads:t.setDaemon(True) t.start()  task_queue.join()    print 'task done'

转载于:https://www.cnblogs.com/my8100/p/7649965.html

wb 黑名单批量操作相关推荐

  1. python下载文件暂停恢复_python下载文件记录黑名单的实现代码

    具体代码如下所示: #!/usr/bin/python # -*- coding: GBK -*- # -*- coding: UTF-8 -*- from ftplib import FTP imp ...

  2. python下载后是黑的_python下载文件记录黑名单的实现代码

    具体代码如下所示: #!/usr/bin/python # -*- coding: GBK -*- # -*- coding: UTF-8 -*- from ftplib import FTP imp ...

  3. python︱批量操作文件(os)、图片操作技巧(下载网络图片、skimage.io)

    文章目录 @[toc] . 一.遍历操作文件 1.文件名字获取 **注意,不能`import glob` ,不然就会报错:** 2.批量重命名文件os.rename 直接修改了上级目录,test2.t ...

  4. Redis数据结构Set应用场景--黑名单校验器、京东与支付宝抽奖、微博榜单与QQ群的随机展示、帖子点赞、关注与粉丝、微关系计算、HyperLogLog的入门使用

    Set应用场景 set命令使用 淘宝黑名单 一.黑名单过滤器业务场景分析 二 .解决的技术方案 三.SpringBoot+redis模仿实现校验器 京东京豆抽奖 一.京东京豆抽奖的业务场景分析 二.京 ...

  5. 8、【办公自动化】Python实现PDF文件的批量操作

    说明 平时工作中,经常会和 PDF 文件打交道,比如,合并.拆分.加解密.添加和去除水印.提取指定内容.转换成其他文件格式等操作.如果只是处理单个 PDF 文件的话,有些操作是比较简单的,而如果需要批 ...

  6. wps js宏实战案例:批量汇总订单数据、识别黑名单、自动统计业绩、每笔订单生成带条形码的发货单并输出为pdf文件用于打印

    wps js支持ES6语法,对比vba能节省非常多的代码量,不过缺点也很明显,wps js环境暂时不支持调用win系统组件和第三方控件.小声比比:可能有调用的方法,只是我没发现. 基本需求: 可以选择 ...

  7. WebBuilder中知识点:批量操作、combo、radio、复选框控件的使用

    一.WebBuilder中对grad列表设置复选框按钮 如图:,实现方法:在grad属性里面设置selType属性为checkboxmodel,multiSelect也最好设置为true.设置完之后, ...

  8. 使用Python实现对word的批量操作

    Python在平时写写小工具真是方便快捷,Pyhon大法好.以下所有代码都是找了好多网上的大佬分享的代码按照自己的需求改的. 调用的库为Python-docx.win32com.PyPDF2.xlwi ...

  9. PHP解决方案@黑名单过滤

    为什么80%的码农都做不了架构师?>>>    方案解决目标:对一些黑名单进行过滤处理 function is_spam($text, $file, $split =':', $re ...

最新文章

  1. mysql 自定义哈希函数_C++ STL无序容器自定义哈希函数和比较规则(超级详细)...
  2. 商品规格表设计_400㎡美容院装修设计,为什么说无中式不贵气?
  3. 示波器1m和50欧姆示阻抗匹配_为什么示波器阻抗偏偏是1M和50欧?-测试测量-与非网...
  4. Bicoloring
  5. LinearLayout的一些注意事项
  6. linux ssh和scp,Linux SSH 与 SCP命令简述
  7. Java默认类型,类型转换,常量与变量笔记
  8. 数据密集型应用系统设计--数据分区
  9. java读写mysql数据库_Java读写MySQL数据库小实例
  10. android用户头像保存,Android的登陆注册(sharedpreferences和SQLite保存以及头像上传显示...
  11. 日期格式有0_JavaScript 时间戳转成日期格式
  12. 招募贴:Hadoop专业解决方案招募义务翻译人员
  13. ffmpeg rtmp 不清晰_SRS流媒体服务器之RTMP协议分析(2)
  14. LaTex的箭头符号及命令
  15. 惠普笔记本电脑重装系统后找不到引导设备
  16. php生成推广二维码海报、合成图片demo
  17. 旧手机怎么当文件服务器,用旧手机做云存储服务器
  18. 用ado把excel数据写入oracle,如何将excel表格数据导入到oracle数据库对应的表中?!oracle导出excel文件...
  19. 九个问题从入门到熟悉HTTPS
  20. 3D模型文件--STL,OBJ,3DS

热门文章

  1. 小组座谈主持人基本素质要求
  2. 计算机专业买小新pro13锐龙怎么样,【小新Pro13锐龙版测评联想小新锐龙版怎么样】续航|屏幕_摘要频道_什么值得买...
  3. Redis的缓存原理
  4. vue input或者el-input苹果软键盘换行变成发送 安卓软键盘开始变成发送
  5. 说说 Redis 缓存穿透场景与相应的解决方法
  6. 基于CNn的MINIST手写体识别
  7. ubuntu 安装JDK11\JRE配置
  8. python随机森林变量重要性_python中随机森林如何优化
  9. ACTIVITI 5.22 表结构详情
  10. [C++]日期类计算器的模拟实现