在这个阶段,在朋友们的微信中举行的投票活动无穷无尽。我相信许多学生对此感到困扰,因为不时会有个人(亲戚,朋友或其他)要求您帮助TA投票。本文不打算从道德或情感上讨论这个问题。我对当前的大多数投票活动实际上是明显的漏洞感兴趣,并且可以通过简单的技术手段来实现“票务”。
第一步是找出特定的投票过程和可能的限制。研究之后,摘要如下:您需要登录到注册帐户以验证电子邮件地址。登录不需要验证代码。每个帐户每天都可以投票一次。您可以从0到10投票。这是最关键的地方。
这种语言必须是我喜欢的。就工具而言,我实际上在以前进行了模拟登录。简而言之,我使用了一个模拟浏览器的插件,然后执行了各种模拟的用户操作,例如单击按钮和输入信息。 2。但是,这种类型的插头有两个主要问题:很小的无头,基本上HTML页面的操作只能应用于表单上。什么是无头,可以简单地理解为背景操作。如果您不能无头,那么您仍然需要在运行时打开浏览器,但是脚本将操作浏览器。因此,我们可以看到,如果您不能做无头,它看起来不会很低 - 端(想象一下计算机屏幕上的浏览器,然后自动输入物品,您只能坐在任何东西上,您不能做任何事情),并且使用非常不便,例如没有图形接口的系统。 4。只能应用于表格,我们将其比较。您可以从HTML中出现的所有内容中选择,但仅应用于您只能操作表单的表单,并且您不能对其他元素做任何事情。我不知道为什么是这种情况。在基础插头上可能会有一些限制。无论如何,大多数插件只能操纵表单。
。唯一的缺点是依靠PYQT,或者,您知道这两个项目,您将折磨死者。因此,如果您不想折腾,请不要再使用它。不支持半支持的默认值,但是在使用Zope插头的前提下,它可以无头。因为我使用默认值,所以如何进行无头研究,所以我有兴趣自己做它开始这样做。但是,据估计80%并不强。本质本质也非常强大,可以处理所有元素。支持无头,但只能运行
重复我们的想法:登录投票,因为我决定使用无头解决方案,因此我使用机械化。如果您登录,那没有问题。登录框最初是一种形式。投票。本质精华先行!我们首先登录。直接在代码上:复制代码#:UTF-8导入机械化导入br =。 ()cj =。 ()<)br.open()br。 br.form [] = br。 ()复制操纵代码。因为登录后我们需要跳到投票页面。如果我们不保留它,那么网站将认为我们不登录。不要忘记它。您正在使用代码来模拟登录,因此不认为他会自动拯救您。代码很简单,我不解释。简而言之,打开页面输入用户名和密码以提交。您可以输出结果:......同上... = <)打印。 read()我们可以看到输出html的单词“ xxx,您”表示您已经成功登录了。
这是重点。如何投票。首先指定投票操作:从drop -down列表中选择“ 10”,然后单击“确定”。我们已经知道机械化只能操纵形式,并且对其他元素无能为力,因此我们无法直接模拟人类的操作。我们该怎么办,让我们首先考虑5秒钟。本质本质本质本质本质本质好,我知道您拒绝了。那时我想了很长时间!交叉点交点我们可以改变主意,投票和表面上是手动操作,但是发送到服务器的最终消息实际上是发布请求!因此,我们可以跳过模拟并直接发送请求!好的,这是一个明确的主意。让我们从一开始就开始投票,告诉服务器我们已经投票。但是代码是非常严格的事情。如果格式错误,服务器将无法识别!好的,不要考虑这次,直接告诉您答案。让我们先投票一次,然后在邮政请求中检查数据格式。我使用它,打开,然后选择选票数,然后按确定按钮,您可以在其中查看此帖子请求的特定信息。我们可以打开信息,您可以看到数据的格式:10 ID:99 HID:78我现在可以看到它!票数,ID是项目编号,SID。本质本质好,我不知道这是什么。简而言之,写78。获取数据格式,让我们返回代码并模拟帖子请求:参数= {:10,id:99,sid:78}#post data data =。 (参数)响应= br.(,数据)非常简单,不要忘记导入!好的,让我们之前测试代码并查看效果。发现的选票数量确实增加了,我们的方法是可行的。然后,让我们更改它并添加循环,以便我们可以自动登录所有用户,并根据设置的用户名和密码进行投票。基本功能就是这样,但是使用了几天后,我发现了一个不好的地方:如果我想在投票后检查投票,则必须手动打开页面。如果您可以直接显示当前票,那就很好!因此,我们继续这一旅程。
首先,这个想法是:打开项目页面,以获取打开我们已经拥有的页面的投票数,<)会这样做。显示器也非常简单,打印。那么,您如何获得投票并介绍新工具,汤!我承认这个名字有点。在任何情况下,本质本质本质都要继续我们的编程路径。汤是对HTML的插头分析,并被引入。我们可以使用汤来分析获得的HTML,然后找到与我们需要的票数相对应的要素,我们可以获得票数。这很简单!我们将HTML放入汤中。本质本质本质如何长期犯错?事实证明,HTML中存在不规则标签,分析失败了。 的网页最初不符合标准。本质本质好,我无法解决,我该怎么做才能提供解决方案:使用LXML。 LXML LXML是用于分析XML的插头,但它可以解决HTML和注意力,并忽略无法验证的标记。恰好是我们需要的!好,使用官方文件?
br =。 ()= br.open()pay = .html(。read read()。()。(utf-8))= page。 :“ + [0] .TEXT仍然非常简单,不要解释,看。从lxml = [,],[,]。 i [0] <] = i [1] <)= br .oten()= {:10,id:99,sid:78}#发布数据=(参数)= br.open(,数据); %s成功地投票了! @ = n_99] quot;)打印“当前投票:” + [0]复制代码以完成它。
版权声明:本文为 “ 【博览广文网】阅览万文、增长见识,广阔的软文阅读网站!” 原创文章,转载请附上原文出处链接及本声明;
工作时间:9:00 - 18:00
客服电话
暂无电话/微信dat818
电子邮件
80765864@qq.com
扫码二维码
获取最新动态