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

案例介绍

这里有一个网站是https://login2.scrape.center/,访问这个网站,会打开如下图所示的登录页面,要获取网站里面的数据,必须先登录才可以:

这个网站是传统的MVC模式开发的,因此比较适合基于Session和Cookie的模式模拟登录。

我们输入用户名和密码点击登录后,浏览器发起了一个POST请求,目标URL 是https://login2.scrape.center/login,并通过表单提交的方式向服务器提交了登录数据,其中包括username和password两个字段,然后调用get方法请求网站首页来获取页面内容,要想get请求能够获取到内容,两次请求的Cookie必须相同,这里可以借助requests内置的Session对象帮我们自动处理Cookie,使用Session对象之后,requests会自动保存每次请求后设置的Cookie,并在下次请求时携带上它,这样就能获取网站的信息。


程序代码



import requests
from urllib.parse import urljoin


BASE_URL = 'https://login2.scrape.center/'
LOGIN_URL = urljoin(BASE_URL, '/login')
INDEX_URL = urljoin(BASE_URL, '/page/1')
USERNAME = 'admin'
PASSWORD = 'admin'


#定义Session对象
session = requests.Session()
#发出POST请求
response_login = session.post(LOGIN_URL, data={
  'username': USERNAME,
  'password': PASSWORD
})


cookies = session.cookies
print('Cookies', cookies)
#获取首页的数据
response_index = session.get(INDEX_URL)
print('Response Status', response_index.status_code)
print('Response URL', response_index.url)

展开阅读全文

页面更新:2024-05-22

标签:爬虫   字段   表单   首页   实战   程序代码   对象   模式   页面   内容   数据   网站

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top