豆瓣的模拟登录也是许多爬虫案例中必不可少的一课,到了今天,豆瓣登录反爬的策略又是怎样的呢?作为爬虫初学者经过小半天折腾,最终成功实现了使用selenium+图鉴
模拟登录豆瓣网,再次书写心得,为其他和我一样的新手提供一条思路。
首先就从与网上的大量资料不同之处开始吧,最开始的一批Selenium爬虫在登录豆瓣网时只需要使用requests模拟发送post请求就好了,随着反爬技术的更新,许多爬虫开始转手使用Selenium+浏览器驱动,因为这无需考虑复杂的服务器交互,处理大量的js验证等,节约了大量时间。大量课本书上的案例代码还停留在简单的使用Selenium直接登录豆瓣,实例代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
time.sleep(1)
iframe = self.driver.find_element(By.TAG_NAME, 'iframe') # 主代码在iframe里面,要先切进去
driver.switch_to.frame(iframe) # 切到内层
time.sleep(0.5)
# 模拟点击切换 至账号密码登录界面
driver.find_element(By.CLASS_NAME, 'account-tab-account').click()
time.sleep(0.1)
driver.find_element(By.ID, 'username').send_keys('19******25') # 模拟键盘输入账号
time.sleep(0.2)
driver.find_element(By.ID, 'password').send_keys('*********') # 模拟键盘输入密码
driver.find_element(By.CSS_SELECTOR, '.btn-account').click() # 点击登录按钮
# 输出登陆之后的cookies
print(self.driver.get_cookies())
time.sleep(0.1)
# 截图保存登陆成功界面
driver.save_screenshot("reimgs/douban.jpg")
<< · Back Index ·>>
本博客主要介紹內容如下:1、DOM是什麼;2、DOM中的Node接口的屬性;3、DOM中的Node接口的方法;4、DOM中的Document接口的屬...
今天聊聊美国动画电影《正义协会:二战》。 片名Justice Society: World War II (2021)。 这部DC动画电影是一个原创故事 ...