Board logo

标题: [原创代码] 严格来讲是给在OSC上贡献过内容的OSC用户刷积分 [打印本页]

作者: codegay    时间: 2016-5-25 18:15     标题: 严格来讲是给在OSC上贡献过内容的OSC用户刷积分

本帖最后由 codegay 于 2016-5-25 18:18 编辑

严格来讲是给在OSC上贡献过内容的OSC用户刷积分。

OSC很多操作都需要消耗积分,很多人给OSC贡献了内容,
但是却没有人点赞,所以有些人在OSC混了很多年也没有积分。

本文中使用到的工具有gifcam 、fiddler 、Wireshark。gifcam 是一个小巧的GIF录屏软件,可以把你电脑上的操作录成GIF动图。
fiddler是一个专注于http抓包的工具,Wireshark知名网络抓包工具.

使用到的第三方python库有requests,非常好用的http库.
tqdm 是一个字符界面的进度条库,用来显示一个进度条.


以下给OSC代码频道点赞的HTTP抓包:
  1. POST http://www.oschina.net/action/code/vote?user=96078&id=56399&vote=true HTTP/1.1
  2. Host: www.oschina.net
  3. Connection: keep-alive
  4. Content-Length: 0
  5. Accept: */*
  6. Origin: http://www.oschina.net
  7. X-Requested-With: XMLHttpRequest
  8. User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
  9. DNT: 1
  10. Referer: http://www.oschina.net/code/snippet_2294527_56399
  11. Accept-Encoding: gzip, deflate
  12. Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
  13. Cookie: aliyungf_tc=AQAAAPQVanIYog4AcqTY3miEpBuE23as; oscid=E6bU16Ju1HvE6Yzbnu8glj%2F9WLxOYWRWYxXAtsj0Aej07gXXkM40x8fUrYQQC%2BjMrW1%2FQHYHaASCi3mDoeDQrJ%2Bp%2B5Osd1yhR737Ok7o%2BpTQTh4UQ6bITg%3D%3D
复制代码
![]()

给代码频道刷积分的python代码:
  1. """
  2. 2016年5月24日 09:06:46 codegay
  3. 进度条库tqdm 的github地址:
  4. https://github.com/noamraph/tqdm
  5. """
  6. from requests import post
  7. from tqdm import trange
  8. from time import sleep
  9. #tqdm是一个字符界面的进度条库
  10. #安装命令pip install tqdm
  11. httphead={'Accept':'*/*',
  12. 'Origin':'http://www.oschina.net',
  13. 'X-Requested-With':'XMLHttpRequest',
  14. 'User-Agent':'Safari/537.36',
  15. 'DNT':'1',
  16. 'Referer':'http://www.oschina.net/code/snippet_2294527_56399',
  17. 'Accept-Encoding':'gzip, deflate',
  18. 'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
  19.     }
  20. cookie={'aliyungf_tc':'AQAAAPQVanIYog4AcqTY3miEpBuE23as',
  21.         'oscid':'E6bU16Ju1HvE6Yzbnu8glj%2F9WLxOYWRWYxXAtsj0Aej07gXXkM40x8fUrYQQC%2BjMrW1%2FQHYHaASCi3mDoeDQrJ%2Bp%2B5Osd1yhR737Ok7o%2BpTQTh4UQ6bITg%3D%3D',
  22.         
  23.         }
  24. url='http://www.oschina.net/action/code/vote?user=96078&id={0}&vote=true'
  25. for r in trange(56422,1,-1):
  26.     try:
  27.         post(url.format(r),headers=httphead,cookies=cookie)
  28.         sleep(0.1)
  29.     except:
  30.         pass
  31.    
复制代码
以下是fiddler 给翻译段落点赞的抓包:
  1. POST http://www.oschina.net/action/translate/vote_block HTTP/1.1
  2. Host: www.oschina.net
  3. Connection: keep-alive
  4. Content-Length: 19
  5. Accept: */*
  6. Origin: http://www.oschina.net
  7. X-Requested-With: XMLHttpRequest
  8. User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
  9. Content-Type: application/x-www-form-urlencoded
  10. DNT: 1
  11. Referer: http://www.oschina.net/translate/use-open-source-to-hone-your-programming-skills
  12. Accept-Encoding: gzip, deflate
  13. Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
  14. Cookie: aliyungf_tc=AQAAAPQVanIYog4AcqTY3miEpBuE23as; oscid=E6bU16Ju1HvE6Yzbnu8glj%2F9WLxOYWRWYxXAtsj0Aej07gXXkM40x8fUrYQQC%2BjMrW1%2FQHYHaASCi3mDoeDQrJ%2Bp%2B5Osd1yhR737Ok7o%2BpTQTh4UQ6bITg%3D%3D
  15. id=50710&user=96078
复制代码
![]()


以下python代码是给osc贡献翻译的段落点赞:
  1. """
  2. 2016年5月24日 09:06:46 codegay
  3. 进度条库tqdm 的github地址:
  4. https://github.com/noamraph/tqdm
  5. """
  6. from requests import post
  7. from tqdm import trange
  8. from os import system
  9. from time import sleep
  10. system("title 给所有的翻译刷段落积分~")
  11. system("date /t&time /t&echo 积分刷起来~~~")
  12. print()
  13. #tqdm是一个字符界面的进度条库
  14. #安装命令pip install tqdm
  15. httphead={'Accept':'*/*',
  16. 'Origin':'http://www.oschina.net',
  17. 'X-Requested-With':'XMLHttpRequest',
  18. 'User-Agent':'Safari/537.36',
  19. 'DNT':'1',
  20. 'Referer':'http://www.oschina.net/translate/use-open-source-to-hone-your-programming-skills',
  21. 'Accept-Encoding':'gzip, deflate',
  22. 'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
  23. 'Content-Type':'application/x-www-form-urlencoded',
  24.     }
  25. cookie={'aliyungf_tc':'AQAAAPQVanIYog4AcqTY3miEpBuE23as',
  26.         'oscid':'E6bU16Ju1HvE6Yzbnu8glj%2F9WLxOYWRWYxXAtsj0Aej07gXXkM40x8fUrYQQC%2BjMrW1%2FQHYHaASCi3mDoeDQrJ%2Bp%2B5Osd1yhR737Ok7o%2BpTQTh4UQ6bITg%3D%3D',
  27.         
  28.         }#把cookie的内容改为你自己的
  29. url='http://www.oschina.net/action/translate/vote_block'
  30. for r in trange(48700,1,-1):
  31.     try:
  32.         post(url,headers=httphead,data="id=%s&user=96078" %r,cookies=cookie)
  33.         #data内容为"id=段落ID&user=你的用户ID"
  34.         sleep(0.1)#如果不加上延时,会因为发包速度过快而无法访问。
  35.     except:
  36.         print()
  37.         print("异常错误~~~")
  38.         sleep(0.6)
  39.         
  40. print()        
  41. system("date /t&time /t&echo 完成&pause")
复制代码
代码改一下变成可以给所有的博客投票,
以下python代码是给所有博文点赞(投票):
  1. """
  2. 2016年5月24日 23:31:59 codegay
  3. 进度条库tqdm 的github地址:
  4. https://github.com/noamraph/tqdm
  5. """
  6. from requests import post
  7. from tqdm import trange
  8. from os import system
  9. from time import sleep
  10. system("title 给所有的博文刷赞~")
  11. system("echo %date%--%time%&echo 积分刷起来~~~")
  12. print()
  13. #tqdm是一个字符界面的进度条库
  14. #安装命令pip install tqdm
  15. httphead={'Accept':'*/*',
  16. 'Origin':'http://my.oschina.net',
  17. 'X-Requested-With':'XMLHttpRequest',
  18. 'User-Agent':'Safari/537.36',
  19. 'DNT':'1',
  20. 'Referer':'http://my.oschina.net/u/186074/blog/680717',
  21. 'Accept-Encoding':'gzip, deflate',
  22. 'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
  23. 'Content-Type':'application/x-www-form-urlencoded',
  24.     }
  25. cookie={'aliyungf_tc':'AQAAALDYyTFLZwwAcqTY3pZyAZSxJNIk',
  26.         'oscid':'nVDZrYAPMi%2FR2DZLfIcwbadLUjBb%2BWuZNxhgCRaV59KRNuCVjUrMHg9OtGoiahQwwRTnT13C%2BF4Vu31QIkTRPvcpcBKVm%2FG%2BQfTw6q3ZCz7zQa7OpgMaD%2BsIy9RU4DtH',
  27.         
  28.         }#把cookie的内容改为你自己的
  29. url='http://my.oschina.net/action/blog/vote'
  30. for r in trange(681017,1,-1):
  31.     try:
  32.         post(url,headers=httphead,data="id=%s&user=2772660" %r,cookies=cookie)
  33.         #data内容为"id=段落ID&user=你的用户ID"
  34.         sleep(0.15)
  35.     except:
  36.         print()
  37.         print("异常错误~~~")
  38.         sleep(0.6)
  39.         
  40. print()        
  41. system("echo %date%--%time%&&echo 完成&pause")
复制代码
坑点:
1、如果开着fiddler,运行python程序的时候,会走fiddler的代理,发包速度会大降低,大约是几秒一个包.
2、python单进程发包速度大约是一秒10个左右(没有测试过,估计的),osc会检测访问频率,频率过高会显示一个错误页。所以有必要加sleep限制一下发包的速度。
3、我已经被红薯封号。所以,你们懂的,再慢点。
作者: happy886rr    时间: 2016-5-25 20:02

本帖最后由 happy886rr 于 2016-5-25 20:04 编辑

回复 1# codegay
相当不错,这篇文章写得很清晰,分析很透彻。
看图片,像是win8.1系统。
作者: codegay    时间: 2016-5-25 20:31

回复 2# happy886rr


差不多。    windows 2012 server
很不好用。心力不够用,懒得装别的系统了。
作者: happy886rr    时间: 2016-5-25 21:01

回复 3# codegay
为何不用虚拟机,我一直用微软的30M大小的Virtual_PC_2007虚拟机,在里边跑自己精简的35M大小的xp系统,在xp里运行C编译器和360杀毒。也能跑ubuntn麒麟。
作者: codegay    时间: 2016-5-25 21:16

回复 4# happy886rr


    我用虚拟机只是为了搞测试用。
作者: happy886rr    时间: 2016-5-25 22:00

回复 5# codegay
我业余学下计算机,感觉越学越复杂,语言太多,分类太多,不可能样样都学。学了x86平台,还有安卓\ios平台等着去学。网页编程语言也有好几种,数据库也有好多种。到现在每门都学得一知半解,很难达到专业级水平。
作者: codegay    时间: 2016-5-25 22:51

回复 6# happy886rr


    我也算是业余。

我也是摸过杂七杂八的东西。工作上用不上,久了自忘光。我属于记性特别差那种。

我现在基本只专注用python做各种东西练手。不想再走以前的老路了。

所以你要是想换行,可以先玩玩看,选一个感兴趣的方向,先专注学只一个方向上的技术。

你和523066680一样,是我觉得不干编程研发一类的工作是浪费。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2