0
点赞
收藏
分享

微信扫一扫

爬虫实战 -- 基于Session和Cookie的模拟登录爬取(二)

案例介绍  

对于传统的MVC模式开发的网站,比较适合基于Session和Cookie的模式模拟登录。对于网站:https://login2.scrape.center,我们之前直接使用requests的Session对象来进行登录。但是如果碰上比较复杂的网站,例如带有验证码、带有加密参数,直接用requests并不能很好地处理模拟登录。这个时候,我们可以使用Selenium模拟浏览器的操作,进而实现模拟登录,然后获取登录成功后的Cookie,再把爬取的Cookie交由requests爬取。

程序代码  

from urllib.parse import urljoin
from selenium import webdriver
import requests
import time

BASE_URL = 'https://login2.scrape.center/'
LOGIN_URL = urljoin(BASE_URL, '/login')
INDEX_URL = urljoin(BASE_URL, '/page/1')
USERNAME = 'admin'
PASSWORD = 'admin'
#模拟登录过程
browser = webdriver.Chrome()
browser.get(LOGIN_URL)
browser.find_element_by_css_selector('input[name="username"]').send_keys(USERNAME)
browser.find_element_by_css_selector('input[name="password"]').send_keys(PASSWORD)
browser.find_element_by_css_selector('input[type="submit"]').click()
time.sleep(10)

cookies = browser.get_cookies()
print('Cookies', cookies)
browser.close()
#定义session对象并给它设置Cookie
session = requests.Session()
for cookie in cookies:
  session.cookies.set(cookie['name'], cookie['value'])
#请求首页
response_index = session.get(INDEX_URL)
print('Response Status', response_index.status_code)
print('Response URL', response_index.url)
print(response_index.text)

         

  

         

举报

相关推荐

0 条评论