飞道的博客

上班时间在CSDN摸鱼被女领导发现了—她问我怎么用python自动登录CSDN【2021.04.20】

683人阅读  评论(0)

目录

页面分析

引入selenium模块及驱动

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

2、浏览器驱动引入

爬虫模拟登录

1、设置网址链接

2、切换到账号密码登录

3、找到用户名密码的控件ID

4、注入用户名和密码

5、模拟登录点击

成功登录CSDN


先上效果

页面分析

CSDN登录页面如下图

引入selenium模块及驱动

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


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

2、浏览器驱动引入

驱动下载地址:

https://download.csdn.net/download/weixin_42350212/14983610

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

爬虫模拟登录

1、设置网址链接


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

2、切换到账号密码登录

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


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

3、找到用户名密码的控件ID

4、注入用户名和密码

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

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


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

5、模拟登录点击

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

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


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

成功登录CSDN

完整代码


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

欢迎关注公众号:hacklex  提供各种资源下载。


转载:https://blog.csdn.net/weixin_42350212/article/details/115898831
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场