把抽奖活动写成一篇技术博客是怎样一种体验

                       

把抽奖活动写成一篇技术博客是怎样一种体验

本次活动预备知识贴:天罗地网——Python爬虫初初初探

http://blog.csdn.net/eclipsexys/article/details/48193541

请一定先了解下,不然就真的是为了抽奖了!

抽抽抽抽抽抽奖

我的新书《Android群英传》上市不久,为了回报各位的大力推荐,也希望更多的人能多多支持,特准备此次抽奖活动。

抽奖对象

只要在本博客中留言,即可参与抽奖活动。

留言内容如下:

  1. 已购买《Android群英传》的朋友,请在微博中发帖并@Tomcat的猫 (http://weibo.com/1904977584),并在本博客中贴出你的微博地址
  2. 或者直接贴出购买链接的地址,并告知我你的用户名
  3. 如果你还未购买,那就帮忙转发微博(宣传本书即可,最好配图哈),获得15个以上赞(我肯定会帮你赞的哈~~),并在本博客中贴出你的微博地址
  4. 以前在微博、微信中已经宣传过的,只要在评论中@我一下,并在本博客中留言——“已宣传”,并写上你的微信号,就OK了
 

PS 请不要重复评论,虽然可以增加我的人气,但对抽奖概率,不会有丝毫影响哦。

   

PS 请不要欺骗医生真挚纯洁真诚善良的心!

   

PS 如果你不要我的书也不要我的补贴,但是你却中奖了,那请你直接来上海,浦软大厦703,我!请!你!吃!食!堂!。

奖品!!!

  • 未购买《Android群英传》的,奖品为签名版《Android群英传》一本(如果觉得我的字太丑,我也支持画押)
  • 已购买《Android群英传》的,奖品为报销你的买书钱

写书不易,一本书我只赚4块钱,请大家本着社会主义的核心价值观,请不要欺骗我真挚的感情~~~~

奖品数量

(comments / 40) + 1

截止时间

抽奖时间,暂定于2015年9月25日中秋前夕。希望给大家带来一份不错的中秋礼物。


下面是技术帖下面是技术帖下面是技术帖下面是技术帖


如何实现抽奖

抽奖的方式很简单,统计所有的有限留言,获取他们的用户名,通过随机数来确定中奖的人的用户名。

作为一个技术宅,我当然不想自己去统计,能自动化的就不要用女朋友,能写脚本的就不用女朋友。所以,本博客的实际目的在于教大家如何正确的去使用女朋友,哦,不对,是正确的使用脚本。

分析

首先我们来看CSDN博客的评论系统。

这里写图片描述

哎呀我真不是故意截这么多赞美的,请无视。

我们打开Chrome的审核元素:

用放大镜找到用户名:

这里写图片描述

然后点击右键去找源代码,可是,我们突然发现,不对呀,源代码中根本就没有这些评论信息啊。

哦,这样应该也对,评论的加载,应该是用ajax的吧,不然我们每次评论后,肯定会刷新整个页面咯。

OK,那么我们就来到Network标签,刷新页面,获取数据:

这里写图片描述

显示评论所调用的js,就在这些文件当中,我们慢慢找吧。

首先,我们尝试着先过滤几个关键字,比如 comment:

这里写图片描述

哎哟不错哦,第一个链接看上次嫌疑很大啊,点击右键,新窗口打开:

这里写图片描述

看来,英语好的人运气都不会太差。
这样我们就非常简单的获取了获得评论的地址:

http://blog.csdn.net/eclipsexys/comment/list/47405045?page=1

从URL可以看出来,只是加了个用户名作区分。

OK,下面我们可以通过:

  1. 通过Python爬取动态加载的网站
  2. 通过Scrapy框架进行爬虫搜索
  3. 尼玛,这就是返回了一个Json啊

还爬什么爬,直接请求这个接口,咱们就拿到这些数据了,所以,前面说的本篇的预备帖,好吧,其实是骗流量的。

实现

实现就非常简单了,尼玛,接口都有了,拿了数据,去除重复评论的、无效的评论、回复的评论,剩下的就是有效数据了。

上Python,让看了预备帖的人不至于扫兴而归:

# coding:utf-8import requestsimport jsonimport randomclass Prize(object):    def __init__(self):        print u'开始抽奖啦'    # 获取网页信息    def getSource(self, url):        head = {            'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}        html = requests.get(url, headers=head)        html.encoding = 'utf-8'        return html.text    # 获取所有评论信息    def getAllCommentInfo(self, source):        return json.loads(source)['list']    # 保存到文件    def saveinfo(self, commentInfo):        f = open('info.txt', 'w')        for each in commentInfo:            print each            f.writelines('UserName:' + each + '\n')        f.close()if __name__ == '__main__':    # 设定获奖人数    winnerCount = 1    userList = []    url = "http://blog.csdn.net/eclipsexys/comment/list/47405045?page=1"    androidHeros = Prize()    html = androidHeros.getSource(url)    commentsInfo = androidHeros.getAllCommentInfo(html)    for each in commentsInfo:        if '[reply]' not in each['Content'] and each['UserName'] not in userList:            userList.append(each['UserName'])    androidHeros.saveinfo(userList)    for i in range(0, winnerCount):        randomNum = random.randint(0, userList.__len__())        winner = userList[randomNum]        print '\n-------------------Winner : ' + winner + ' -------------------'
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

多说一句

技术,是为了实现实际的目的,这个世界上没有最好的语言,只有最适合的语言,请用最合适的语言去做最合适的事,拒绝做一个语言喷子,从你我他做起。                                                 ——有感于某群中为了争论爬虫为什么不用Java写的人

切记

切记,是在本博客下留言!!!

抽奖结果

即将到来,请大家奔走相告,开始留言吧,评论的人,运气一般都不会太差。

就在刚刚,新鲜出炉的抽奖结果,请让我大声念出来!!!

E:\python\python.exe G:/csdn/csdn.py开始抽奖啦jingxia2008yanyangy_jsu013814553onlyellowjiang89125S938548157u011775829kinglearnjavabc_2014621u013369232wenwen091100304asq1755dongfeng9gesolidajuncaigen0001coder_niceqq2603825424a15996088263u013349626qmhs815sbsujjbcyzhuyaozonglongwanglidfdfdfu010334329u010649376Plcsy2012F1ReKingwakewakewakeu014400934marktheoneoushangfeng123WX_LYBcsdnwangzhanhlglinglongu014626094nimengboforzajuve_androidfreestyle_zmyu013211506supertian007www5115zyonlybonebaidu_27869435sinat_16653803freexiaoyufewwindAlbertDenveru011326653cxmscbfmlfchlingling_agao_chunlianwanfeilw1075219814Jasonezu012403246yayun0516sinat_26871969meng209292xiaruoli89u013364442fanaidehuajijiaxin1989xxx823952375cicf1986y1scpxiaozhonghuaawanghao200906u010026245WXY9206u011934921u014495711Dakaringdarryl0912waveverYouzh178muyuhemayeyuxpy505772146rh1910362960msdgwbeckett1216u014061684chen41345507u010850027u012138153daijianweinihaou012994271elsdnwnaqswde35025lianlianzhuifenga06_kassadinDaoFeng905147feijixiaoyuwent0213github_31318977m75100313lijun123456789lijunfhkatuz674adhere534h1252680267Fulgenskainkain1988u012293381u014679097ElinaVampirezhanghongliubobKamingnnnnngcwc455826074liu470368500-------------------Count : 110 --------------------------------------Winner : AlbertDenver --------------------------------------Winner : y1scp --------------------------------------Winner : wanghao200906 -------------------Process finished with exit code 0
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123

总计有110位网友留言,本来留言是有要求的,但是尼玛都太不按常理出牌了,所以就只是过滤了重复的和回复的,如果你没转发微博、没赞,你TMD还抽中了,我只能说——你赢了!!!

结果如下:

中奖的三个人:

wanghao200906: 我感觉会中奖。昨天踩了狗屎

y1scp : 恳请大家尊重原创正版  人人做到自己不触碰不制造盗版、PDF电子版!徐大大,我是来支持你的。

AlbertDenver : 支持医生……http://weibo.com/2104204754/CAN1VliSA

恭喜你们了,特别是那个昨天踩了狗屎的,真的没白踩啊。。。。。

我已经发私信给你们了,要签名版还是购书费,你们说了算,请毫不客气的联系我!!!

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值