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

yizhihongxing

下面我来讲解一下“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买卖股票的最佳时机实现 Python中有多种算法可供选择,包括贪心算法、蛮力算法等。以下是使用贪心算法实现买卖股票的…

    python 2023年5月14日
    00
  • python集合比较(交集,并集,差集)方法详解

    Python集合比较(交集、并集、差集)方法详解 什么是Python集合 Python集合是一种无序不重复的数据类型,它的元素以键(key)的方式存储,没有重复的元素。Python集合元素的值可以是任何可哈希(hashable)的对象,同一个集合内的元素数据类型可以不一致。 Python集合的方法 Python集合有一些方法可以进行元素的操作,这些方法包括:…

    python 2023年5月13日
    00
  • 基于Python实现自动化生成数据报表

    基于Python实现自动化生成数据报表的完整实例教程如下: 1. 准备工作 在开始编写代码前需要进行准备工作:1. 安装Python;2. 安装所需的Python库,包括pandas、openpyxl、numpy等;3. 准备好需要处理的数据源,比如CSV文件。 2. 加载数据 将需要处理的数据加载到Python中,可以使用pandas库中的read_csv…

    python 2023年5月14日
    00
  • (参考)爬虫8-re库的match对象,贪婪匹配,最小匹配

    import re match=re.search(r'[1-9]\d{5}’,’BIT100081′) if match: print(match.group(0)) #输出 100081 type(match)#输出 _sre.SRE_Match   import re m=re.search(r'[1-9]\d{5}’,’BIT100081 VHT16…

    2023年4月8日
    00
  • 对python3标准库httpclient的使用详解

    对python3标准库http.client的使用详解 在Python中,http.client模块提供了一个简便的方法来进行HTTP请求和解析HTTP响应。http.client库允许发送HTTP请求,处理HTTP响应以及创建自定义的HTTP客户端。 发送HTTP请求 1. 发送GET请求 我们可以使用http.client中的HTTPConnection…

    python 2023年6月3日
    00
  • Python中的复杂数据类型(list、tuple)

    以下是“Python中的复杂数据类型(list、tuple)”的完整攻略。 1. list list是Python中最常用的数据类型之一,它是一个有序的集合,可以包含任意类型的对象,包括数字、字符串、列表、元组、字典等。list可以通过索引访问其中的元素,也可以通过切片操作获取其中的子列表。示例如下: my_list = [1, ‘hello’, [2, 3…

    python 2023年5月13日
    00
  • Python常用字符串替换函数strip、replace及sub用法示例

    Python常用字符串替换函数strip、replace及sub用法示例 在Python中,字符串替换是比较基础的操作。本文将介绍三个常用的字符串替换函数:strip、replace以及sub,并给出相应的用法示例。 strip strip函数可以去掉字符串前后的空格(包括换行符)、制表符、回车符等等。 # 去除空格、回车、换行符 string = ‘ he…

    python 2023年6月3日
    00
  • python-xpath获取html文档的部分内容

    Python-XPath获取HTML文档的部分内容 在本文中,我们将介绍如何使用Python和XPath从HTML文档中获取部分内容。XPath是一种用于在XML和HTML文档中选择元素的语言。我们将提供两个示例,以帮助读者更好地理解如何实现这个目标。 步骤1:安装必要的库 在使用Python和XPath获取HTML文档的部分内容之前,我们需要安装必要的库。…

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