栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫学习打卡第二天——requests基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫学习打卡第二天——requests基础

今天学习爬虫的一个模块:requests(基础)

目录

一、工具与环境

二、GET请求

1、基础Ⅰ:requests的get用法

2、基础Ⅱ:反扒问题

3、基础Ⅲ

 4、基础Ⅳ:获取请求头

 5、基础Ⅴ:获取cookie

 6、基础Ⅵ:添加请求头

7、抓取二进制数据

三、POST请求


一、工具与环境

①环境:jupyter

②需要安装模块:requests

!pip install requests

在jupyter新建一个python3,输入如上代码,运行即可。

二、GET请求

1、基础Ⅰ:requests的get用法
import requests #导入requests模块
r = requests.get('https://www.baidu.com/') #以百度为例将get请求到的内容传给r
print(r.text)#输出r的内容

2、基础Ⅱ:反扒问题
import requests
u=requests.get('https://blog.csdn.net/m0_60960867')
print(u.status_code)#打印状态码
print(u.text)#打印文本
print(u.cookies)#打印cookie

 这里爬一下我自己的博客,发现并不像上一个案例一样,这是因为被反扒了

3、基础Ⅲ

http://httpbin.org/get

一个专门用来实现爬虫请求的网站

对其进行一次普通的get请求可以得到:

这里出现了 请求头、URL、IP 等信息。

当需要额外的条件请求即可运用参数params

由于网页的返回类型是 str 类型,并且是 JSON 格式的,如果想直接解析返回结果,得到一个字典格式的话,可以直接调用 json 方法。

import requests  
r = requests.get("http://httpbin.org/get")  
print(type(r.text)) #得到r的类型为str
print(r.json())  
print(type(r.json()))#得到r.json()的类型为dict

 4、基础Ⅳ:获取请求头

鼠标点击右键,选择检查,再选择网络,刷新一下,随机选其中一个内容,如下:

 即可获得请求头

 5、基础Ⅴ:获取cookie
import requests
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44'
}#请求头
url='https://avatar.csdnimg.cn/D/2/1/2_m0_60960867_1633660031.jpg'
r=requests.get(url=url,headers=headers)
print(r.cookies)#直接打印

 6、基础Ⅵ:添加请求头

有些时候我们需要添加headers 参数来传递头信息,不然就会请求失败。

以知乎为例

import requests
r = requests.get("https://www.zhihu.com/explore")
print(r.text)

出现403 请求失败。

但如果加上 headers 并加上 User-Agent 信息

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}#请求头
r = requests.get("https://www.zhihu.com/explore", headers=headers)
print(r.text)

就可以请求成功

7、抓取二进制数据

 图片、音频、视频这些文件本质上都是由二进制码组成的,由于有特定的保存格式和对应的解析方式,我们才可以看到这些形形色色的多媒体。所以,想要抓取它们,就要拿到它们的二进制码。

以爬取我自己的头像为例子:

import requests
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44'
}
url='https://profile.csdnimg.cn/D/2/1/1_m0_60960867'
r = requests.get(url=url,headers=headers)
with open('phpto.jpg', 'wb') as f:
    f.write(r.content)

运行即可保存 

三、POST请求

post请求用法与get请求大同小异

就不再赘述。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号