编程语言
首页 > 编程语言> > 掌握 HTTP:使用 Requests 库进行 Web 抓取的 Python 之旅

掌握 HTTP:使用 Requests 库进行 Web 抓取的 Python 之旅

作者:互联网

介绍


HTTP,即超文本传输​​协议,是万维网上通信的支柱。它控制数据在 Web服务器和客户端之间的传输方式,促进信息的无缝交换。在我们日益数据驱动的世界中,网络抓取已成为一种从网站中提取有价值见解的强大技术。这就是Python 的 Requests 库发挥作用的地方 - 它就像一个值得信赖的助手,可以帮助我们轻松浏览复杂的HTTP并抓取数据。

了解 HTTP 协议


现在,让我们揭开HTTP协议的神秘面纱。将其想象为网络浏览器和托管网站的服务器之间使用的语言。我们将深入研究不同的 HTTP 方法,例如GET、POST、PUT 和 DELETE,每种方法在获取或操作数据方面都有独特的用途。另外,我们将解码这些神秘的HTTP 状态代码,并揭示标头在塑造客户端和服务器之间的信息流中的重要性。

当然!让我们分解每个术语:

客户端:在网络通信的上下文中,客户端是指从另一个计算机程序(称为服务器)请求服务或资源的设备或软件应用程序。客户端的常见示例包括 Web 浏览器(例如Chrome、Firefox 或 Safari)、移动应用程序或向服务器发送 HTTP 请求以检索数据或执行操作的任何程序。

服务器:服务器是一种计算机程序或设备,通过网络向其他计算机程序(称为客户端)提供服务或资源。在 Web 环境中,服务器通常指托管网站、Web 应用程序或Web 服务并响应来自客户端的 HTTP 请求的计算机程序。服务器存储和提供 Web 内容、处理用户请求并执行业务逻辑。

HTTP 状态代码:HTTP状态代码是标准化的三位数数字,指示客户端向服务器发出 HTTP 请求的结果。这些状态代码包含在服务器发送给客户端的响应中,提供有关请求是否成功、遇到错误或需要客户端采取进一步操作的信息。

下面简单解释一下一些常见的HTTP状态码:

200 OK:表示请求成功。

404 Not Found:表示在服务器上没有找到所请求的资源。

500 内部服务器错误:这表示服务器在处理请求时发生意外错误。

401 Unauthorized:表示请求需要认证或授权。

让我们使用 PIP 安装 requests 库:

第0步:在您的系统中下载python。

步骤 1:打开任意终端并运行以下命令:

pip install requests

Python 请求库入门

让我们看看发出 GET 请求有多么简单:

import requests

response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
print(response.text)

输出:

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

如果你想以 JSON 格式打印响应,可以使用库json()提供的方法requests。这是修改后的代码:

import requests

response = requests.get('https://jsonplaceholder.typicode.com/todos/1')

# Check if the request was successful (status code 200)
if response.status_code == 200:
    # Print the response in JSON format
    result_data = response.json()
    print(result_data.items())
else:
    # Print an error message if the request was unsuccessful
    print("Error:", response.status_code)

输出:

dict_items([('userId', 1), ('id', 1), ('title', 'delectus aut autem'), ('completed', False)])

requests以下是使用该库发送带有 JSON 数据的 POST 请求的等效 Python 代码:

import requests
import json

# Define the URL and payload (JSON data)
url = 'https://dummyjson.com/posts/add'
payload = {
    'title': 'I am in love with someone.',
    'userId': 5
    # Add other post data here if needed
}

# Set the headers
headers = {'Content-Type': 'application/json'}

# Send the POST request with JSON payload
response = requests.post(url, headers=headers, json=payload)

# Check if the request was successful (status code 200)
if response.status_code == 200:
    # Print the response in JSON format
    print(response.json())
else:
    # Print an error message if the request was unsuccessful
    print("Error:", response.status_code)

输出:

{'id': 151, 'title': 'I am in love with someone.', 'userId': 5}'id': 151, 'title': 'I am in love with someone.', 'userId': 5}

结论

因此,亲爱的读者,当我们的 Pythonic 之旅即将结束时,请记住——掌握 HTTP 和 Web 抓取的能力就在您的掌握之中。有了 Python 的 Requests 库,您就拥有了解锁大量信息和见解的工具。因此,继续前进,进一步探索,愿您的代码干净,您的咖啡浓郁,您的网络抓取冒险传奇!

标签:HTTP,Python,Requests
来源: