作者:Tim Großmann。作者授权早读课转载。
公众号:机械鸡(ID:jixieji2017)
编辑:Juvae
几个月前,我开始了一个项目InstaPy,同时学习Python和Selenium WebDriver。我只是想看看能不能得到一些Instagram粉丝。但是当我第一次运行脚本时,我很惊讶,即便是1.0版本。
仅通过给图片打标签,我就收获了赞和阅读量,甚至一些粉丝。当我添加评论功能后,数字疯涨。
起初我在笔记本上跑了我的脚本。但这是非常烦人的,因为我不得不让我的终端全天候运行。
我开始有了180个粉丝,当达到350个时,我修改了我的程序来定期在服务器上运行,接下来更有趣了。
如果你也想尝试,想提醒的是:你需要把使用的所有代码共享在GitHub上 。
我开始做一些简单的数据分析(包括线性回归来预测第二天的增长),以找到最好的标签和参数。
第一个月粉丝的增长
使用这些简单的线性数据分析,我可以准确地预测到9天后会有多少追随者。但在第十天,又有了很大的差距。
我这样做是为了review之前的数据,看看增长是指数还是直线。
在第一个月,每天大约有13个新帐户关注我。这里很有趣的是,在某些日子里,我甚至失去了一些追随者。很多人都是像“百万富翁”这样的账户,还有一些其他账户,大V们。
通过单独查看程序的每个“处理”来观察日常增长,我们真的可以看到,Instagram真的有很多机器人驱动的帐户。
注意:图示数据为0的时候,无新增且有用户取消关注。
可以看到,在8个小时的时间里,我失去了8个追随者,新增了3个新的追随者。
左:脚本运行后10分钟 右:脚本运行前25分钟
上图显示了在下一个消息开始前25分钟,脚本运行10分钟后的标准增长。
关注和取消背后的逻辑就像我朋友对我说的话:“我觉得我没有关注你的动力。”
大多数这些追随者似乎是真实的,不像您买的粉,只是空的Instagram帐户,根本没有任何活动。
关注检查结果新增443个用户,其中23个是僵尸粉
如下图所示,新获得的关注者正在积极地为我的内容做出贡献,他们都是活跃用户。
到目前为止点赞、评论最多的帖子
与Instagram用户(2016年)的平均每月增长16%相比,我在一个月达到〜112 %的增长(从357增长到757)。
第二个月变得更好了,我运营了94%的增长。
我开始寻找合适的标签来吸引足够的人。这是非常重要的,因为有更多的帖子,人们使用的标签越多。
标签及其发帖量
有了这3个标签,我已经获得了大量的潜在追随者。下图是我在云中的标签,其大小代表使用量:
帖子中使用最多的标签
为了分析每个帖子中使用过的喜好,评论和标签,我写了一个小脚本 ,它从给定的配置文件中提取所有这些信息,并将其保存为JSON,以便于处理。
提示:最好使用和图文内容情境相关联的标签。
每个标签的平均喜好数
如果我们仔细看看上面的图表,我们看到,对于一个标签“对路”的帖子, 我平均有390个喜欢。
我还建议坚持使用2或3类,而不是张贴所有的图像。
我集中在两大类以及1-2个子类别。两大类是“素食主义者”和“假期/生活”。较小的类别是“自然”(贴近我的祖国-德国)。
为了真正看到程序的影响不仅仅看我的追随者数量,而且也是新追随者的真实活动,我决定从每个帖子中获取的喜好和评论,绘制以下图表:
每个帖子的喜欢和评论
在上图中,我绘制了在服务器上开始运行程序时的垂直线。如果将完整的红线与虚线红线和图例中的数字进行比较,您可以看到数字增加了一倍以上。
然后我添加了关于/取消关注功能到我的InstaPy程序。我对其影响感到非常惊讶。
这是一个屏幕截图,在重新登录Instagram约7小时后:
根据我的估计,已经有5千个追随者的帐户每天可以通过这个程序获得70到100个新的追随者。
说实话,第三个月没有什么真正的大变化。可悲的是,增长低于第二个月。
因Instagram改变了他们的网站布局,这导致我的程序不能正常工作了。所以我不得不解决这个问题,这导致程序在一定时间内没有运行。
我也收到一个直接的消息,从一个帐户读取如下:
“你为什么一直重复关注我呢?”
这是一个我以前没有想到的问题,但很明显。我很快地解决了这个问题,因为我认为这可能是自动化帐户的一个缺陷。
我的解决方案是保证程序执行关注帐户的一定量化区间。
由于本月我已达2000位追随者,所以我搞了一个赠送小礼物活动。这不仅让我的追随者数小幅提升,而且也使我的Instagram帐号看起来更加人性化。
现在思考的是,直接在图片中表示赠品可能会更好,而不是文字描述。
上图我们可以看到新的追随者的平均数量从〜32下降到〜20。在我的脚本有问题的日子里,我的追随者越来越少了。有些天也不错,每天约40位新追随者。
如果我们比较在赠品开始之前和之后的新追随者的数量,我们可以看到它每天增加约28个新追随者。
发布新的图片或视频后,我通常会在第一小时内达到〜100次。
使用像Selenium这样的GUI测试工具的问题是,如果网站(在我的例子中是Instagram)使用HTML布局更改某些内容,我必须在脚本中更改它,并更新从页面中选择的元素。
这正是我本月要学习的。
如果您对程序感兴趣,请继续阅读。否则,你可以跳到第四个月。
当然,您可以在GitHub的存储库中查看代码,但阅读简短的描述有时更加舒适。
其实真的很简单,Selenium启动一个浏览器窗口,像一个真正的人一样。
browser = selenium.webdriver('Chrome')
然后,您可以使用get方法前往任何页面。
browser.get('instagram.com/grossertim')
一旦您在页面上,您可以通过其标签名称获取页面的元素。所以让我们来假设按钮在HTML中看起来像这样
我们现在可以使用我们的浏览器来获取例如该类的按钮元素。
follow_button = browser.find_elementy_by_class_name('_ follow')
如果Instagram现在将类从“_follow”更改,这是改变HTML造成的问题。
“_follow_button”,脚本需要调整。这只是一个小小的变化,但只有这样做才会更好一些。
一旦我们有了按钮,我们只需要调用:
follow_button.click()
现在我们已经在Instagram上关注该用户了。
这种工具的最大任务是通过分析页面的HMTL(在我的case instagram.com)中找到正确的元素路径。
整个脚本分解到最小的部分,只需在每个页面上查找所需的元素,然后单击它们或提取其文本即可。
第四个月(2,084 - > 2,706个追随者)
在第四个月,令人遗憾的是,这次增长只有620个新的追随者。
经过4个月的运行脚本,这是我帖子的平均数据,如下:
在第四个月的开始,我发布了链接到我的GitHub repo,也在Reddit上发布内容,让一些开发人员帮助我测试和反馈错误。
我得到的是这个问题:
说完这个话题之后,有人给我写了这个电子邮件:
我为Instagram上的影响者创建了一个平台,叫做******。我们是欧洲最大的影响力平台(或者前三名中至少有一个)。我们在业务方面做得很好,我们在冰岛有一个很好的产品团队。
我对您的InstaPy项目印象深刻。我自己是Python开发人员,后端是Flask / PostgreSQL / AWS堆栈。
你在短期内找工作吗?有兴趣了解您将来的计划。
令我印象深刻的是,即使这样一个快速而简陋的自动化程序,确让这么多人关注到。
自从我在编写本部分时,我还是博世工程学院的实习生,我无法考虑加入他们的团队。但是,因为美丽的自然和美好的人,我每天都很享受在冰岛工作。
从DigitalOcean(云主机)转移到35 $ 的RaspberryPi 3(树莓派)
由于我想能够让这个实验运行一,然后基本上能满足一直保持项目运行。段时间,我想到了一种付费方式
RaspberryPi3 (只有信用卡大小的微型电脑,其系统基于Linux开发用于编程设计)似乎非常适合。它体积小巧,功能强大,价格便宜。
付35 $,您可以获得一个小型的Unix计算机,通过一些修补,您可以运行Google Chrome。
我在网上找了一个在树莓派上运行谷歌Chrome浏览器的指南,我按照指南操作,安装InstaPy到我的树莓派上,并让它运行起来。
这不仅仅是廉价服务的优势。当检查机器人时,大多数服务都有一个IP数据中心的列表。DigitalOcean和其他基础架构即服务提供商拥有专用的IP,可追溯到每个数据中心。
树莓派这样的小型计算机可在您的家庭网络中运行,并且具有与计算机或智能手机相同的IP地址。
Instagram上有很多机器人,Instagram本身并不介意,因为更多的机器人意味着带来更多活跃。
在写文章时,我有了2,800追随者。我打算继续运行我的程序,直到我被禁止从Instagram上开设账户。我真的有兴趣看看这可以走多远。
当然如果有很大的突破或发现,我会通知你的。
到目前为止,我只花了5美元租用服务器。凭借GitHub的“学生背包”的$ 50优惠券,我可以让这个运行另外5个月,而不用多投一分钱。35美元的RapsberryPi 3能一直使用。
如果您进入RaspberryPi,您还可以获得Model3的其中一个,并安装所有必要的工具,让它在那里运行一次,费用约为$ 35。这就是我在第四个月所做的。如果您有兴趣,请查看如何在RaspberryPi上运行Google Chrome(http://t.cn/R6Fem6m)
我还添加了一个快速启动文件,您只需输入一些简单的信息。
InstaPy(username ='test',password ='test')\
.login()\
.set_do_comment(True,percentage = 10)\
.set_comments(['Cool!','Awesome!','Nice! \
.set_dont_include(['friend1','friend2','friend3'])\
.set_dont_like(['food','girl','hot'])\
.set_ignore_if_contains(['pizza'])\
.like_by_tags ['dog','#cat'],amount = 100)\
.end()
注:加入机械鸡社群,请添加 liulailiuwang
投稿邮箱:[email protected]
本文由作者授权早读课发表,转载请联系作者。
3月29日,100offer 邀请了被称作「架构师的摇篮」的阿里中间件参加知乎 Live。
阿里中间件承载了世界上最有挑战的场景,应对了一次次双十一的流量洪峰,他们对人才的要求指引优秀架构师之路的方向。
扫描二维码,参与 Live 会让你了解怎么样的架构师才能胜任顶尖团队中的工作。