黑马程序员技术交流社区
标题: 用python实现黑马论坛自动签到 [打印本页]
作者: lanqi0820 时间: 2018-7-1 20:29
标题: 用python实现黑马论坛自动签到
本帖最后由 lanqi0820 于 2018-7-2 08:13 编辑
最近一直到学爬虫这方面到东西,学到selenium这个模块,最初是模拟登陆,后来就想能否用它来实现黑马论坛自动签到功能,于是就动手写了这个小程序
当然在写到过程中跳了好几个坑,其中之一就是程序调用chromdriver.exe出错,(因为我用到时chrome浏览器来模拟到),网上到解决办法(1将chromedriver.exe添加到环境变量,2直接放在py文件到同一级目录中,3chrome版本和driver版本不匹配),这些问题都解决来之后还是报错,都快放弃都时候决定换个系统(当前用都是win10),下载win7,安装,之后就在也没报这样都错来,巨坑。
[Python] 纯文本查看 复制代码
# coding="utf-8"
from selenium import webdriver
import time
webdriver= webdriver.Chrome()
webdriver.set_window_size(1400,900)
webdriver.get("http://bbs2.itheima.com/member.php?mod=logging&action=login")
webdriver.find_element_by_name("username").send_keys("用户名")
webdriver.find_element_by_name("password").send_keys(("密码"))
# webdriver.find_element_by_link_text("关闭").click()
# time.sleep(5)
webdriver.find_element_by_name("loginsubmit").click()
time.sleep(4)
webdriver.find_element_by_link_text("签到").click()
这里我先来说我找element是遇到的小问题,起初是通过webdriver.find_element_by_id(“username_LYkv7”),跑一下不行,发现原来这个id是每次都会变都,于是用另一种by_name(“username”),密码也是同样
第二个坑是,程序控制浏览器打开不是全屏的,这个浮动的框会挡住
当然我也尝试过将这个浮动框关闭,这个关闭查看源码是个a标签,用javascript设置来点击事件,但似乎并不好用,还是会导致,提交按钮会点到这个浮动框。那我换了个思路,因为不是全屏挡住了,那么把浏览器窗口调大点就好了。(webdriver.set_window_size(1400,900))
登陆进去后,页面会有个跳转,让程序sleep了5秒,等跳转,在找到签到按钮点击即可。因为今天已经签到了,所以直接进到签到后的页面了。
后续的操作等明天签到等时候在来详细研究下如何实现程序来签到。
============分割线=============================7月2日早上补充
不多说来,直接来代码
[AppleScript] 纯文本查看 复制代码
# coding="utf-8"
from selenium import webdriver
import time
webdriver= webdriver.Chrome()
webdriver.set_window_size(1400,900)
webdriver.get("http://bbs2.itheima.com/member.php?mod=logging&action=login")
webdriver.find_element_by_name("username").send_keys("username")
webdriver.find_element_by_name("password").send_keys(("password"))
# webdriver.find_element_by_link_text("关闭").click()
# time.sleep(5)
webdriver.find_element_by_name("loginsubmit").click()
time.sleep(4)
webdriver.find_element_by_id("kx").click() #这是对应的心情图片
webdriver.find_element_by_xpath("//input[@value=2]").click() #这是123对应的模式
webdriver.find_element_by_xpath("//button[@class='pn pnc']").click() #这是4对应的按钮
#webdriver.find_element_by_link_text("签到").click()
time.sleep(3)
webdriver.quit() #自动化调用浏览器后要关闭,如果是无界面的浏览器会一直在内存中,消耗资源
[attach]237767[/attach]
-
QQ截图20180701203112.png
(25.23 KB, 下载次数: 12)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |