本羊毛客看到一些大神用Python脚本薅羊毛,于是也学习了一下。在这新开的技术羊毛类目,第一篇文章就简单介绍一下如何利用Python和selenium完成自动签到。做这个脚本还是需要一些Python的基础知识,如果小伙伴看了有兴趣,可以先学一下,以后就可以自己写程序,自动撸羊毛,解放双手了。
好了,言归正传。Python里面有个第三方库叫selenium,本来selenium是用于浏览器自动化测试的,正因为有这个特点,可以用来模拟登陆网页,网上签到也就顺理成章了。要在Python中使用selenium,需要先安装,在命令行cmd里面输入下面一句话,开始安装selenium。
pip install selenium
如果遇到安装不顺畅,换安装源,网上搜一下,国内有阿里巴巴的,有豆瓣的,有清华的;如果报错,提示缺什么就先安装什么,因为每个电脑环境不一样,这里就不好说了,具体情况具体分析吧。在Python文件中导入selenium,一般是用selenium的webdriver
from selenium import webdriver
如果是谷歌浏览器,还可以加一句,用来配置一下浏览器的参数,让模拟过程更像真实用户。
from selenium.webdriver import ChromeOptions
还是要用具体例子才行,就京东每天签到领京豆吧,页面是这个https://vip.jd.com/sign/index
driver = webdriver.Chrome() #启动谷歌浏览器
driver.get(‘https://vip.jd.com/sign/index’) #打开页面
如果没有登录,访问这个网页是会跳转到登录页面的,在登录页面,需要先点击账户登录,这时就需要定位到“账户登录”这里,selenium定位有8种方法,这里用xpath方法说明,在谷歌浏览器网页打开后,鼠标移动到“账户登录”,右键选择“检查”,就可以看到元素的代码,在代码框里右键选择Copy->Copy Xpath,就可以定位了,一般不会错。注意,因为网页一直经常在变,所以下面的代码可能过时,小伙伴要自己操作一下才知道,尽管代码不对,但思路是对的。
zhdl=driver.find_element_by_xpath(‘//*[@id=”content”]/div[2]/div[1]/div/div[3]/a’)
有可能定位不到,是因为元素在框架iframe里面,需要先转到框架再定位,这个小伙伴可以自行搜索一下怎么做。接下来,定位用户名框,输入用户名,定位密码框,输入密码,定位登录按钮,点击登录。
un=’13012345678′
up=’123456′
denglumingkuang = driver.find_element_by_xpath(‘//*[@id=”loginname”]’)
dengluming= denglumingkuang.send_keys(un)
mimakuang = driver.find_element_by_xpath(‘//*[@id=”nloginpwd”]’)
mima= mimakuang.send_keys(up)
dengluanniu = driver.find_element_by_xpath(‘//*[@id=”loginsubmit”]’)
denglu = dengluanniu.click()
点击后,网页就会跳转到签到页面,建议等一会儿,由于网速或其他原因,加载慢。Selenium常用两种等待方法,显性等待(最多等待多少时间)和隐性等待(必须等待多少时间),还有个time模块也可以结合使用。下面的代码就继续写定位到签到按钮,点击签到按钮,简单的Python薅羊毛网页签到脚本就完成了。可能遇到的问题有验证码,滑块验证等,这些就需要深一点的知识来突破了,多看书,多专研,小伙伴一定行的。
这个程序如果想每天自动运行,Windows有计划任务的,设置一下。如果想不开机自动运行,可以放到服务器上,这里推荐阿里云服务器,一年89元,如果小伙伴觉得薅羊毛一年可以收获超过89元,又有其他知识技能了,买个服务器吧,解放双手,那些大牛就是这样的。既然有了这个思路,其他需要登录,点击薅羊毛的都可以实现了。Selenium是在网页端的,现在流行的是APP,后面等本羊毛客学会了appium,再给小伙伴分享如何在手机端薅羊毛。