当前位置: 首页 > 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.parse

from 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-14

import 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.parse

from demo14_urllib import response

basic_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_queue

from 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()方法
# 参数放在请求对象定制的方法中

相关文章:

  • 基于Knative的无服务器引擎重构:实现毫秒级冷启动的云原生应用浪潮
  • 数据结构笔记之时间复杂度O(n)中的O是什么的缩写,为什么要用O这个字母?
  • 快速设置 Docker 网络代理配置
  • 手机ROM是什么
  • 网络安全|网络安全学习方法
  • 【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)
  • 自己动手实现一个简单的Linux AI Agent
  • 硬件学习笔记--40 电磁兼容试验-4 快速瞬变脉冲群试验介绍
  • 医院药品管理系统|基于SprinBoot+vue的医院药品管理系统(源码+数据库+文档)
  • CEF132 编译指南 Linux 篇 - Chromium 工具集:depot_tools 安装配置(四)
  • 金蝶云星空与钉钉高效数据集成案例分享
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue高校社团管理系统 【提供源码+答辩PPT+文档+项目部署】
  • 【06】泛型
  • OpenBLAS 在哪些深度学习框架中被使用
  • 【WPSOffice】汇总
  • 11.C语言 malloc() calloc() realloc()分配内存
  • 《全球网络安全政策法律发展研究报告 (2024) 》
  • 归并排序(C# C++)
  • 【分布式文件存储系统Minio】2024.12保姆级教程
  • LinkedList
  • 商务部:将打造一批国际消费集聚区和入境消费友好商圈
  • 商务部:入境消费增长潜力巨大,离境退税有助降低境外旅客购物成本
  • 一周观展|五一假期将到,特展大展陆续开幕
  • 价格周报|猪价继续回暖:二次育肥热度仍存,对猪价仍有一定支撑
  • 中方在IMF发声:美滥施关税威胁全球金融稳定,对新兴市场和发展中国家构成严峻挑战
  • 东北财大“一把手”调整:方红星任校党委书记,汪旭晖任校长