打卡学习Python爬虫第二天|Requests的使用

一、什么是requests库?

requests库是一个非常流行和强大的HTTP库,它用于在Python中发送HTTP请求。这个库的主要特点是其简洁和易于使用的API,使得发送网络请求和获取响应变得非常简单。

以下是requests库的一些关键特点和使用方法:

  1. 发送HTTP请求requests库允许你发送各种类型的HTTP请求,如GET、POST、PUT、DELETE等。例如,发送一个GET请求只需要一行代码:

    import requests
    response = requests.get('http://example.com')
    
  2. 处理响应:每次发送请求后,requests会返回一个response对象,这个对象包含了响应的所有信息,如状态码、响应头、响应内容等。你可以通过以下方式获取这些信息:

    print(response.status_code)  # 获取响应状态码
    print(response.headers)      # 获取响应头
    print(response.text)         # 获取响应内容

二、安装requests库

文件-->设置-->Python解析器 点击+号搜索下载:

也可以在PyCharm的终端输入pip install requests下载:

 如果下载太慢是应为用的是国外的源,我们可以修改为国内的:

  1. 网易开源镜像:提供了多种开源软件的镜像,网址是 http://mirrors.163.com/。
  2. 清华大学开源软件镜像站:为用户提供高质量的开源软件镜像,网址是 https://mirrors.tuna.tsinghua.edu.cn/。
  3. 中国科学技术大学(USTC)镜像源:提供多种开源软件镜像,网址是 https://mirrors.ustc.edu.cn/。
  4. 东软信息学院镜像站:提供了一些软件镜像,网址是 http://mirrors.neusoft.edu.cn/。
  5. 阿里云镜像:为开发者提供Linux镜像下载服务,网址是 https://developer.aliyun.com/mirror/。

 推荐设置为默认:

python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

三、实操案例

1、找到想要的url

百度搜索科比,并去除科比后面的字符:

2、使用get获取 
import requests

url="https://www.baidu.com/s?wd=科比"

# 位于浏览器地址栏的url使用get获取
response=requests.get(url)
print(response)

 使用.text获取网页源码:发现并没有获取到源码

 在网页点击右键-->检查找到请求头中的User-Agent:

将User-Agent负值并在代码中添加: 

import requests

url="https://www.baidu.com/s?wd=科比"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"
}
response=requests.get(url,headers=headers)

print(response.text)  # 获取网页源码

成功得到网页源代码:

 3、使用post案例

百度翻译中我们输入一个单词时会出现一些复选项:

鼠标右键-->检查或者F12找到该数据:

可以在标头看到请求的url和请求方式: 

代码:

 import requests

 url = "https://fanyi.baidu.com/sug"
 str = input("请输入要翻译的内容:")

 # 自己的User-Agent,可以在响应标头中看到
 headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 
 like Gecko) Chrome/89.0.4389.90 Safari/537.36"
 }
 # 传入一个需要翻译的单词
 data = {
    "kw": str
 }

 response = requests.post(url, data=data, headers=headers)

 # print(response.text)  会有中文乱码
 print(response.json())

注意为什么写: 

data = {
    "kw": str
 } 

来自于负载的表单数据:

 

成功获取该内容! 

四、 爬取豆瓣喜剧电影数据

1、点击网络找到数据

2、点击标头获取url
3、按需编写程序
import requests

# 请求url  https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20
# 与https://movie.douban.com/j/chart/top_list+拼接参数params的效果相同
url = "https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
}
params = {
    "type": "24",
    "interval_id": "100:90",
    "action": "",
    "start": "0",
    "limit": "20"
}
response = requests.get(url=url, headers=headers, params=params)
print(response.text)

 注意:params中的内容是来源于url的?号后面的参数,同时这些参数也可以在负载中找到,当我们网络滑动页面时,参数会发生改变。

出现新的数据,且参数start发生变化: 

抓取0-19的20条: 

抓取20-39的20条:只需要将start:0改为start:20:

 也可以使用输出成更为规范的json数据:将.text改为.json()

4、保存为json文件

添加代码:

with open("doubanxiju.json", "w", encoding="utf-8") as fp:
    fp.write(response.text)
print("over")

 成功获取数据并保存!

 

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你好皮~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值