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

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 quoteargs = 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 urlencodeargs = 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 urlencodeurl ='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.hqwc.cn/news/573192.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备考ICA----Istio实验10---为单个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验10—为单个主机配置 TLS Istio Ingress Gateway实验 1. 环境准备 部署httpbin kubectl apply -f istio/samples/httpbin/httpbin.yaml 2. 证书生成 2.1 生成根证书 生成根证书keyfile和crt文件 mkdir example_certs_root openssl req -x509 -sha256 …

SQL函数操作——1、数据统计(初级)

任务描述 本关任务: 使用 group by 语句结合聚集函数解决数据统计问题 ; 数据统计 一般的数据统计关系代数表达式如下: 其中L是属性集。含义是在属性集L上分组,分组后用函数fun运算 如 表示按性别sex的不同取值分组&#xff0…

六、保持长期高效的七个法则(二)Rules for Staying Productive Long-Term(2)

Rule #5 - If your work changes, your system should too. 准则五:如果你的工作变了,你的系统也应该改变。 For some, work will be consistent enough to not need major changes.You simply stick to the same system and you’ll get the results y…

Java 学习和实践笔记(48):怎样用二维数组来存储表格数据?

怎样用数组的方式,来存储下面这个表格的数据? 示例代码如下: import java.util.Arrays;public class Test001 {public static void main(String[] args) {/*object类对象是类层次结构的根。每个类都有Object作为超类。所有对象,包…

【面试】Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法? Elasticsearch是一个分布式搜索和分析引擎,它在Linux环境下的性能和稳定性可以通过一些优化方法进行提升。以下是一些针对Linux环境下Elasticsearch部署的优化方法: 1. 内…

Apache Hive的基本使用语法

一、数据库操作 创建数据库 create database if not exists myhive;查看数据库 use myhive; desc database myhive;创建数据库并指定hdfs存储 create database myhive2 location /myhive2;删除空数据库(如果有表会报错) drop database myhive;…

京西商城——商品相关接口开发

文章目录 接口开发django原生CBV开发商品分类菜单接口继承APIView开发商品类型分类接口通过序列化器开发商品详情接口 接口开发 django原生CBV开发商品分类菜单接口 先直接给出最终的views类,先简单的解释一下: 在基于CBV(基于类视图的&am…

Chrome之解决:插件不能使用问题(十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

软件部署资源计算工具:精确评估资源需求

软件部署资源计算工具:精确评估资源需求 在当今快速发展的信息技术时代,软件部署已成为企业运营不可或缺的一部分。然而,一个常见的挑战是如何精确评估软件部署所需的资源。资源评估不仅关系到软件的性能和稳定性,还直接影响到成…

解决kubesphere流水线docker登陆错误http: server gave HTTP response to HTTPS client

kubesphere DevOps流水线中,在登录私有的harbor仓库时,报以下错误 docker login 111.230.19.120:80 -u admin -p test123. WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://…

4S店车辆管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. 管…

neo4j相同查询语句一次查询特慢再次查询比较快。

现象&#xff1a; neo4j相同查询语句一次查询特慢再次查询比较快。 分析&#xff1a; 查询语句 //查询同名方法match(path:Method) where id(path) in [244333030] and NOT path:Constructor//是rpc的方法match(rpc_method:Method)<-[:DECLARES]-(rpc_method_cls:Class) -…