Python 自动化办公实战课
尹会生
前游戏公司技术总监,前新浪网研发中心技术经理
21781 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 37 讲
Python 自动化办公实战课
15
15
1.0x
00:00/00:00
登录|注册

19|http库:如何批量下载在线内容,解放鼠标(下)?

利用“selenium”,实现自动签到
使用“selenium”模拟浏览器,实现自动登录
避免编写JavaScript脚本
解决网页加密问题
使用了JavaScript脚本语言
防止用工具下载的网页
总结
自动签到的原理与思路
取得网页的源代码并打印
使用“selenium”访问网页
安装“selenium”库
把“Webdriver”放在命令的搜索路径下
根据浏览器版本下载“Webdriver”
“selenium”的适用场景
两种场景“requests-html”工具无法覆盖
思考题
如何实现京东自动签到
“selenium”的安装与初次运行
怎么使用“requests-html”库来批量下载图片

该思维导图由 AI 生成,仅供参考

你好,我是尹会生。
在上节课,我们学习了怎么使用“requests-html”库来批量下载图片,这足以帮你应对大部分需要批量下载互联网资源的场景了。
但是除了批量下载这一典型场景外,还有两种场景“requests-html”工具无法覆盖,其中就包括一些网站的每日签到功能,明明登录网站后点击一个按钮就能领到虚拟货币,但是每次还要手动输入账户和密码,再用鼠标点击领取按钮。相信已经学会了如何用 Python 访问网页的你,早就想把签到进行自动化了吧。
那么今天,我就以京东自动签到领金豆为例,为你介绍一款比“requests-html”更加强大的浏览器工具“selenium”,通过 selenium 我将带你实现自动化的用户登录和模拟鼠标点击功能。

selenium 的适用场景

我刚才也提到了,在你把“requests-html”库应用到各种批量下载场景之后,你会发现有两种场景下使用“requests-html”无法实现批量下载。
一种场景是,有的网页为了防止你用工具下载,会对下载工具进行检测。如果你的 HTTP 客户端不是浏览器,那就不允许你访问该网站下的所有内容。
另一种场景是,一些网页为了更好的交互性,就使用了 JavaScript 脚本语言。而 JavaScript 脚本语言需要在浏览器运行,才能获得服务器的数据。所以如果使用“requests-html”来获取这些数据的话,你就必须再编写 Javascript 脚本。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

使用selenium库实现自动化用户登录和模拟鼠标点击功能是本文的核心内容。文章详细介绍了selenium的安装和初次运行、访问网页、以及实现京东自动签到等方面的步骤。通过selenium,读者可以解决一些requests-html无法覆盖的场景,如网页加密和JavaScript脚本语言的应用。作者提供了使用selenium模拟浏览器实现登录和自动签到的代码示例,以及对应的操作函数和XPath转换方法。总结来说,本文为读者提供了一份详细的selenium入门指南,使其能够快速上手并应用于实际场景中。文章还鼓励读者思考如何利用selenium自动登录Github并进行关键字搜索,以及将搜索结果保存到文件中。整体而言,本文内容丰富,技术性强,适合对自动化操作感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 自动化办公实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 浮华~
    置顶
    关于微信授权的 签到小程序也可以这样弄吗

    作者回复: 可以实现,但要比一般的网页复杂一些,它的主要难点在于小程序都采用了传输过程加密的https协议,并且还是利用手机访问的,这时候我们一般的做法是采用一个叫做Charles的软件先抓包,也就是截获数据包来回传递的信息和工作过程,之后再使用Python进行数据“伪装”,做到签到的目的

    2021-10-06
    2
  • LDxy
    可以开始研究下上下班的自动签到了

    作者回复: 这个可以有

    2021-03-27
    2
    4
  • Eco
    用 ChatGPT 结合本课程学习了,发现其中有一个问题: 在Selenium 4及以上版本中,find_element_by_xpath方法已被弃用。你应该使用find_element方法配合By.XPATH来替代。

    作者回复: 是这样的,在Selenium 4及更高版本中,find_element_by_xpath和其他find_element_by_*方法已经被弃用,取而代之的是使用新的find_element方法,并将定位策略作为参数传递。 我再贴一段新的使用方法给你 from selenium.webdriver.common.by import By # 使用XPATH定位 element = driver.find_element(By.XPATH, "//input[@id='username']") # 使用ID定位 element = driver.find_element(By.ID, "username") # 使用CSS选择器定位 element = driver.find_element(By.CSS_SELECTOR, "input#username") 新的find_element方法接受两个参数: 定位策略 (By 类的一个属性,如 By.XPATH、By.ID、By.CSS_SELECTOR 等) 定位表达式 (如 XPATH 表达式、ID 值、CSS 选择器等) 使用这种新方式可以提高代码的可读性和可维护性。虽然旧的find_element_by_*方法在 Selenium 4 中仍可工作,但是建议使用新的find_element方法,因为旧方法将来可能会被完全移除。 最后还要注意,ChatGPT虽然能给出答案,但小概率还是会出差错,所以不可尽信,特别是代码相关的内容,必须要亲自验证一番才能放心运行。

    2024-03-11归属地:广东
  • Jerry
    老师,完整代码在哪里下载啊

    作者回复: 网页版在视频下方, 我这里再提供一个给你 https://github.com/wilsonyin123/python_productivity

    2021-06-08
  • 武明
    不添加请求头,不去除window.navigator.webdriver 好像不行吧,直接出滑块了

    作者回复: 请求头必须加,webdriver可以不隐藏,但是密码输入的速度必须要慢

    2021-04-01
    2
  • 借助http相关类库,DOM结构,可以模拟浏览器很多操作。
    2021-04-23
    1
  • ifelse
    学习打卡
    2023-07-16归属地:浙江
  • David
    这两节结不就是爬虫的操作嘛,密码、验证码的输入的时间控制,在最小值的基础上上还可以使用个random随机函数吧,这样模仿得更像人工操作一些
    2021-12-30
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部