python采用requests库模拟登录和抓取数据的简单示例

下面我来讲解一下“Python采用requests库模拟登录和抓取数据的简单示例”:

1. 简介

requests库是一个Python第三方库,用于处理http请求,是Python开发中用的最为广泛的第三方库之一。我们可以利用requests模拟登录网站并抓取网站数据。

2. 环境准备

在使用requests模拟登录之前,需要安装requests库,安装命令如下:

pip install requests

3. 实例说明

3.1 模拟登录拉勾网并抓取数据

以模拟登录拉勾网为例,我们需要分两步进行操作,一是模拟登录,二是抓取数据。

3.1.1 模拟登录

模拟登录需要先访问登录页面,获取登录所需的参数,包括表单数据和cookie。

import requests

# 访问登录页面,获取cookie以及请求参数
login_url = 'https://passport.lagou.com/login/login.html'
s = requests.session()
r = s.get(login_url, verify=False)
cookie = r.cookies

# 构建请求头
headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Length': '25',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Host': 'passport.lagou.com',
    'Origin': 'https://passport.lagou.com',
    'Referer': 'https://passport.lagou.com/login/login.html',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest'
}

# 构建请求参数
data = {
    'isValidate': 'true',
    'username': 'xxx',
    'password': 'xxx',
    'request_form_verifyCode': '',
    'submit': ''
}

# 模拟登录,而后获取响应
r = s.post('https://passport.lagou.com/login/login.json', data=data, headers=headers, cookies=cookie, verify=False)
print(r.content.decode('utf-8'))

以上代码中的username和password需要替换成你自己的账号和密码。接下来我们在登录之后,通过requests发起一个抓取数据的请求,示例代码如下:

3.1.2 抓取数据

# 模拟登录之后的请求
resp = s.post('https://www.lagou.com/mycenter/resume.html?st=load&force=true', headers=headers, cookies=cookie, verify=False)
print(resp.content.decode('utf-8'))

以上代码中的请求链接'https://www.lagou.com/mycenter/resume.html?st=load&force=true'是拉钩网个人中心页面的链接。

3.2 模拟登录GitHub并抓取数据

以模拟登录GitHub为例,我们也需要分两步进行操作,一是模拟登录,二是抓取数据。

3.2.1 模拟登录

import requests

# 访问登录页面,获取cookie
login_url = 'https://github.com/login'
s = requests.session()
r = s.get(login_url, verify=False)
cookie = r.cookies

# 构建请求参数
data = {
    'commit': 'Sign in',
    'utf8': '✓',
    'authenticity_token': '',
    'login': 'xxx',
    'password': 'xxx'
}

# 获取authenticity_token
auth_token = r.text.split('name="authenticity_token" value="')[1].split('"')[0]
data['authenticity_token'] = auth_token

# 模拟登录,而后获取响应
r = s.post('https://github.com/session', data=data, cookies=cookie, verify=False)
print(r.content.decode('utf-8'))

以上代码中的login和password需要替换成你自己的账号和密码。接下来我们在登录之后,通过requests发起一个抓取数据的请求,示例代码如下:

3.2.2 抓取数据

# 模拟登录之后的请求
resp = s.get('https://github.com/settings/emails', cookies=cookie, verify=False)
print(resp.content.decode('utf-8'))

以上代码中的请求链接'https://github.com/settings/emails'是GitHub个人设置页面中的链接,我这里抓取的是GitHub绑定的邮箱地址。

4.总结

以上就是Python采用requests库模拟登录和抓取数据的简单示例的详细攻略。在抓取数据之前一定要模拟登录获取cookie和authenticity_token,以便能够正常获取数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python采用requests库模拟登录和抓取数据的简单示例 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 最炫Python烟花代码全解析

    “最炫Python烟花代码全解析”介绍了如何使用Python语言实现烟花动画效果。本文将详细讲解该攻略的具体实现过程。 步骤一:导入必要的库 在实现烟花效果之前,需要导入一些常用的Python库,如random、math、turtle等。它们分别提供了生成随机数、数学计算以及绘图等功能。 import random import math import tu…

    python 2023年5月19日
    00
  • python_tkinter弹出对话框创建2

    Markdown 格式文本 Python Tkinter 弹出对话框创建2 tkinter 是 Python 的标准 GUI 库,可以用来创建各种 GUI 应用程序,包括弹出对话框。本文介绍如何使用 tkinter 的弹出对话框来满足不同的需求。 简单提示框 如果你只需要创建一个简单的提示框,可以使用 tkMessageBox 模块,其中包含了多个与操作系统…

    python 2023年6月13日
    00
  • python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析

    下面就是对于“python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析”的完整攻略: 1. 介绍 这篇攻略主要介绍了如何使用 PyQT5 GUI 库开发基于 Python 的简单绘图板实例,并对代码进行了详细的分析。 2. 环境配置 为了运行这个 PyQT5 程序,需要先配置环境,必须要安装 PyQt5 库。可以通过 pip 安装它: pip …

    python 2023年6月13日
    00
  • Django实现微信小程序支付的示例代码

    Django实现微信小程序支付可以分为以下几个步骤: 1. 配置微信支付 在微信支付商户平台申请账号并完成相关配置,获得APPID、商户号、支付密钥等信息。 2. 安装相关依赖 使用pip命令安装wechatpy、wechatpy-pay和django-wechatpay等依赖库: pip install wechatpy wechatpy-pay djan…

    python 2023年5月23日
    00
  • 用Python实现web端用户登录和注册功能的教程

    下面我详细讲解一下该攻略。 用Python实现web端用户登录和注册功能的教程 什么是web端用户登录和注册功能 在一个基于web的应用程序中,用户登录和注册是非常常见的功能。用户登录指的是注册用户输入他们的用户名和密码,然后被应用程序验证以进入系统。用户注册是指一个未注册用户输入必要的信息,并在成功验证后创建一个新的帐户。 用到的技术 为了实现用户登录和注…

    python 2023年6月3日
    00
  • Python实现自动化刷抖音的实例

    Python实现自动化刷抖音的实例 1. 概述 抖音是一款非常受欢迎的短视频分享平台,有很多用户喜欢在抖音上浏览刷视频。如果手动刷视频,时间成本比较高。自动化刷抖音可以帮助我们轻松地完成这项任务。本文将介绍如何使用Python来实现自动化刷抖音的功能。 2. 实现方法 为了实现自动化刷抖音,我们需要使用以下步骤: 2.1 安装Selenium Seleniu…

    python 2023年5月19日
    00
  • python使用Faker进行随机数据生成

    下面是关于Python中使用Faker库进行随机数据生成的完整攻略。 1. 什么是Faker库 Faker是一个用于生成随机数据的Python第三方库,它提供了各种类型的数据生成器,如姓名、地址、电子邮件、日期、文本等等。Faker的生成器可以生成各种不同语言及文化背景的数据,支持多种语言,包括中文。 2. 安装Faker库 使用pip安装Faker库,输入…

    python 2023年6月3日
    00
  • PHP webshell检查工具 python实现代码

    下面是详细的攻略: PHP Webshell检查工具Python实现代码 PHP Webshell是一种常见的黑客攻击工具,可以用于远程控制服务器。为了保护服务器安全,我们需要使用PHP Webshell检查工具来检测服务器上是否存在Webshell。本文将介绍如何使用Python实现PHP Webshell检查工具。 实现步骤 PHP Webshell检查…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部