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 相关文章推荐
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
tensorflow 模型权重导出实例
Jan 24 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
Python爬虫防封ip的一些技巧
Aug 06 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
php的urlencode()URL编码函数浅析
2011/08/09 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
python使用mailbox打印电子邮件的方法
2015/04/30 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python使用thrift教程的方法示例
2019/03/21 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
行政经理的岗位职责
2013/11/23 职场文书
部队万能检讨书
2014/02/20 职场文书
企业法人代表任命书
2014/06/06 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
实践论读书笔记
2015/06/29 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis