Python+Selenium阿里巴巴直播网页自动化点赞

阿里巴巴国际站的直播从上线到现在一直都有点赞的存在,应朋友的说法,琢磨着开始写一个简单的自动点赞的脚本,这样就可以解放个人的手指,让机器不断地进行点击,增加直播间的赞数和热度。至于点赞是否有利于直播间排名的靠前,暂时我并不清楚,也没有查到相关的文本说到这个事情。如果你知道是否有帮助,可以告知一下,那将会非常感激。

当一开始需要写这个脚本的时候,我们需要分析,最终的目标是什么。现在很清晰,就是增加直播间内的点赞数。那我们先来看看,直播间长什么样子。

阿里直播间

我们可以看到,在直播间的右下角,有一个点赞的图标。那么它就是我们的目标,现在我们需要把它的位置找出来,然后在该区域进行点击。

因此我们需要查看该点击目标区域的位置。

点赞按钮的位置

从位置的查看来看,我们可以发现,这个点赞的位置并不是按钮,而是一个图片,也就是说,我们并没有办法使用一个按钮的点击,直接实现自动点赞。而是需要在这个处于按钮的位置来进行点击,实现自动点赞。

我们已经获取了目标和目标位置,那么接下来就可以开始来进行脚本的撰写。我们这次将会选用较为简单的python的Selenium自动化来实现本次的目标。而且最终,我们要实现的是一个可复用的exe的文件,于是乎我们最终实现的目标可能长这个样子。

阿里点赞器

非常简单的功能,就是输入直播间的链接,然后进行开始点赞。当点赞结束之后,就退出程序。

首先,我们先来写主体的板块。我们需要获得一个链接,因为它是一个输入的板块,于是我们可以开始写

url = enrty.get()     #输入直播的链接

接下来我们需要通过Selenium来实现找到目标位置并且实现点击,因此我们需要使用到chromesriver。chromedriver可以从这里下载。

    driver = webdriver.Chrome()
    options = webdriver.ChromeOptions()
    options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging'])
    driver = webdriver.Chrome(chrome_options=options)

    driver.get(url)

    btn = driver.find_elements(By.CLASS_NAME, value='room-bottom-right')

    action = ActionChains(driver)
    first_btn = btn[0]
    for i in range(2000):
        action.click(first_btn).perform()
        i = i+1
        time.sleep(2)

在这里我会设置一个2秒的停止的时间,是因为经过测试,由于直播间内的点击并非直接点击按钮,它的实现是以回调数字,通过css的形式呈现出来的,在数据同步的时候需要时间,因此在这里设置了一个停留的2秒。

这里,我们已经将主要的脚本实现了。接下来就是给它加一个壳,并且打包成exe可执行文件了。在这里,我们将会使用Tkinter来实现可操作界面。这个界面非常简单,就是一个输入框和一个按钮,因此我们需要将上面的主要的脚本用函式包起来,然后作为点击按钮的一个执行动作。

root = Tk()
root.title('阿里直播点赞')
root.geometry('300x200')
label = Label(root, text='请输入直播链接:')
label.grid()
entry = Entry(root)
entry.grid(row = 0, column=1)
likebtn = Button(root, text = '开始点赞', command = alilike)
likebtn.grid(row = 2, column = 0)
closebtn = Button(root, text = '退出程序', command = close)
closebtn.grid(row = 2, column = 1)
root.mainloop()

这个时候,我们已经把这个基本的界面和功能实现了,接下来就是通过pyinstaller来将脚本进行打包,生成可实现的exe文件。

 pyinstaller -F -w name.py

至此,就大功告成,可以生成一个基本上能用的简易版本的自动点赞器了。对于数量和效率有更高的要求的话,就需要根据实际的目标进行调整。由于阿里巴巴国际站直播间对IP和登录没有强制要求,就是说,只要是点击都算进去,那么至于想点多少个,就看自己的需要了。