闪存ing.cnblogs.com是博客园类似推特、饭否的服务,
我写了以下程序可以完成发闪存的操作,目的是顺便练习使用requests库。

requests是一个python 轻量的http客户端库,与比python的标准库优雅很多。

使用以下命令安装requests

pip install requests

抓包工具中看到的http头和cookies会多很多项,其中一些是可以省略掉的。比如我省略掉了Content-Length。

"""
python3使用requests发闪存.py
2016年5月9日 12:50:40 codegay

参考资料requests文档:
http://cn.python-requests.org/zh_CN/latest/
"""

import requests

url='http://ing.cnblogs.com/ajax/ing/Publish'
head={'Accept':'application/json, text/javascript, */*; q=0.01',
      'Origin':'http://ing.cnblogs.com',
      'X-Requested-With':'XMLHttpRequest',
      'Content-Type':'application/json; charset=UTF-8',
      'DNT':1,
      'Referer':'http://ing.cnblogs.com/',
      'Accept-Encoding':'gzip, deflate',
      'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
      
      }

#session 通过抓包工具,或者cookies工具可以得到.

cookies={'.CNBlogsCookie':'67834BD16E61A87726AF2203F849339E8DEFF67BC4A453FDG830AC373CAC83BAAF2312B975279092095A0E143400E82BBEE189BD5CB8826CA6A6E836F69EC5783C410C2B815A833D5816CEB5B457B159A38F'}#←_←填你自己的session
data={"content":"[天上的星星不说话]python大法好{}","publicFlag":1}

s=requests.Session()
for r in range(1,122):
    data['content']="[天上的星星不说话]python大法好{}".format(r)
    post=s.post(url,data,cookies=cookies)
    print(post.text)
    

以下代码用于删除闪存

"""
python3使用requests删除闪存.py
2016年5月9日 22:27:30 codegay

闪存ing.cnblogs.com是一个类似饭否的功能
本程序功能是删除非幸运闪的闪存

参考资料requests文档:
http://cn.python-requests.org/zh_CN/latest/
"""

import requests
import re


def timeit(fn):
    import time
    def v():
        start=time.clock()
        fn()
        end=time.clock()-start
        print(fn.__name__,"运行耗时:",end)
    return v
        
        
        
        
url='http://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=my&PageIndex=1&PageSize=30'
head={'Accept':'application/json, text/javascript, */*; q=0.01',
      'Origin':'http://ing.cnblogs.com',
      'X-Requested-With':'XMLHttpRequest',
      'Content-Type':'application/json; charset=UTF-8',
      'DNT':1,
      'Referer':'http://ing.cnblogs.com/mobile/',
      'Accept-Encoding':'gzip, deflate',
      'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
      
      }
cookies={'.CNBlogsCookie':'989A8F9SF9SF989S982938492849823498239489284989SDF89S89F8E98F9S88E9R89WER898R989R23423J4K2529R8FS7R2K48978S7DF8'}

s=requests.Session()
@timeit
def geting():
    data={'ingId':'878581'}
    r=s.get(url,cookies=cookies)
    text=r.text
    ingid=re.findall('''feed_content_(\d+)(.+?天上的星星不说话.+?DelIng)''',text,re.DOTALL)
    #ingid=re.findall('''feed_content_(\d+)''',text)
    #print(ingid)    
    notlucky=[a for a,b in ingid if 'ing_icon_lucky' not in b]
    for x in notlucky:
        data['ingId']=x
        try:
            sdel=s.post("http://ing.cnblogs.com/ajax/ing/del",cookies=cookies,data=data)
            print(sdel.text)
        except:
            pass
        
for xxx in range(18):
    
    geting()