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

尚硅谷爬虫note005

一、编解码

1.get请求的quote方法

        将汉字转为Unicode字符

# _*_ coding : utf-8 _*_
# @Time : 2025/2/12 16:33
# @Author : 20250206-里奥
# @File : demo19_get请求的quote方法
# @Project : PythonProject10-14# 景甜page
# https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E6%99%AF%E7%94%9C#13用
# User-Agent# Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0#导入request
import urllib.request
from wsgiref.util import request_uri
#导入urllib.parse
import urllib.parsefrom demo14_urllib import response#2.字典:将网页源代码伪装成浏览器
headers ={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"
}
# 1.获取网页源码
url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="#6.将汉字变成Unicode编码格式
#需要依赖于urllib下的parse,将景甜两个汉字转为编码格式
name = urllib.parse.quote('景甜')
#7.此时的url = url + name
url = url + name
print(url)
# print(name)# #3.模拟浏览器向服务器发送请求
# #3-2.urlopen中不允许传递字典形式的数据
# #4.请求对象的定制,需要指定关键字传参(参数顺序原因)
# request = urllib.request.Request(url = url,headers=headers)
# response = urllib.request.urlopen(request)
# #5.获取响应内容
# content = response.read().decode("utf-8")
# print(response)

2.get请求的urlencode方法

# _*_ coding : utf-8 _*_
# @Time : 2025/2/13 08:53
# @Author : 20250206-里奥
# @File : demo20_url的encode方法
# @Project : PythonProject10-14import urllib.parse#
# url = "https://www.baidu.com/s?wd=景甜&sex=女"# # url的encode方法,参数以字典方式存在
# data = {
#     "wd":"景甜",
#     "sex":"女"
#  }
#
#  #将urlencode传递进去
# a = urllib.parse.urlencode(data)
# print(a)
# 导入
import urllib.request
import urllib.parsefrom demo14_urllib import responsebasic_url =  "https://www.baidu.com/s?"data = {"wd":"景甜","sex":"女"}new_data = urllib.parse.urlencode(data)print(new_data)
# 请求资源路径
url = basic_url + new_data
# User-Agent
# 	Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0
headers ={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"
}
# 请求对象的定制
request = urllib.request.Request(url = url,headers=headers)
#模拟浏览器向浏览器发送请求
response = urllib.request.urlopen(request)# 获取网页源码
content = response.read().decode("utf-8")
#打印数据
print(content)

3. post请求方式

# _*_ coding : utf-8 _*_
# @Time : 2025/2/13 10:27
# @Author : 20250206-里奥
# @File : demo21_get的post请求方法
# @Project : PythonProject10-14# 导入
import urllib.request
import urllib.parse
from idlelib.rpc import response_queuefrom demo17_qingqiuduixaingdedingzhi import request, content# post请求url = "https://fanyi.baidu.com/sug"# 请求头
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36"
}
# 参数
data = {"kw":"hello"
}
#post请求的参数,必须进行编码
#该data是字符串类型,需要进行编码
# data = urllib.parse.urlencode(data)#data请求的参数,必须进行编码
data = urllib.parse.urlencode(data).encode("utf-8")#post请求的参数不会拼接在url后面,需要放在请求对象的定制中
request = urllib.request.Request(url = url, data=data, headers=headers)# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(request)# 获取数据
content = response.read().decode("utf-8")
#打印数据
print(content)
# print(type(content))# 将字符串类型转为json对象
import json
obj = json.loads(content)
print(obj)#psot请求特点
# post请求方式参数,必须编码
# 编码之后,必须调用encode()方法
# 参数放在请求对象定制的方法中

相关文章:

尚硅谷爬虫note005

一、编解码 1.get请求的quote方法 将汉字转为Unicode字符 # _*_ coding : utf-8 _*_ # Time : 2025/2/12 16:33 # Author : 20250206-里奥 # File : demo19_get请求的quote方法 # Project : PythonProject10-14# 景甜page # https://www.baidu.com/s?ieutf-8&f8&rsv…...

xml 和json互转工具

工具1 有个问题会导致springboot返回捕获的异常编程xml格式 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.json.JSONObject; import org.json.XML; import org.w3c.dom.Document;import javax.xm…...

ElementUI 抽屉组件高度封装

在前端开发中,ElementUI 的el-drawer组件虽实用,但为满足复杂业务需求,如统一样式、特定交互和灵活使用,常需二次封装。下面将带你实现一个高度封装的 ElementUI 抽屉组件。 创建基础封装组件 创建MyDrawer.vue,引入e…...

深入解析:如何在C#和C/C++之间安全高效地通过P/Invoke传递多维数组

在工业控制、机器人编程和物联网等领域,我们经常需要让C#这样的托管语言与C/C编写的底层库进行交互。在这个过程中,遇到需要传递多维数组的场景时,许多开发者会意外遭遇System.Runtime.InteropServices.MarshalDirectiveException异常。本文将…...

轻量级在线ETL数据集成工具架构设计与技术实现深度剖析

在当今数字化时代,企业面临着海量异构数据的整合挑战。ETL(Extract, Transform, Load)工具作为数据集成的核心,负责将分散在不同数据源中的数据进行抽取、转换和加载,以构建统一的数据视图。本文将深入剖析一款基于诺依框架开发的在线ETL数据集成工具,重点阐述其架构设计…...

二、k8s项目的生命周期

项目的生命周期 创建-----------》发布-----------》更新--------》回滚----------》删除 kubectl create deployment nginx1 --imagenginx:1.22 --replicas3 基于deployment控制器创建pod 控制器的名称是nginx1 pod使用的镜像:nginx:1.22 --replicas3 pod的数量有多少 3个…...

GPT 系列模型发展史:从 GPT 到 ChatGPT 的演进与技术细节

从 GPT 到 ChatGPT,OpenAI 用短短几年时间,彻底改变了自然语言处理(NLP)的格局。让我们一起回顾这段激动人心的技术演进史!🚀 🔹 GPT(2018): 划时代的起点&a…...

C#语言的云计算

C#语言在云计算中的应用 引言 随着信息技术的飞速发展,云计算已经成为了现代计算架构的重要组成部分。传统的本地计算方式逐渐被云计算所取代,使得企业与开发者能够更高效地处理数据、部署应用程序以及进行资源管理。在众多编程语言中,C#以…...

金仓数据库-KingbaseES-学习-01-单机部署(非图形化安装)

目录 一、环境信息 二、介绍 三、下载地址 四、安装步骤 1、配置内核参数 (1)文件系统相关 (2)共享内存与信号量(IPC) (3)网络与端口配置 (4)关键场…...

海外服务器都有什么作用?

海外服务器具体就是指部署在中国大陆以外地区的服务器,企业选择租用海外服务器能够显著提高不同国家和地区用户的访问速度,当网站的服务器部署在目标用户所在地附近时,数据信息所传输的距离就会缩短,大大降低了网络访问的延迟度&a…...

git bash在github的库中上传或更新本地文件

一、将本地文件上传到 GitHub 仓库 1. 创建 GitHub 仓库 如果你还没有在 GitHub 上创建仓库,首先需要创建一个新的仓库: 登录到 GitHub。点击右上角的 按钮,选择 New repository。给你的仓库起个名字,并选择 Public 或 Privat…...

vue2中 computed 计算属性

文章目录 vue2中 computed 计算属性1. 什么是计算属性?2. 基本用法1. 定义计算属性2. 计算属性的缓存特性 3. 计算属性的高级用法1. 计算属性的 Getter 和 Setter 方法2. 计算属性的依赖追踪 4. 计算属性与方法的区别5. 实际应用案例1. 格式化数据2. 计算总价3. 动态…...

自定义基座实时采集uniapp日志

自定义基座实时采集uniapp日志 打测试包给远端现场(测试/客户)实际测试时也能实时看到日志了,也有代码行数显示。 流程设计 #mermaid-svg-1I5W9r1DU4xUsaTF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…...

基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 系统建模 4.2 YALMIP工具箱 4.3 CPLEX工具箱 5.完整工程文件 1.课题概述 基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真。通过YALMIP和cplex这两个工具箱,完成微电网的最优调…...

Effective Objective-C 2.0 读书笔记——内存管理(上)

Effective Objective-C 2.0 读书笔记——内存管理(上) 文章目录 Effective Objective-C 2.0 读书笔记——内存管理(上)引用计数属性存取方法中的内存管理autorelease保留环 ARCARC必须遵循的方法命名原则ARC 的自动优化&#xff1…...

蓝桥杯-洛谷刷题-day5(C++)(为未完成)

1.P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 i.题目 ii.代码 #include <iostream> #include <string> using namespace std;int N, Na, Nb; //0-"剪刀", 1-"石头", 2-"布", 3-"蜥", 4-"斯"&#xff1…...

conda 修复 libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found 简便方法

ImportError: /data/home/hum/anaconda3/envs/ipc/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/hum/anaconda3/envs/ipc/lib/python3.11/site-packages/paddle/base/libpaddle.so) 1. 检查版本 strings /data/home/hum/anaconda3/envs/ipc/…...

数据结构之队列,哈希表

一 队列(先进先出) 1.定义&#xff1a;从一端进行数据插入&#xff0c;另一端进行删除的线性存储结构 队列类型 常见操作 - 入队&#xff08;Enqueue&#xff09;&#xff1a;将新元素添加到队列的尾部。若队列有空间&#xff0c;新元素会成为队列的新尾部元素&#xff1b;若…...

讯方·智汇云校华为授权培训机构的介绍

官方授权 华为授权培训服务伙伴&#xff08;Huawei Authorized Learning Partner&#xff0c;简称HALP&#xff09;是获得华为授权&#xff0c;面向公众&#xff08;主要为华为企业业务的伙伴/客户&#xff09;提供与华为产品和技术相关的培训服务&#xff0c;培养华为产业链所…...

【16届蓝桥杯寒假刷题营】第1期DAY4

1.披萨和西蓝花 - 蓝桥云课 1. 披萨和西蓝花 问题描述 在接下来的 N 天里&#xff08;编号从 1 到 N&#xff09;&#xff0c;坤坤计划烹饪披萨或西兰花。他写下一个长度为 N 的字符串 A&#xff0c;对于每个有效的 i&#xff0c;如果字符 Ai 是 1&#xff0c;那么他将在第 i…...

线性码电路优化:从理论到硬件实现

1. 线性码与电路合成基础线性码在数字通信和存储系统中扮演着至关重要的角色&#xff0c;它通过在原始数据中添加冗余信息来实现错误检测和纠正。这种编码方式的核心数学原理基于有限域上的线性代数运算&#xff0c;使得编码和解码过程可以通过高效的矩阵运算实现。在硬件实现层…...

如何用python函数制作一个计算工具

大家好&#xff0c;这里是junlang的python文章 今天教大家如何用python函数做一个计算器&#xff0c;希望大家好好学习哦 如何制作 首先我们先定义4个函数&#xff0c;其中除法计算代码请看下面: def add (a,b,c):return (a b - c) def sub (x,y):return(x - y) def mulpl…...

Mermaid Live Editor终极指南:3分钟掌握免费在线图表编辑神器

Mermaid Live Editor终极指南&#xff1a;3分钟掌握免费在线图表编辑神器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live…...

ThunderAI:用大语言模型插件打造智能邮件工作流

1. 项目概述&#xff1a;当AI助手遇见邮件客户端 如果你和我一样&#xff0c;每天要在Thunderbird里处理几十甚至上百封邮件&#xff0c;那你肯定也经历过那种“邮件疲劳”——写回复时词穷、面对长篇大论需要快速提炼要点、或者想给邮件分个类却懒得手动打标签。传统的邮件客…...

2026年,想要靠谱美缝团队?看完这篇你就知道选哪家!

在高端住宅、别墅装修中&#xff0c;美缝是彰显整体质感的关键环节。选对美缝团队&#xff0c;不仅能提升家居美观度&#xff0c;还能确保美缝效果长效耐用。2026年&#xff0c;如果你正在寻找靠谱的美缝团队&#xff0c;不妨看看长沙匠心徐师傅美缝团队&#xff0c;以下将为你…...

终极指南:八大网盘直链下载助手完整使用教程,告别限速烦恼

终极指南&#xff1a;八大网盘直链下载助手完整使用教程&#xff0c;告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国…...

Ruby 变量

Ruby 变量 引言 在编程语言中,变量是存储数据的基本单元。Ruby 作为一种动态、面向对象的语言,同样依赖变量来存储和处理数据。本文将详细介绍 Ruby 中的变量类型、作用域、生命周期以及相关操作,帮助读者全面了解 Ruby 变量的使用。 变量类型 Ruby 中的变量类型主要分为…...

ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本更安静高效 [特殊字符]

ThinkPad风扇控制终极指南&#xff1a;TPFanCtrl2让你的笔记本更安静高效 &#x1f680; 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 作为ThinkPad用户&#xff0c;…...

别再让扰动拖后腿!手把手教你用MATLAB/Simulink实现非线性系统的干扰观测器(附完整代码)

非线性系统扰动观测器实战&#xff1a;从理论到MATLAB代码的完整实现指南 在控制工程实践中&#xff0c;非线性系统的干扰抑制一直是工程师面临的棘手挑战。想象一下&#xff0c;你正在调试一台工业机械臂&#xff0c;理论模型完美无缺&#xff0c;但实际运行时总是出现无法解…...

【管理科学】【财务领域】第四十九篇 企业资本通过金融工具获取资本与通过制造舆论冲突吸引注意力01

企业资本运作与注意力经济融合模型分析 本模型旨在揭示企业如何将金融资本杠杆与注意力经济策略相结合,以实现资本扩张与用户习惯的深度绑定。 编号 类型 企业资本注意力经济和长期购买/消费习惯培养模型 逐步推理思考的方程式 时序数学方程式 交互周期和交互流程的数学…...