ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2024-03-30 19:33:33  阅读:329  来源: 互联网

标签:HTTP Python Requests


介绍


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
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有