尚硅谷爬虫note004

一、urllib库

1. python自带,无需安装

# _*_ coding : utf-8 _*_
# @Time : 2025/2/11 09:39
# @Author : 20250206-里奥
# @File : demo14_urllib
# @Project : PythonProject10-14

#导入urllib.request
import  urllib.request

#使用urllib获取百度首页源码
#1.定义一个url:需要访问的地址
url = "http://www.baidu.com"
#2.模拟浏览器向服务器发送请求
#3.导入urllib.request
response = urllib.request.urlopen(url)

#4.获取响应中的页面源码
#read()方法返回的是字节形式的二进制内容
# content = response.read()

# 解码: 将二进制数据转成字符串
#decode方法
content = response.read().decode("utf-8")


#5.打印数据
print(content)

2. 1个类型,6个方法

2-1)1个类型

response = urllib.request.urlopen(url)

#1个类型和6个方法
# print(type(response))

HTTPResponse类型

  

      

2-2)6个方法

2-2-1)read()

#一个字节一个字节的读取
content = response.read()
print(content)
#返回多少个字节。(5)——5个
content = response.read(5)
print(content)

 2-2-2)readline()

#读取一行
content = response.readline()

print(content)

  2-2-3)readlines()

#读取多行
content = response.readlines()

print(content)

2-2-4)response.getcode()

# 获取状态码
print(response.getcode())

2-2-5)response.geturl()

# 返回url地址
print(response.geturl())

2-2-6)response.getheaders()

#获取状态信息3
print(response.getheaders())

二、 url下载

1. 下载网页(xx.html)

#1. 下载网页
url_page = "http://www.baidu.com"
#url:下载的路径 ,filename:下载的文件名
urllib.request.urlretrieve(url_page,"baidu.html")

2. 下载图片(xx.jpg)

# 2. 下载图片
url_img = "https://img2.baidu.com/it/u=872152568,3550679156&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=667"
urllib.request.urlretrieve(url = url_img,filename="meiduan.jpg")

3. 下载视频(xx.mp4)


# 下载视频
url_video = "https://f.video.weibocdn.com/o0/vsYwMHCVlx08lDCdVqAE01041200QVNm0E010.mp4?label=mp4_720p&template=1278x720.25.0&media_id=5129605300813840&tp=8x8A3El:YTkl0eM8&us=0&ori=1&bf=4&ot=h&ps=3lckmu&uid=3ZoTIp&ab=,15568-g4,8012-g2,8013-g0,3601-g36,3601-g36,3601-g37,3601-g37&Expires=1739332655&ssig=pMM%2F7nCPyN&KID=unistore,video"

urllib.request.urlretrieve(url = url_video,filename="jingtian.mp4")

三、请求对象的定制

1. user-agent(U-A反扒)

# _*_ coding : utf-8 _*_
# @Time : 2025/2/12 11:11
# @Author : 20250206-里奥
# @File : demo17_qingqiuduixaingdedingzhi
# @Project : PythonProject10-14
import urllib.request

#字典--headers
headers = {
"User-Agent":
	"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"
}

url = "https://www.baidu.com"

# urlopen()方法中不能存储字典,所以headers不能传递进去。——》请求对象定制
# 因为参数顺序的问题,不能直接写url和headers,中间还有一个data,所以需要关键字传参
request = urllib.request.Request(url = url,headers = headers)

response = urllib.request.urlopen(request)
content = response.read().decode("utf-8")

print(content)
#url的组成:大致6部分: 1.协议; 2.主机; 3.端口号; 4.路径; 5. 参数; 6.锚点...

 # 因为参数顺序的问题,不能直接写url和headers,中间还有一个data,所以需要关键字传参

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在nodejs中使用RabbitMQ(三)Routing、Topics、Headers

示例一、Routing exchange类型direct,根据消息的routekey将消息直接转发到指定队列。producer.ts 生产者主要发送消息,consumer.ts负责接收消息,同时也都可以创建exchange交换机,创建队列,为队列绑定exchange&#xff…

DeepSeek大模型一键部署解决方案:全平台多机分布式推理与国产硬件优化异构计算私有部署

DeepSeek R1 走红后,私有部署需求也随之增长,各种私有部署教程层出不穷。大部分教程只是简单地使用 Ollama、LM Studio 单机运行量化蒸馏模型,无法满足复杂场景需求。一些操作配置也过于繁琐,有的需要手动下载并合并分片模型文件&…

【腾讯地图】录入经纬度功能 - 支持地图选点

目录 效果展示代码引入地图服务地址弹框中输入框 - 支持手动输入经纬度/地图选点按钮地图选点弹框组件 当前文章 - 地图功能与 https://blog.csdn.net/m0_53562074/article/details/143677335 功能类似 效果展示 代码 引入地图服务地址 public/index.html <!-- 互联网地图…

机器学习 - 大数定律、可能近似正确学习理论

一、大数定律&#xff1a; 大数定律是概率论中的一个基本定理&#xff0c;其核心思想是&#xff1a;当独立重复的随机试验次数足够大时&#xff0c;样本的平均值会趋近于该随机变量的期望值。下面从直观和数学两个角度来说明这一概念&#xff1a; 1. 直观理解 重复试验的稳定…

算法很美笔记(Java)——树(知识点)

性质 树 上面的性质因为两个结点由一条边连成 结点数目越多&#xff0c;算法复杂度越高 二叉树 结构 层次遍历&#xff08;bfs&#xff09; 利用队列&#xff0c;弹一个&#xff0c;加N个&#xff08;队列里弹出一个元素&#xff0c;就把这个元素的所有孩子加进去&#xff…

Mediamtx+Python读取webrtc流

一、功能思路&#xff1a; 1、我采用ffmpeg -re -stream_loop -1 -i xcc.mp4 -c:v libx264 -profile:v baseline -x264opts "bframes0:repeat_headers1" -b:v 1500k -preset fast -f flv rtmp://127.0.0.1:1835/stream/111推流到mediamtx的rtmp上 2、通过mediamtx自…

数据库第三次作业

第一题&#xff1a; 学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept) 学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键 课程表&#xff1a;Course (Cno, Cname,) 课程号&#xff0c;课程名 Cno为主键 学生选课表&#xff1a;S…

「软件设计模式」单例模式

深入解析单例模式&#xff1a;从思想到C实战实现 一、设计模式与单例模式思想 1.1 设计模式的价值 设计模式是软件工程领域的经验结晶&#xff0c;如同建筑领域的经典蓝图。它们提供了经过验证的解决方案模板&#xff0c;能有效解决以下问题&#xff1a; 提高代码复用性提升…

python后端调用Deep Seek API

python后端调用Deep Seek API 需要依次下载 ●Ollama ●Deepseek R1 LLM模型 ●嵌入模型nomic-embed-text / bge-m3 ●AnythingLLM 参考教程&#xff1a; Deepseek R1打造本地化RAG知识库:安装部署使用详细教程 手把手教你&#xff1a;deepseek R1基于 AnythingLLM API 调用本地…

Linux自旋锁:探秘内核同步利器

在 Linux 操作系统那复杂而精妙的内核世界里&#xff0c;自旋锁宛如一颗独特而关键的 “螺丝钉”&#xff0c;虽看似微小却有着不可忽视的力量。它紧密地与多任务处理、并发控制以及资源共享等核心机制相互交织&#xff0c;深刻地影响着系统的性能、稳定性与可靠性。 当我们开…

Moretl 增量文件采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…

【Uniapp】关于实现下拉刷新的三种方式

在小程序、h5等地方中&#xff0c;常常会用到下拉刷新这个功能&#xff0c;今天来讲解实现这个功能的三种方式&#xff1a;全局下拉刷新&#xff0c;组件局部下拉刷新&#xff0c;嵌套组件下拉刷新。 全局下拉刷新 这个方式简单&#xff0c;性能佳&#xff0c;最推荐&#xf…

九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表

文章目录 前言一、引入依赖二、创建一个light-db_1备用数据库三、配置文件 application-dev.yml四、创建shardingsphere-config.yml完整项目结构 五、测试总结 前言 在现代化微服务架构中&#xff0c;随着数据量的不断增长&#xff0c;单一数据库已难以满足高可用性、扩展性和…

游戏引擎学习第101天

回顾当前情况 昨天的进度基本上完成了所有内容&#xff0c;但我们还没有进行调试。虽然我们在运行时做的事情大致上是对的&#xff0c;但还是存在一些可能或者确定的bug。正如昨天最后提到的&#xff0c;既然现在时间晚了&#xff0c;就不太适合开始调试&#xff0c;所以今天我…

鸿蒙HarmonyOS NEXT开发:横竖屏切换开发实践

文章目录 一、概述二、窗口旋转说明1、配置module.json5的orientation字段2、调用窗口的setPreferredOrientation方法 四、性能优化1、使用自定义组件冻结2、对图片使用autoResize3、排查一些耗时操作 四、常见场景示例1、视频类应用横竖屏开发2、游戏类应用横屏开发 五、其他常…

【新品解读】AI 应用场景全覆盖!解码超高端 VU+ FPGA 开发平台 AXVU13F

「AXVU13F」Virtex UltraScale XCVU13P Jetson Orin NX 继发布 AMD Virtex UltraScale FPGA PCIE3.0 开发平台 AXVU13P 后&#xff0c;ALINX 进一步研究尖端应用市场&#xff0c;面向 AI 场景进行优化设计&#xff0c;推出 AXVU13F。 AXVU13F 和 AXVU13P 采用相同的 AMD Vir…

(篇六)基于PyDracula搭建一个深度学习的软件之新版本ultralytics-8.3.28调试

ultralytics-8.3.28版本debug记录 1传入文件 代码太多不粘贴在这里了&#xff0c;完整代码写在了篇三 def open_src_file(self):config_file config/fold.jsonconfig json.load(open(config_file, r, encodingutf-8))open_fold config[open_fold]if not os.path.exists(op…

计算机毕业设计PySpark+hive招聘推荐系统 职位用户画像推荐系统 招聘数据分析 招聘爬虫 数据仓库 Django Vue.js Hadoop

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

docker配置镜像加速

1.配置方法见阿里云 图1 图2 图3 CentOS脚本 阿里云、腾讯云的镜像仓库从2022年就没有更新了&#xff0c;所以添加以下这么多仓库 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://g4f7bois.mirro…

互联网大厂中面试的高频计算机网络问题及详解

前言 哈喽各位小伙伴们,本期小梁给大家带来了互联网大厂中计算机网络部分的高频面试题,本文会以通俗易懂的语言以及图解形式描述,希望能给大家的面试带来一点帮助,祝大家offer拿到手软!!! 话不多说,我们立刻进入本期正题! 一、计算机网络基础部分 1 …