写了一个应用于工作中的小程序——使用sikuli 脚本进行百度搜索点击:

上周,根据boss指示,为了抑止生意上的竞争对手的购买我方关键词、恶意竞价、占据搜索结果前列的行为, 我拿了台老掉牙的笔记本,跑起一个sikuli脚本,试图大量点击对方竞价词,使对方账户消耗完当日费用提前下线。 这是个脏活,且尚处于试验阶段,本不宜细说。但作为一次极快速的编程实践,我在此粗略的记录一下。

工具:win7 + sikuli + Firefox + Chrome + 各种 addons

思路很简单:


隐身模式打开浏览器Firefox;  
前往Baidu.com;  
如网络不畅则或误打开m.baidu.com,则等待数秒重新打开,直至看到百度搜索按钮;  
键入关键词1,搜索;  
在结果页面中,查找匹配的若干个链接,逐个点击(把目标图片放在list里,随时添加新的,就可以一口气点多个了);  
滚动浏览器搜索结果页至第二屏,继续寻找目标点击;  
退出浏览器;  
......  
前往某个文件,做一次成功的记录;  
前往本地路由管理页面,重启路由;  
睡42秒;  

以上,在range(99999)下反复的loop。各处条件及循环次数可适度修葺,则不至遗漏每一个广告。


基本思路就是这样,按此执行则大约每2分钟换一次ip,能给予竞争对手每小时被点击40-70的伤害值。
但由于做的判断和循环,尚不够完美,偶尔会因Firefox性能及网络响应问题,
陷入了不可预知的局面中而无法脱身:
比如Firefox突然启动过慢,或迟迟打不开页面找不到预定目标,
使得这个脚本中止。
也就是说无法完全的达到“无人值守”,有待优化或重构。
但这是一个很…..有意思的过程:
上手了一门新的语言sikuli(其实也就是python的亲戚啦);
用这门语言做事的人们的问答和帮助(居然不是在stackoverflow 最多);
了解到英国有一小群人为了逃避广告商的侵犯,
开发了一个牛逼哄哄的fx addons(可以随机切换浏览器发到服务器的所有header信息,不仅仅是 user agency哦);
也有几处比较疑惑的地方:百度竞价的判断机制,我的100个点击到底有多少生效?根据自己的少量测试,约1/3强的被计入了有效消费;如果用noScript 之类干掉百度的js,效果又会怎样呢?这些方面缺乏指导,也搜不出什么说法来。

Published: 2013-10-27

  • category:
  • tags: