【Python爬虫】requests学习之路

目录

一、requests概述

二、安装方式

三、基本用法

四、参数解析

五、完整代码

六、重点知识

一、requests概述

Python自带的基于网络请求的模块,其功能强大、简单高效。

二、安装方式

利用 pip 安装

$ pip install requests

 如果已经下载完anaconda,就可以不用下载,直接使用导包即可。

三、基本用法

1.指定url

# 1.url
url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname"

2.发送请求【get、post】

# 2.发送请求
response = requests.post(url=url, data=parms, headers=headers)

3.获取页面信息

# 3.获取页面数据
response.encoding = "utf-8"
data_json = response.text
print(data_json)

text、json、content三种返回类型,根据想要爬取的页面灵活应用。

  • ​​​​​​​使用response.text 时,Requests 会基于 HTTP 响应的文本编码自动解码响应内容,大多数 Unicode 字符集都能被无缝地解码。

  • 使用response.content 时,返回的是服务器响应数据的原始二进制字节流,可以用来保存图片等二进制文件。

4.存储数据

# 4.存储数据
with open(r"D:\file_all\企业课\爬虫\kfc.json", "w", encoding="utf-8") as fp1:
    fp1.write(data_json)

另外,也要指定headers,来实现ua伪装,模拟浏览器上网

# ua 伪装 =》 模拟浏览器上网
headers = {
    "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55'
}

四、参数解析

(一)post方法解析

url要请求的url路径
datadata必须是bytes(字节流)类型
headersheaders是一个字典类型,是请求头

(二)get方法解析

url要请求的url路径
params发送我们指定的内容,可以是传字典或者列表
headersheaders是一个字典类型,是请求头

五、完整代码

利用requests模块,进行抓取大连地域的肯德基餐厅信息,并保存在json文件中,完整代码如下:

import requests
import json

if __name__ == '__main__':
    # 1.url
    url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname"
    parms = {
        'cname': '大连',
        'pid':'',
        'pageIndex':'1',
        'pageSize':'10'
    }

    # ua 伪装 =》 模拟浏览器上网
    headers = {
        "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55'
    }

    # 2.发送请求
    response = requests.post(url=url, data=parms, headers=headers)

    # 3.获取页面数据
    response.encoding = "utf-8"
    data_json = response.text
    print(data_json)
    # 4.存储数据
    with open(r"D:\file_all\企业课\爬虫\kfc.json", "w", encoding="utf-8") as fp1:
        fp1.write(data_json)

六、重点知识

  • request: 
        User-Agent: 请求载体的身份标识,模拟浏览器身份
  • response: 
        Content-Type:服务器响应client的数据类型
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值