【爬虫基础】第4讲 GET与POST请求

news2024/9/30 19:33:25

GET请求

GET请求是一种HTTP方法,用于向服务器获取(或读取)数据。它是Web开发中最常用的请求方式之一。对于GET请求,客户端向服务器发送一个HTTP请求,服务器返回请求的资源。GET请求通常用于获取静态资源,比如HTML页面、图片、CSS文件等。GET请求可以通过URL参数传递数据,参数会附加在URL的末尾,例如:https://www.example.com/search?q=keyword

GET请求的特点是安全性较低,因为请求的参数是直接暴露在URL中,容易被拦截和篡改。因此,GET请求不适合传输敏感数据,如密码等。

方式一:使用quoto方法

from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import quote

args = input('请输入要搜索的内容:')
ua = UserAgent()
url = f'https://www.baidu.com/s?wd={quote(args)}'
headers = {
    'User-Agent':ua.chrome
}
req = Request(url,headers=headers)
resp = urlopen(req)
print(resp.read().decode())

方式二:使用urlencode方法

from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import urlencode

args = input('请输入要搜索的内容:')
parms = {
    'wd':args,

}
ua = UserAgent()
url = f'http://www.baidu.com/s?{urlencode(parms)}'

headers = {
    'User-Agent':ua.chrome
}

req = Request(url,headers=headers)
resp = urlopen(req)
print(resp.read().decode())

案例:

使用get请求抓取某同城的二手车数据

from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import quote
args = input('请输入品牌,使用中文全拼格式:')

url =f'https://wz.58.com/{quote(args)}/'
headers = {
    'User-Agent':UserAgent().chrome
}
req = Request(url,headers=headers)
resp = urlopen(req)

print(resp.read().decode())

执行结果:

POST请求

POST请求是一种HTTP请求方法,用于向服务器提交数据。与GET请求不同,POST请求的数据不会附加在URL中,而是作为请求的body部分进行发送。POST请求常用于向服务器提交表单数据、上传文件等操作。

from urllib.request import Request,urlopen
from fake_useragent import UserAgent
from urllib.parse import urlencode

url ='https://cn.bing.com/search'
headers ={
    'User-Agent':UserAgent().chrome
}
keyword = input('请输入查询的内容:')
args ={
    'q':f'{keyword}'
}

f_data=urlencode(args)
req = Request(url,headers=headers,data=f_data.encode())
resp = urlopen(req)
print(resp.read().decode())

POST请求的body部分是一个JSON字符串{"username": "john", "password": "password123"},用于向服务器传递用户名和密码。需要注意的是,POST请求的body部分的格式可以根据实际需要而定,可以是JSON、XML、表单数据等格式。通过POST请求,客户端可以向服务器发送数据并获取服务器的响应。服务器可以根据POST请求中包含的数据进行相应的处理,并返回相应的数据给客户端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1550108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全:Kali Linux 进行SQL注入与XSS漏洞利用

目录 一、实验 1.环境 2.Kali Linux 进行SQL注入 3.Kali Linux 进行XSS漏洞利用 二、问题 1.XSS分类 2.如何修改beef-xss的密码 3.beef-xss 服务如何管理 4.运行beef报错 5.beef 命令的颜色有哪些区别 6.owasp-top-10 有哪些变化 一、实验 1.环境 (1&a…

【Vue】可拖拽侧边栏实现

在本篇博客中,我们将探讨如何在 Vue.js 项目中实现一个可拖拽的侧边栏。此功能可以通过修改 HTML 和 Vue 组件的脚本来实现。 首先,我们需要在 HTML 文件中定义侧边栏的容器和用于拖拽的元素。在 Vue 组件中,我们将使用 Vue 的响应式系统来追…

Flink SQL 基于Update流出现空值无法过滤问题

问题背景 问题描述 基于Flink-CDC ,Flink SQL的实时计算作业在运行一段时间后,突然发现插入数据库的计算结果发生部分主键属性发生失败,导致后续计算结果无法插入, 超过失败次数失败的情况问题报错 Caused by: java.sql.BatchUp…

计算机网络——28自治系统内部的路由选择

自治系统内部的路由选择 RIP 在1982年发布的BSD-UNIX中实现Distance vector算法 距离矢量:每条链路cost 1,# of hops(max 15 hops)跳数DV每隔30秒和邻居交换DV,通告每个通告包括:最多25个目标子网 RIP通告 DV:在…

虚机无法进入系统一直轮转在内核启动页面处理

【问题现象】 在日常处理虚机过程中会出现,虚机无法进入系统,一直轮转在内核启动页面的情况 【处理办法】 【步骤一】登录原先内核系统,设置默认新内核启动 【步骤二】进入系统后设置 # grubby --set-default /boot/vmlinuz-3.10.0-957.ax…

2023自适应霍夫曼编码High-performance RDHEI with adaptive Huffman code

RRBE 本文仅供自我学习使用,切勿转载和搬运,如有侵权,联系立删~ 方法总框架 首先由内容所有者生成原始图像像素点的标签映射; 然后数据隐藏者采用自适应霍夫曼编码将多个信息插入加密图像像素点;接收端进行数据提取和图像恢复。在数据提取之前,必须对标记的加密图像进行…

Digital Image processing (DIP)

Camera FOV: Filed of view DOV: deep of view 景深 被F f/D 衡量,f 是焦距,D 是光圈大小。 当确定好了景深后,如何光线较暗,则需要补光,或者适当延长曝光时间(快门) 分辨率、像素尺寸&…

qt-C++笔记之QSpinBox控件

qt-C笔记之QSpinBox控件 code review! 文章目录 qt-C笔记之QSpinBox控件1.运行2.main.cpp3.main.pro4.《Qt6 C开发指南》&#xff1a;4.4 QSpinBox 和QDoubleSpinBox 1.运行 2.main.cpp #include <QApplication> #include <QSpinBox> #include <QPushButton&g…

Hides for Mac:应用程序隐藏工具

Hides for Mac是一款功能强大的应用程序隐藏工具&#xff0c;专为Mac用户设计。它能够帮助用户快速隐藏当前正在运行的应用程序窗口&#xff0c;保护用户的隐私和工作内容&#xff0c;避免不必要的干扰。 软件下载&#xff1a;Hides for Mac下载 Hides for Mac的使用非常简单直…

2024年springboot+vue毕业设计选题推荐

2024年&#xff0c;随着技术的发展和市场需求的变化&#xff0c;基于Spring Boot和Vue的毕业设计选题可以更加注重新兴技术的融合和解决实际问题。以下是一些建议的选题方向&#xff1a; 1. 基于Spring Boot和Vue的智能健康管理系统 - 设计并实现一个集成了运动数据、睡眠监…

chrome 浏览器报错 This page will not function without javascript enabled

This page will not function without javascript enabled. Please enable javascript on your browser. 在访问公司spark history 页面时&#xff0c;发现页面加载不全&#xff0c;并提示如上报错&#xff0c;因此按照如下步骤&#xff0c;已解决问题。 在浏览器中启用 JavaS…

【ML】类神经网络训练不起来怎么办 5

【ML】类神经网络训练不起来怎么办 5 1. Saddle Point V.S. Local Minima(局部最小值 与 鞍点)2. Tips for training: Batch and Momentum(批次与 动量)2.1 Tips for training: Batch and Momentum2.2 参考文献:2.3 Gradient Descent2.4 Concluding Remarks(前面三讲)3.…

国际伦敦金行情分析中的趋势分析方法

国际伦敦金行情走势复杂多变。近期&#xff0c;金价曾经一度刷新历史的新高点至2222&#xff0c;但就在当天&#xff0c;金价又快速下跌跌超过30美元。不过这么多变的伦敦金行情也为我们的交易创造了空间&#xff0c;有空间就等于有机会&#xff0c;只要我们能够掌握国际伦敦金…

自然语言处理3(NLP)—— 机器学习

1. 自然语言处理在机器学习领域的主要任务 自然语言处理&#xff08;NLP&#xff09;在机器学习领域中扮演着至关重要的角色&#xff0c;旨在使计算机能够理解、解释和生成人类语言。以下是NLP在机器学习领域中的主要任务及其分类方法&#xff1a; 1.1 按照功能类型分类 1.1.…

http模块 url对象的主要属性

在 Node.js 中&#xff0c;URL 对象是一个内置类&#xff0c;用于解析和操作 URL 字符串。URL 对象具有多个属性&#xff0c;这些属性提供了对 URL 不同部分的访问。以下是URL对象的一些主要属性及其含义&#xff1a; &#xff08;1&#xff09;href 返回完整的 URL 字符串。…

鸿蒙OS开发问题:(ArkTS)【 RSA加解密,解决中文乱码等现象】

RSA加解密开始构建工具类就是举步维艰&#xff0c;官方文档虽然很全&#xff0c;但是还是有很多小瑕疵&#xff0c;在自己经过几天的时间&#xff0c;彻底解决了中文乱码的问题、分段加密的问题。 首先看官方示例代码(以RSA非对称加解密&#xff08;多次调用doFinal实现分段&a…

【前端】layui学习笔记

参考视频&#xff1a;LayUI 1.介绍 官网&#xff1a;http://layui.apixx.net/index.html 国人16年开发的框架,拿来即用,门槛低 … 2. LayUi的安装及使用 Layui 是一套开源的 Web UI 组件库&#xff0c;采用自身轻量级模块化规范&#xff0c;遵循原生态的 HTML/CSS/JavaScript…

AssertionError: extension access disabled because of command line flags解决方案

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本文介绍在 Stable Diffusion WebUI 中安装插件时出现 AssertionError: extension access disabled because of comma…

【前端面试3+1】03深拷贝浅拷贝、let和var、css盒模型、【有效括号】

一、深拷贝浅拷贝 深拷贝和浅拷贝都是用于复制对象或数组的概念&#xff0c;但它们之间有着重要的区别&#xff1a; 1. 浅拷贝&#xff1a; 浅拷贝是指在拷贝对象或数组时&#xff0c;只会复制一层对象的属性或元素&#xff0c;而不会递归地复制嵌套的对象或数组。因此&#xf…

POJ3037 + HDU-6714

两道最短路好题 POJ3037 手玩一下 发现每一点的速度可以直接搞出来&#xff0c;就是pow(2,h[1][1]-h[i][j])*V 那么从这个点出发到达别的点的耗费的时间都是上面这个数的倒数&#xff0c;然后直接跑最短路就好了 #include<iostream> #include<vector> #include<…