本帖最后由 gdp990 于 2020-9-14 14:03 编辑

应大家要求,决定把思路以及教程写一下。

首先明确目的,我想写一个能实现自动签到的程序,那么就要看看假如是我们自己签到都需要哪些步骤。

为方便大家观看我把第一版的代码放上来,这一版是可视化的。

[Python] 纯文本查看 复制代码from selenium import webdriver

from time import sleep

driver = webdriver.Chrome() #这一行的目的是打开chrome浏览器

driver.get("https://my.qidian.com/")#使浏览器打开网页,这里注意网页一定是https://xxx.xxx.xxx/这样子的,不要直接比如www.baidu.com,会报错

driver.find_element_by_id("username").send_keys("17715696592")#通过审查元素找到的id来定位用户名输入框并输入

driver.find_element_by_id("password").send_keys("a2680939")#通过审查元素找到的id来定位密码输入框并输入

sleep(1)#等待页面跳转,防止下一个按键找不到登录按钮报错

driver.find_element_by_link_text("登 录").click()

sleep(1)#同上,每当页面跳转的时候最好都等一秒

driver.find_element_by_link_text("经验值等级").click()

driver.find_element_by_link_text("领取").click()

print("领取成功")

sleep(1)#给领取一个延时,防止还没领到就关掉浏览器

driver.quit()

导入库和打开浏览器部分我们就不说了,这里我们重点讲如何定位,因为这也是我在编写过程中感觉到的难点,关于Selenium库的安装与基本命令大家可以看这两个教程,也是我在学习时所用到的两个教程,第一个:https://blog.csdn.net/weixin_36279318/article/details/79475388 第二个:http://www.testclass.net/selenium_python

这两个讲的都比较易懂,理论方面大家可以点进去看,然后再来看我这个实操。

第一步,登录

我们仔细看一下这个页面,登录需要输入用户名,密码。然后单击登录,就OK了。我们自己登录的话肯定是这样做了,那如果是程序达成这些操作我们就需要一个能实现类似操作的玩意,就是selenium库。这里我用到的教程是https://blog.csdn.net/weixin_36279318/article/details/79475388这里。如何安装以及基本的使用。这里我就不多BB了,大家只要知道这个东西可以模拟我们人手在网页上点击,输入,前进和后退等等就可以了。有兴趣的大家点进去看哈。

首先我们要定位到输入用户名的框框,我们知道用selenium可以进行模拟输入了,但是如何定位呢,我们可以用审查元素,我用的是chrome浏览器,按f12打开审查元素

大家看我选中的这一条,左边对应的页面全部变成了蓝色,这就说明这一条扩展栏对应整个页面,我们一步步点开,然后用鼠标悬停在上面,哪里亮了就说明代码对应着哪个部分

然后逐步选择下去,我们可以看到这一块就对应着用户名这一栏,并且无法再展开了,我们观察代码,发现有一句id="username"

这就可以帮助我们定位,这里就要用到selenium里的命令

[Python] 纯文本查看 复制代码driver.find_element_by_id("username").send_keys("用户名")

这段代码分两个部分——.send之前是用我们前面找到的id来定位输入框,右面的send_keys是进行”往输入框里输入的命令”。同理我们以相同的方式输入密码,接着再定位到他的登录键

这里我们看到这个“登录”的代码里没有id=什么什么,那怎么办呢,我们用另一种定位方法,文本定位,也就是我划红线这里,然后用类似的代码

[Python] 纯文本查看 复制代码driver.find_element_by_link_text("登 录").click()#找到登录键并单击

,这行代码同样分两个部分,.click前面是定位,.click是鼠标单击操作。

——————————————————————————————————我是分割线——————————————————————————————————————————————————————————

今天闲着无聊,正好学校最近开了门Python课程,于是想自己先学习一下。正好在看小说,于是在网上查了一些关于模拟网页点击的教程,写了自己的第一个python源码,很简单的实现起点自动签到。

不过缺陷也有很多,比如这个是多久可以领一次,第一档5分钟,第二档十分钟之类的,所以想把全部奖励都领完的话就需要隔一段时间打开一次。

废话不多说,上源码。

[Python] 纯文本查看 复制代码from selenium import webdriver

from time import sleep

import random

from selenium.webdriver.chrome.options import Options

#无窗口运行

chrome_options = Options()

chrome_options.add_argument('--no-sandbox') #解决DevToolsActivePort文件不存在的报错

chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率

chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug

chrome_options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面

chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度

chrome_options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败

driver=webdriver.Chrome(chrome_options=chrome_options, executable_path="D:/ChromeDriver/chromedriver.exe")

#定义起点地址

qidian_url = 'https://my.qidian.com/'

#打开起点页面

driver.get(qidian_url)

#登录

driver.find_element_by_id("username").send_keys("你的账号/手机号")#这里输入用户名

driver.find_element_by_id("password").send_keys("你的密码")#这里输入密码

sleep(1)

driver.find_element_by_link_text("登 录").click()#找到登录键并单击

#休眠等待

sleep(1)

driver.find_element_by_link_text("经验值等级").click()

driver.find_element_by_link_text("领取").click()#领取经验值

print("签到成功")

sleep(1)#留出响应时间

#退出

driver.quit()

python自学教程读书导图-自学Python第一天:起点读书自动领取经验值(附思路讲解)...相关推荐

  1. python基础知识思维导图-总结 Python 知识点思维导图

    本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文 ...

  2. 思维导图:python面向对象(搞笑案例)

    关联阅读:可能是最全的 Python 面向对象入门教程了 手机版本 关联阅读:可能是最全的 Python 面向对象入门教程了 Python面向对象 面向对象入门 对象编程体验 一款简单自动运行小游戏模 ...

  3. python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系

    原标题:最新版 17 幅思维导图:Python 编程之核心知识体系 导读:本文主要涵盖了 Python 编程的核心知识,展示了一系列思维导图,主要就 Python 核心基础知识进行了细致梳理.无论你是 ...

  4. python基础教程(第3版) pdf,python手册中文版第四版

    求<Python学习手册>(第四版)中文版pdf,万分感谢! <[3]学习视频>百度网盘资源免费下载链接提取码:m6tm[3]学习视频|python视频教程|Python入门基 ...

  5. python基础教程视频(全13集)-Python基础视频教程全集

    原标题:Python基础视频教程全集 Python编程语言的定位是"优雅"."明确"."简单",所以对于Python初学者来说,学起来没有那 ...

  6. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  7. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  8. python基础教程第二版答案-《Python基础教程》(第2版修订版)中要注意的地方...

    想必现在大家学习Python都会用3.0及以上的版本了,虽然2.X的版本依然很多,但是这两年随着部分开源项目不再支持2.X版本,3.X已经成为趋势. 正是在这样的大背景下,我最近用这本<Pyth ...

  9. 终极版Python学习教程:一篇文章讲清楚Python虚拟环境

    我在之前写过一篇Python学习教程,说过新手往往没有注意环境隔离,导致Python项目包与包之间冲突. 并且Python2与3代码执行有问题等等.鉴于此我决定今天的Python学习教程给大家聊聊关于 ...

最新文章

  1. linux下tomcat服务的相关命令
  2. WIN7+wampserver2.4+zend stadio10.6.1配置Xdebug
  3. 如何快速接手一个系统?
  4. hibernate保存mysql乱码_hibernate保存数据到mysql时的中文乱码问题
  5. 【C++ STL学习之一】容器的共通能力和共通操作总结
  6. UI素材|管理系统数字可视化界面
  7. Linux多进程编程(1)
  8. python数据库def函数_Python:函数
  9. 电气工程及自动化 (独立本科) 自考
  10. 华为安装gsm框架_华为手机怎么安装 GMS 框架和谷歌应用?
  11. 如何批量压缩图片?教你一键批量压缩图片的方法技巧
  12. 开发QQ桌球瞄准器(4):透明度、颜色、线宽与母球大小
  13. Vue跨域问题解决方案
  14. html桌面共享文件夹,win7共享文件夹在哪? win7和win10怎么共享文件夹
  15. FAQ01【Hadoop】:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  16. [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)
  17. k210安装ch210驱动(看着一篇就足够了)
  18. Java_笛卡尔积计算
  19. Hbase slides
  20. git笔记(团队协作教程,GitHub操作)

热门文章

  1. server 2008 mysql 报错 0xc000007b_docker插件部署项目,volumes报错invalid volume specification...
  2. getprivateprofilestring读不到数据_从零到千万用户,我是如何一步步优化MySQL数据库的?...
  3. 20年总结,21年展望
  4. 内网使用ohmyzsh
  5. 趣谈网络协议笔记-二(第十三讲)
  6. prefixspan是挖掘频繁子序列,子序列不一定是连续的,当心!!!
  7. ES mlockall作用——preventing that memory from being paged to the swap area
  8. Vue2接口地址配置(webpack)
  9. OCWA提高组模拟赛一 Solution
  10. apache-2.4.12之虚拟主机配置问题与觖决办法