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中urllib2模块的8个使用细节分享
Jan 01 Python
python3抓取中文网页的方法
Jul 28 Python
详解django.contirb.auth-认证
Jul 16 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
python给微信好友定时推送消息的示例
Feb 20 Python
Django模板Templates使用方法详解
Jul 19 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
PHP XML数据解析代码
2010/05/26 PHP
php中动态调用函数的方法
2015/03/16 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
js 函数性能比较方法
2020/08/24 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
用Python写一个for循环的例子
2016/07/19 面试题
大专学生推荐信范文
2013/11/19 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
如何用python清洗文件中的数据
2021/06/18 Python