当前位置: 首页 > news >正文

武汉做网站便宜怎么注册自己的网址

武汉做网站便宜,怎么注册自己的网址,360可以做网站,郏县住房和城乡建设局网站Python 爬虫入门(七):requests 库的使用「详细介绍」 前言1. 初识 requests1.1 安装 requests 库1.2 发送 GET 请求1.3 发送 POST 请求 2. HTTP 请求详解2.1 请求方法2.2 请求头2.3 请求参数 3. 处理响应3.1 响应内容3.2 响应状态码3.3 响应头…

Python 爬虫入门(七):requests 库的使用「详细介绍」

  • 前言
  • 1. 初识 requests
    • 1.1 安装 requests 库
    • 1.2 发送 GET 请求
    • 1.3 发送 POST 请求
  • 2. HTTP 请求详解
    • 2.1 请求方法
    • 2.2 请求头
    • 2.3 请求参数
  • 3. 处理响应
    • 3.1 响应内容
    • 3.2 响应状态码
    • 3.3 响应头
  • 4. 会话保持
  • 5. SSL 证书验证
  • 6. 使用代理
  • 7. 文件上传与下载
    • 7.1 文件上传
    • 7.2 文件下载
  • 8. 处理复杂的网页
  • 9. 实战项目:抓取数据
    • 9.1 项目需求
    • 9.2 项目步骤
    • 9.3 示例代码
    • 总结

前言

  • 欢迎来到“Python 爬虫入门”系列的第七篇文章。本篇文章将详细介绍如何使用 requests 库进行网络请求,包括发送各种类型的 HTTP 请求、处理响应、会话保持、SSL 证书验证、代理设置、文件上传与下载等内容。

  • 在本篇文章的代码示例中,我将使用https://jsonplaceholder.typicode.com 网站的数据,这是一个提供假数据的免费 REST API 服务的网站。这个服务由 JSON Server 和 LowDB 支持,每月提供约30亿次请求。它被称为 “JSONPlaceholder”,常用于测试和原型设计。

  • requests 库是 Python 中最流行的 HTTP 库之一,因其简单易用和功能强大而广受欢迎。如果你是一个爬虫开发新手,本篇文章将帮助你全面掌握 requests库的用法,从而提升你的爬虫开发技能。

1. 初识 requests

1.1 安装 requests 库

首先,确保你已经安装了 requests 库。如果没有安装,可以使用以下命令安装:

pip install requests

1.2 发送 GET 请求

我们先从最基本的 GET 请求开始。

import requests# 发送 GET 请求
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code)  # 输出状态码
print(response.json())  # 输出响应内容

上面的代码向 https://jsonplaceholder.typicode.com/posts 发送了一个 GET 请求,并打印出响应的状态码和内容。
在这里插入图片描述

1.3 发送 POST 请求

接下来,我们来发送一个 POST 请求。

import requests# 发送 POST 请求
data = {'title': 'foo','body': 'bar','userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)  # 输出状态码
print(response.json())  # 输出响应内容

在这个例子中,我们向 https://jsonplaceholder.typicode.com/posts 发送了一个 POST 请求,并附带了一些数据。
在这里插入图片描述

2. HTTP 请求详解

2.1 请求方法

requests 库支持多种 HTTP 请求方法,包括 GET、POST、PUT、DELETE、HEAD、OPTIONS 等。

import requests# 发送 PUT 请求
data = {'id': 1,'title': 'foo','body': 'bar','userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)  # 输出状态码
print(response.json())  # 输出响应内容

发送 PUT 请求执行结果如下:
在这里插入图片描述

import requests# 发送 DELETE 请求
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)  # 输出状态码

发送 DELETE 请求执行结果如下:
在这里插入图片描述

2.2 请求头

有时候我们需要在请求中添加一些头信息,例如 User-Agent、Content-Type 等。

import requests# 添加请求头
headers = {'User-Agent': 'Mozilla/5.0','Content-Type': 'application/json'
}
response = requests.get('https://jsonplaceholder.typicode.com/posts', headers=headers)
print(response.status_code)  # 输出状态码
print(response.json())  # 输出响应内容

2.3 请求参数

我们可以通过 URL 参数来传递数据。

import requests# 添加请求参数
params = {'userId': 1
}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.status_code)  # 输出状态码
print(response.json())  # 输出响应内容

执行结果如下:
在这里插入图片描述

3. 处理响应

3.1 响应内容

响应内容可以是 JSON、文本、二进制数据等。

import requestsresponse = requests.get('https://jsonplaceholder.typicode.com/posts/1')# 获取响应内容
print(response.text)  # 以字符串形式输出
print(response.json())  # 以 JSON 形式输出
print(response.content)  # 以二进制形式输出

执行结果如下:
在这里插入图片描述

3.2 响应状态码

我们可以通过响应对象的 status_code 属性来获取状态码。
在这里插入图片描述

3.3 响应头

响应头包含了很多有用的信息,例如服务器类型、内容类型等。

import requestsresponse = requests.get('https://jsonplaceholder.typicode.com/posts/1')
print(response.headers)

执行结果如下:
在这里插入图片描述

4. 会话保持

使用 requests 库的会话对象可以在多个请求之间保持某些参数。

import requests# 创建会话对象
session = requests.Session()# 设置会话级别的请求头
session.headers.update({'User-Agent': 'Mozilla/5.0'})# 发送请求
response = session.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code)
print(response.json())

5. SSL 证书验证

requests 库默认会验证 SSL 证书。你可以通过 verify 参数来控制这一行为。

import requests# 禁用 SSL 证书验证
response = requests.get('https://jsonplaceholder.typicode.com/posts', verify=False)
print(response.status_code)

执行结果如下:
在这里插入图片描述

6. 使用代理

在爬虫开发中,使用代理可以帮助我们隐藏真实的 IP 地址。

import requestsproxies = {'http': 'http://10.10.10.10:8000','https': 'http://10.10.10.10:8000'
}response = requests.get('https://jsonplaceholder.typicode.com/posts', proxies=proxies)
print(response.status_code)

7. 文件上传与下载

7.1 文件上传

我们可以使用 requests 库轻松地上传文件。

import requests# 文件上传
files = {'file': open('example.txt', 'rb')}
response = requests.post('https://jsonplaceholder.typicode.com/posts', files=files)
print(response.status_code)
print(response.json())

7.2 文件下载

同样地,我们也可以下载文件。

import requestsresponse = requests.get('https://jsonplaceholder.typicode.com/photos/1', stream=True)
with open('photo.jpg', 'wb') as file:for chunk in response.iter_content(chunk_size=128):file.write(chunk)
print('文件下载完成')

8. 处理复杂的网页

对于一些复杂的网页,我们可能需要处理 JavaScript 动态加载的内容。这时可以结合 requestsBeautifulSoup 库来实现。

import requests
from bs4 import BeautifulSoupresponse = requests.get('https://jsonplaceholder.typicode.com/')
soup = BeautifulSoup(response.text, 'html.parser')# 提取标题
titles = soup.find_all('title')
for title in titles:print(title.text)

执行结果如下:
在这里插入图片描述

9. 实战项目:抓取数据

接下来,我们将结合前面所学的内容,编写一个完整的爬虫项目,从网站中抓取数据并保存到 CSV 文件中。

9.1 项目需求

  1. https://jsonplaceholder.typicode.com/posts 提取标题和链接。
  2. 将数据保存到 CSV 文件中。

9.2 项目步骤

  1. 发送请求并获取响应。
  2. 解析响应内容。
  3. 保存数据到 CSV 文件。

9.3 示例代码

import requests
import csvdef fetch(url):response = requests.get(url)if response.status_code == 200:data = []posts = response.json()for post in posts:title = post['title']link = f"https://jsonplaceholder.typicode.com/posts/{post['id']}"data.append([title, link])return dataelse:print('请求失败,状态码:', response.status_code)return []def save_to_csv(data, filename):with open(filename, 'w', newline='', encoding='utf-8') as file:writer = csv.writer(file)writer.writerow(['Title', 'Link'])writer.writerows(data)if __name__ == '__main__':url = 'https://jsonplaceholder.typicode.com/posts'data = fetch(url)if data:save_to_csv(data, 'datas.csv')print('数据已保存到 datas.csv')

总结

通过本篇文章的学习,相信小伙伴们已经掌握了 requests 库的基本用法,涵盖了发送各种请求、处理响应、会话保持、SSL 证书验证、代理设置、文件上传与下载等内容。

http://www.mnyf.cn/news/49552.html

相关文章:

  • 济南网站建设公司青岛seo推广专员
  • 高端品牌网站建设案例石家庄网站seo
  • 网站建设需要多长时间今日的最新消息
  • 公司做网站的费用怎么账务处理sem扫描电镜
  • 建平台网站普通话手抄报文字内容
  • 出国游做的好的网站seo网络优化专员是什么意思
  • 嘉祥网站建设免费发布软文广告推广平台
  • 百度网站 v怎么怎做百度收录入口提交
  • 响应式网站和普通网站不同东莞网站制作十年乐云seo
  • 做漫画网站精美软文句子
  • 受欢迎的徐州网站建设百度推广账户登录首页
  • 网站哪个公司做的好长尾关键词挖掘工具
  • 抖音属于b2c还是c2c优化网站的目的
  • 找人做网站需要注意什么搜狗搜索引擎推广
  • wordpress和discuz关联国外网站seo免费
  • 做网站的域名百度推广客户端下载
  • wordpress站群管理破解版做一个app软件大概要多少钱
  • 东丰在线网站建设网络营销客服主要做什么
  • 中国十大咨询管理公司广州网站营销优化qq
  • 网站空间2000m多少钱0元入驻的电商平台
  • 汽车网站模块朝阳网站seo
  • 西安南郊做网站湖南网站营销推广
  • 网站的组成部分网络平台推广运营有哪些平台
  • 网站推广服务网站连锁全国十大跨境电商公司排名
  • 三级网站域名下载旺道营销软件
  • 青岛网站建设推广信息网络公司百度网页版
  • 潍坊网站建设报价临沂森拓网络科技有限公司
  • 建设网站 (公司)百度app下载链接
  • 上海游戏公司排名优化公司怎么优化网站的
  • 资料库网站源码推广方案框架