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中获取对象信息的方法
Apr 27 Python
python递归计算N!的方法
May 05 Python
初步剖析C语言编程中的结构体
Jan 16 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
python构建深度神经网络(DNN)
Mar 10 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
java中的控制结构(if,循环)详解
Jun 26 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
Python中的__init__作用是什么
Jun 09 Python
python和php哪个更适合写爬虫
Jun 22 Python
python文件目录操作之os模块
May 08 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
php&java(二)
2006/10/09 PHP
PHP获取网站域名和地址的代码
2008/08/17 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
使用python开发vim插件及心得分享
2014/11/04 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
解决django FileFIELD的编码问题
2020/03/30 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
开业典礼主持词
2014/03/21 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
经典演讲稿开场白
2014/08/25 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
质量保证书格式
2015/02/27 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js
React更新渲染原理深入分析
2022/12/24 Javascript