文章目录

  • 最终项目目标
  • 目标分解
  • 1.安装selenium
  • 2.下载chromedriver
  • 3.例程-自动访问百度输入关键词并搜索
  • 4.定位论坛的元素
  • 论坛自动签到的源代码


最终项目目标

在网上学习技术时,我们经常会加入各种论坛,论坛通常会设置每日签到来给予积分等奖励。出于偷懒的目的,编写一个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版本

python微信每日签到脚本 python怎么制作自动签到脚本_python


python微信每日签到脚本 python怎么制作自动签到脚本_chrome_02

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
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对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准确抓取到对应元素才能进行后续的自动化控制;定位的方式有很多

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,同理可以定位密码输入处、登录按钮、签到按钮等元素

python微信每日签到脚本 python怎么制作自动签到脚本_python_03

论坛自动签到的源代码

'''
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()#关闭