A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 lanqi0820 于 2018-7-2 08:13 编辑

   最近一直到学爬虫这方面到东西,学到selenium这个模块,最初是模拟登陆,后来就想能否用它来实现黑马论坛自动签到功能,于是就动手写了这个小程序
     当然在写到过程中跳了好几个坑,其中之一就是程序调用chromdriver.exe出错,(因为我用到时chrome浏览器来模拟到),网上到解决办法(1chromedriver.exe添加到环境变量,2直接放在py文件到同一级目录中,3chrome版本和driver版本不匹配),这些问题都解决来之后还是报错,都快放弃都时候决定换个系统(当前用都是win10,下载win7,安装,之后就在也没报这样都错来,巨坑。
   
[Python] 纯文本查看 复制代码
# coding="utf-8"[/align]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)

登陆进去后,页面会有个跳转,让程序sleep5秒,等跳转,在找到签到按钮点击即可。因为今天已经签到了,所以直接进到签到后的页面了。
后续的操作等明天签到等时候在来详细研究下如何实现程序来签到。

============分割线=============================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()          #自动化调用浏览器后要关闭,如果是无界面的浏览器会一直在内存中,消耗资源


QQ截图20180701203112.png (25.23 KB, 下载次数: 12)

QQ截图20180701203112.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马