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

简介: 把抽奖活动写成一篇技术博客是怎样一种体验本次活动预备知识贴:天罗地网——Python爬虫初初初探http://blog.csdn.net/eclipsexys/article/details/48193541请一定先了解下,不然就真的是为了抽奖了!抽抽抽抽抽抽奖我的新书《Android群英传》上市不久,为了回报各位的大力推荐,也希望更多的人能多多支持,特准备此次抽奖活动。

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

本次活动预备知识贴:天罗地网——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-8

import requests
import json
import random


class 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 + ' -------------------'

多说一句

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

切记

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

抽奖结果

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

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

E:\python\python.exe G:/csdn/csdn.py
开始抽奖啦
jingxia2008
yanyangy_js
u013814553
onlyellow
jiang89125
S938548157
u011775829
kinglearnjava
bc_2014621
u013369232
wenwen091100304
asq1755
dongfeng9ge
solidajun
caigen0001
coder_nice
qq2603825424
a15996088263
u013349626
qmhs815
sbsujjbcy
zhuyaozong
longwanglidfdfdf
u010334329
u010649376
Plcsy2012
F1ReKing
wakewakewake
u014400934
marktheone
oushangfeng123
WX_LYB
csdnwangzhan
hlglinglong
u014626094
nimengbo
forzajuve_android
freestyle_zmy
u013211506
supertian007
www5115zy
onlybone
baidu_27869435
sinat_16653803
freexiaoyu
fewwind
AlbertDenver
u011326653
cxmscb
fmlfch
lingling_a
gao_chun
lianwanfei
lw1075219814
Jasonez
u012403246
yayun0516
sinat_26871969
meng209292
xiaruoli89
u013364442
fanaidehua
jijiaxin1989
xxx823952375
cicf1986
y1scp
xiaozhonghuaa
wanghao200906
u010026245
WXY9206
u011934921
u014495711
Dakaring
darryl0912
wavever
Youzh178
muyuhema
yeyuxp
y505772146
rh1910362960
msdgw
beckett1216
u014061684
chen41345507
u010850027
u012138153
daijianweinihao
u012994271
elsdnwn
aqswde35025
lianlianzhuifeng
a06_kassadin
DaoFeng905147
feijixiaoyu
went0213
github_31318977
m75100313
lijun123456789lijun
fhkatuz674
adhere534
h1252680267
Fulgens
kainkain1988
u012293381
u014679097
ElinaVampire
zhanghongliubob
Kamingnnnnng
cwc455826074
liu470368500

-------------------Count : 110 -------------------

-------------------Winner : AlbertDenver -------------------

-------------------Winner : y1scp -------------------

-------------------Winner : wanghao200906 -------------------

Process finished with exit code 0

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

结果如下:

中奖的三个人:

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

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

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

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

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

目录
相关文章
|
7月前
|
运维
体验一下CSDN博客的投票功能,附体验地址
体验一下CSDN博客的投票功能,附体验地址
|
8月前
DFM分析~好工具分享(抽奖送书!)
DFM分析~好工具分享(抽奖送书!)
|
8月前
|
弹性计算 关系型数据库 MySQL
「寻找博客建站大师」详细活动流程
阿里云开发者社区联合弹性计算团队和数据库团队举办「寻找博客建站大师」,领取云服务器ECS和云数据库RDS MySQL Serverless两款云产品免费试用资源,搭建属于自己独一无二的博客吧!晒出你的专属博客参与评选,就有机会获得Airpods Pro、戴尔机械键盘 、数据库双肩包、罗马仕充电宝等精美礼品!
|
9月前
|
存储 Cloud Native 大数据
开发者社区连续打卡抽奖活动规则
庆祝“探索云世界”上线,各子社区推出连续打卡抽奖活动
13597 19
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
582 1
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
|
小程序 开发者
微信公众号在线答题小程序系统怎么做答题游戏活动
微信公众号在线答题小程序系统怎么做答题游戏活动
|
JSON 小程序 安全
手把手教你搭建消防安全答题小程序-将用云开发获取到的题目渲染到答题页面
手把手教你搭建消防安全答题小程序-将用云开发获取到的题目渲染到答题页面
手把手教你搭建消防安全答题小程序-将用云开发获取到的题目渲染到答题页面
|
存储 JavaScript 程序员
五分钟学会做一个在线抽奖系统,手把手教你抽奖还学不会嘛?
五分钟学会做一个在线抽奖系统,手把手教你抽奖还学不会嘛?
414 0
五分钟学会做一个在线抽奖系统,手把手教你抽奖还学不会嘛?
|
小程序 测试技术
活动分析模板来了!对着抄
大家好,我是爱学习的小xiong熊妹。 经常有运营小伙伴,不知道咋做活动分析,今天给个能对着抄的模板,帮大家省时省力哦。 看一个最简单的活动场景。某生鲜小程序,在自己的小程序推出满100减30元活动(每订单满100元即立减30元),为期1周。现在对该活动进行分析。 活动有:指哪打哪的效果,因此在分析活动的时候,先弄清楚: 指哪里:活动的时间、对象 打哪里:达标条件、奖励
98 0
活动分析模板来了!对着抄
|
iOS开发 MacOS Python
抽奖过程公布,我用了一款有故事的抽奖工具
之前学委发表了一篇文末抽奖的文章:Python中处理字符串的常用函数汇总【文末送书】
173 0
抽奖过程公布,我用了一款有故事的抽奖工具