python+selenium 30秒内自动完成论坛每日签到

最终项目目标

在网上学习技术时,我们经常会加入各种论坛,论坛通常会设置每日签到来给予积分等奖励。出于偷懒的目的,编写一个python脚本实现论坛自动签到(以鱼C论坛为例)

目标分解

1.安装selenium

直接使用pip安装selenium

pip install selenium

2.下载chromedriver

注意 :chromedriver的版本要与你使用的chrome版本对应
并且把下载下来的chromedriver.exe复制到python文件夹下的scripts文件夹中(可以放在别的文件夹,但是存放地址要记住,后续会用到该地址)
chromedriver下载地址:
http://chromedriver.storage.googleapis.com/index.html或者http://npm.taobao.org/mirrors/chromedriver/(可用)

例如,我的chrome的版本是 90.0.4430.212(正式版本) (64 位),就要找与之对应的chromedriver版本
在这里插入图片描述
在这里插入图片描述

3.例程-自动访问百度输入关键词并搜索

#运行这段代码,会自动打开Chrome浏览器,然后访问百度并输入关键词搜索。

#coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
driver = webdriver.Chrome('C:/Users/LU/AppData/Local/Programs/Python/Python37-32/Scripts/chromedriver.exe')#chromedriver.exe的位置
driver.get("http://www.baidu.com")
driver.maximize_window() #浏览器窗口最大化

#输入框输入内容
elem = driver.find_element_by_id("kw")
elem.send_keys("CSDN")
time.sleep(3)#延时3秒
 

 
#输入空格+"博客"
elem.send_keys(Keys.SPACE)
time.sleep(3)
elem.send_keys("博客")
time.sleep(3)
 
#ctrl+a 全选输入框内容
elem.send_keys(Keys.CONTROL,'a')
time.sleep(3)
 
#ctrl+x 剪切输入框内容
elem.send_keys(Keys.CONTROL,'x')
time.sleep(3)
 
#输入框重新输入搜索
elem.send_keys(Keys.CONTROL,'v')
time.sleep(3)
 
#通过回车键替代点击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(10)
 
driver.quit()#关闭

Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准确抓取到对应元素才能进行后续的自动化控制;定位的方式有很多,具体可以参考Selenium2+python自动化45-18种定位方法(find_elements) 史上最全!Selenium元素定位的30种方式

driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")
driver.find_element_by_css_selector("#su").click()
#如果有css基础的话就应该可以看懂,一般class是用.标记,id是用#标记,标签名直接写具体标签名就好了。

4.定位论坛的元素

如下图,进入鱼C论坛的控制台,可以观察到账号输入处对应的ID为ls_username,同理可以定位密码输入处、登录按钮、签到按钮等元素
在这里插入图片描述

论坛自动签到的源代码

'''
https://fishc.com.cn论坛自动签到领鱼币
'''
from selenium import webdriver
import time

browser = webdriver.Chrome('C:/Users/LU/AppData/Local/Programs/Python/Python37-32/Scripts/chromedriver.exe')#chromedriver.exe的位置,看自己把该文件放在了哪里

browser.maximize_window()   #浏览器窗口最大化
 
browser.get('https://fishc.com.cn')
time.sleep(3)#延时3秒

browser.find_element_by_css_selector('#ls_username').send_keys('XXXX')#输入账号,使用自己的账号替换XXXX
time.sleep(3)

browser.find_element_by_css_selector('#ls_password').send_keys('YYYY')#输入密码,使用自己的密码替换YYYY
time.sleep(3)

browser.find_element_by_css_selector('.pn.vm').click()#点击登录按钮
time.sleep(3)

browser.find_element_by_css_selector('#mn_Nac60').click()#点击标题栏签到
time.sleep(3)
browser.find_element_by_css_selector('#JD_sign').click()#点击签到
time.sleep(3)

browser.find_element_by_css_selector('#extcreditmenu').click()#点击积分,查看积分
time.sleep(3)

browser.find_element_by_css_selector('#mn_forum').click()#点击导读按钮
time.sleep(3)
browser.quit()#关闭

作者最近在参加新星计划,既然看到这里,麻烦点赞、评论、收藏、转发支持一下作者

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值