文章目录
- 最终项目目标
- 目标分解
- 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版本
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,同理可以定位密码输入处、登录按钮、签到按钮等元素
论坛自动签到的源代码
'''
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()#关闭