今天闲来无事想要温习一下爬虫的内容,于是尝试模拟登陆CSDN然后批量修改我写的blog名称,结果一来就卡住了。
我尝试了两种方式登陆,分别是chromedriver配合selenium模拟登陆和用requests直接登陆,先上selenium模拟登陆的代码:
selenium 模拟登陆
# 初始化
browser = webdriver.Chrome()
# 打开网页
login_url = 'https://passport.csdn.net/login'
browser.get(login_url)
# 如果不是账号密码登陆就点到对应界面去
try:
select = browser.find_element(By.CSS_SELECTOR, "#tabOne")
except:
account_login_btn = browser.find_element(By.CSS_SELECTOR, "#app > div > div > div.main > div.main-login > div.main-select > ul > li:nth-child(2) > a")
account_login_btn.click()
time.sleep(1)
# 输入账号密码进行登陆
user_input = browser.find_element(By.CSS_SELECTOR, "#all")
pwd_input = browser.find_element(By.CSS_SELECTOR, "#password-number")
user_input.send_keys(账号)
pwd_input.send_keys(密码)
time.sleep(1)
login_btn = browser.find_element(By.CSS_SELECTOR, "#app > div > div > div.main > div.main-login > "
"div.main-process-login > div > div:nth-child(6) > div > button")
login_btn.click()
time.sleep(1)
# browser.close()
碰到的问题:
这里有两个问题,第一个是CSDN会弹出安全验证;第二个是到了这个界面之后可能停留1秒钟就自动关闭了!!!
注意!!!我实际上是没有运行browser.close()这个命令的,但就这么关了,并且控制台没有任何错误的提示
requests模拟登陆
先上代码:
url = "https://passport.csdn.net/v1/register/pc/login/doLogin"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/75.0.3770.142 Safari/537.36'}
data = {}
data['userIdentification'] = '账号'
data['pwdOrVerifyCode'] = '密码'
data['loginType'] = '1'
response = requests.post(url, data=data, headers=headers)
print(response.json())
碰到的问题
一直提示繁忙
看了很多人模拟CSDN登陆的blog,实在是没找到原因,难道是CSDN反爬虫升级了?