python爬虫之利用selenium模块自动登录CSDN


Posted in Python onApril 22, 2021

一、页面分析

CSDN登录页面如下图

python爬虫之利用selenium模块自动登录CSDN

二、引入selenium模块及驱动

2.1 并将安装好的Chromedriver.exe引入到代码中

# -*- coding:utf-8 -*-
from selenium import webdriver  
import os
import time
#引入chromedriver.exe
chromedriver="C:/Users/lex/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)

2.2 浏览器驱动引入

将驱动下载后,复制chromedriver.exe 到谷歌浏览器的安装路径下,与Chrome.exe启动文件并列的目录下:

python爬虫之利用selenium模块自动登录CSDN

三、爬虫模拟登录

3.1 设置网址链接

#设置浏览器需要打开的url
url = "https://passport.csdn.net/login?code=public"  
browser.get(url)

3.2 切换到账号密码登录

使用selenium模拟点击 账号密码登录的选项

#使用selenium选择 账号登录按钮
browser.find_element_by_link_text("账号密码登录").click()

3.3 找到用户名密码的控件ID

python爬虫之利用selenium模块自动登录CSDN

3.4 注入用户名和密码

根据页面代码分析,获得用户名的id属性为all,密码的id属性为password-number

使用python代码,注入用户名密码

browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("xxxx@gmail.com")
time.sleep(2)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("1212121212")

python爬虫之利用selenium模块自动登录CSDN

3.5 模拟登录点击

分析页面结构,模拟点击登录按钮。

分析可获得,登录按钮的class属性为btn btn-primary,根据class来锁定该按钮

time.sleep(1)
#增加一秒钟的时间间隔
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

python爬虫之利用selenium模块自动登录CSDN

四、成功登录CSDN

python爬虫之利用selenium模块自动登录CSDN

五、完整代码

# -*- coding:utf-8 -*-
import os
import time
from selenium import webdriver # 从selenium导入webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import json
import time
#引入chromedriver.exe
chromedriver="C:/Users/lex/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)
#设置浏览器需要打开的url
url = "https://passport.csdn.net/login?code=public"  
browser.get(url)
browser.find_element_by_link_text("账号密码登录").click()
browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("你的邮箱地址")
time.sleep(1)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("你的登录密码")
time.sleep(1)
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

到此这篇关于python爬虫之利用selenium模块自动登录CSDN的文章就介绍到这了,更多相关python自动登录CSDN内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
python实现ipsec开权限实例
Nov 11 Python
python中尾递归用法实例详解
Apr 28 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
详解Python中的变量及其命名和打印
Mar 11 Python
python多线程方式执行多个bat代码
Jun 07 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
python视频按帧截取图片工具
Jul 23 Python
Python 硬币兑换问题
Jul 29 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
图书管理程序(一)
2006/10/09 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
通过实例解析python描述符原理作用
2020/01/22 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
银行求职自荐书
2014/06/25 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
保密工作目标责任书
2014/07/28 职场文书
服务员岗位职责范本
2015/04/09 职场文书
七夕情人节问候语
2015/11/11 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android