自学python,没事干就玩玩,写了一个论坛自动签到+答题的,用的selenium,需要Chrome浏览器和Chrome浏览器的驱动(chromedriver),不然就算有python环境也运行不了,没有python环境的直接py文件用记事本打开或者用其他文本编辑器打开也行,可以一起交流学习学习啦,里面有一定注释,有我的一些思路,可以一起和我交流啥的,共同学习!写这个仅供交流学习,大家不要用来扰乱论坛秩序,版主手下留情别办我啊,哈哈哈哈
代码的话,我就放在帖子里,回复可见哦
有python环境的可以下载我的压缩包试试哈哈哈,压缩包里有我用的chromedriver还有我的Chrome浏览器安装包,用的时候记得里面的chromedriver要和py文件在一个文件夹
- [hide]# kxd https://www.kxdao.net/
- # 通过调用QQ接口登陆,实现避开验证码
- # https://www.kxdao.net/connect.php?mod=login&op=init&referer=index.php&statfrom=login_simple
- from selenium import webdriver
- from time import sleep
- # 无头浏览器
- from selenium.webdriver.chrome.options import Options
- # 实现无头浏览器
- chrome_options = Options()
- chrome_options.add_argument(‘–headless’)
- chrome_options.add_argument(‘–disable-gpu’)
- # 初始化浏览器对象
- driver = webdriver.Chrome(‘./chromedriver.exe’, chrome_options=chrome_options)
- # 打开指定网址
- print(‘正在打开网页!’)
- url = ‘https://www.kxdao.net/connect.php?mod=login&op=init&referer=index.php&statfrom=login_simple’
- driver.get(url)
- sleep(1.5)
- # 切换作用域到iframe
- driver.switch_to.frame(‘ptlogin_iframe’)
- # 用账号密码登录
- print(‘正在登录!’)
- u_p_login = driver.find_element_by_xpath(‘//*[@id=”switcher_plogin”]’)
- u_p_login.click()
- sleep(1)
- # 输入账号
- username = input(‘输入论坛账号绑定的QQ账号:’) # 这是第27行,也可以把这一行注释掉,在第29行括号中填上自己的QQ密码,记得加上引号,例如:’xxxxxxxxx’
- u = driver.find_element_by_id(‘u’)
- u.send_keys(username)
- sleep(0.5)
- # 输入密码
- pasword = input(‘请输入论坛账号绑定的QQ的密码:’) # 这是第32行,也可以把这一行注释掉,在第34行括号中填上自己的QQ密码,记得加上引号,例如:’xxxxxxxxx’
- p = driver.find_element_by_id(‘p’)
- p.send_keys(pasword)
- sleep(0.5)
- # 点击登录
- login_button = driver.find_element_by_id(‘login_button’)
- login_button.click()
- sleep(15)
- print(‘登陆成功!’)
- # 切换出iframe
- driver.switch_to.default_content()
- # 签到操作
- print(‘正在签到!’)
- sleep(2)
- qd = driver.find_element_by_xpath(‘//*[@id=”pper_a”]/img’)
- # print(qd.get_attribute(‘src’))
- # 签到完成的src=https://www.kxdao.net/source/plugin/dsu_amupper/images/wb.png
- if qd.get_attribute(‘src’) == ‘https://www.kxdao.net/source/plugin/dsu_amupper/images/wb.png’:
- print(‘已经签过到了!’)
- else:
- qd.click()
- print(‘签到成功!’)
- # 答题操作
- print(‘开始答题!’)
- sleep(2)
- dt = driver.find_element_by_xpath(‘//div[@id=”um”]/p[2]/a[1]/img’)
- if dt.get_attribute(‘src’) == ‘https://www.kxdao.net/source/plugin/ahome_dayquestion/images/end.gif’:
- print(‘已经答过题了!’)
- else:
- dt.click()
- sleep(5)
- q1_a1 = driver.find_element_by_id(‘a1’)
- q1_a2 = driver.find_element_by_id(‘a2’)
- q1_a1_value = q1_a1.get_attribute(‘value’)
- q1_a2_value = q1_a2.get_attribute(‘value’)
- if q1_a1_value == ‘1’:
- q1_a1.click()
- sleep(0.5)
- else:
- q1_a2.click()
- sleep(0.5)
- q1_submit_btn = driver.find_element_by_xpath(
- ‘//*[@id=”myform”]/div[4]/center/button’)
- q1_submit_btn.click()
- sleep(10)
- go_on_btn = driver.find_element_by_xpath(
- ‘//*[@id=”myform”]/div/center/button[1]’)
- go_on_btn.click()
- sleep(10)
- q2_a1 = driver.find_element_by_id(‘a1’)
- q2_a2 = driver.find_element_by_id(‘a2’)
- q2_a1_value = q2_a1.get_attribute(‘value’)
- q2_a2_value = q2_a2.get_attribute(‘value’)
- if q2_a1_value == ‘1’:
- q2_a1.click()
- sleep(0.5)
- else:
- q2_a2.click()
- sleep(0.5)
- q2_submit_btn = driver.find_element_by_xpath(
- ‘//*[@id=”myform”]/div[4]/center/button’)
- q2_submit_btn.click()
- sleep(10)
- success_btn = driver.find_element_by_xpath(
- ‘//*[@id=”myform”]/div/center/button’)
- success_btn.click()
- print(‘答题完成!’)
- sleep(5)
- print(‘所有操作完成,10秒后自动退出!’)
- sleep(10)
- driver.quit()[/hide]