python自学教程读书导图-自学Python第一天:起点读书自动领取经验值(附思路讲解)...
本帖最后由 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第一天:起点读书自动领取经验值(附思路讲解)...相关推荐
- python基础知识思维导图-总结 Python 知识点思维导图
本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文 ...
- 思维导图:python面向对象(搞笑案例)
关联阅读:可能是最全的 Python 面向对象入门教程了 手机版本 关联阅读:可能是最全的 Python 面向对象入门教程了 Python面向对象 面向对象入门 对象编程体验 一款简单自动运行小游戏模 ...
- python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系
原标题:最新版 17 幅思维导图:Python 编程之核心知识体系 导读:本文主要涵盖了 Python 编程的核心知识,展示了一系列思维导图,主要就 Python 核心基础知识进行了细致梳理.无论你是 ...
- python基础教程(第3版) pdf,python手册中文版第四版
求<Python学习手册>(第四版)中文版pdf,万分感谢! <[3]学习视频>百度网盘资源免费下载链接提取码:m6tm[3]学习视频|python视频教程|Python入门基 ...
- python基础教程视频(全13集)-Python基础视频教程全集
原标题:Python基础视频教程全集 Python编程语言的定位是"优雅"."明确"."简单",所以对于Python初学者来说,学起来没有那 ...
- 视频教程-快速入门Python基础教程_Python基础知识大全-Python
快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...
- 视频教程-快速入门Python基础教程_Python基础进阶视频-Python
快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...
- python基础教程第二版答案-《Python基础教程》(第2版修订版)中要注意的地方...
想必现在大家学习Python都会用3.0及以上的版本了,虽然2.X的版本依然很多,但是这两年随着部分开源项目不再支持2.X版本,3.X已经成为趋势. 正是在这样的大背景下,我最近用这本<Pyth ...
- 终极版Python学习教程:一篇文章讲清楚Python虚拟环境
我在之前写过一篇Python学习教程,说过新手往往没有注意环境隔离,导致Python项目包与包之间冲突. 并且Python2与3代码执行有问题等等.鉴于此我决定今天的Python学习教程给大家聊聊关于 ...
最新文章
- linux下tomcat服务的相关命令
- WIN7+wampserver2.4+zend stadio10.6.1配置Xdebug
- 如何快速接手一个系统?
- hibernate保存mysql乱码_hibernate保存数据到mysql时的中文乱码问题
- 【C++ STL学习之一】容器的共通能力和共通操作总结
- UI素材|管理系统数字可视化界面
- Linux多进程编程(1)
- python数据库def函数_Python:函数
- 电气工程及自动化 (独立本科) 自考
- 华为安装gsm框架_华为手机怎么安装 GMS 框架和谷歌应用?
- 如何批量压缩图片?教你一键批量压缩图片的方法技巧
- 开发QQ桌球瞄准器(4):透明度、颜色、线宽与母球大小
- Vue跨域问题解决方案
- html桌面共享文件夹,win7共享文件夹在哪? win7和win10怎么共享文件夹
- FAQ01【Hadoop】:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)
- k210安装ch210驱动(看着一篇就足够了)
- Java_笛卡尔积计算
- Hbase slides
- git笔记(团队协作教程,GitHub操作)
热门文章
- server 2008 mysql 报错 0xc000007b_docker插件部署项目,volumes报错invalid volume specification...
- getprivateprofilestring读不到数据_从零到千万用户,我是如何一步步优化MySQL数据库的?...
- 20年总结,21年展望
- 内网使用ohmyzsh
- 趣谈网络协议笔记-二(第十三讲)
- prefixspan是挖掘频繁子序列,子序列不一定是连续的,当心!!!
- ES mlockall作用——preventing that memory from being paged to the swap area
- Vue2接口地址配置(webpack)
- OCWA提高组模拟赛一 Solution
- apache-2.4.12之虚拟主机配置问题与觖决办法