python爬虫———urllibd的基本操作(第十二天)

🎈🎈作者主页: 喔的嘛呀🎈🎈
🎈🎈所属专栏:python爬虫学习🎈🎈
✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 

hello,小伙伴们!今天我们来学习urllib库的基本使用以及下载的相关操作.

一、urllib的基本使用

1、Python爬虫中使用urllib库可以实现网页的访问和数据的抓取。下面是一个基本的使用示例,包括了如何使用urllib访问网页和获取网页内容的代码:

from urllib import request

url = '<https://www.example.com>'
response = request.urlopen(url)
html = response.read().decode('utf-8')
print(html)

上面的代码首先导入了**urllib.request模块,然后指定了要访问的网页URL,并使用urlopen()函数打开这个URL。接着使用read()方法读取网页内容,并使用decode('utf-8')**方法将内容解码为字符串。最后打印出网页的HTML内容。

示例:获得百度的网页内容代码

结果展示:

2. 读取响应内容

  • read(): 读取所有响应内容的字节形式。

  • readline(): 读取一行响应内容的字节形式。

  • readlines(): 一行一行读取响应内容,返回一个包含所有行的列表。

3. 其他方法

  • getcode(): 获取响应的状态码。
  • geturl(): 获取响应的URL。
  • getheaders(): 获取响应的Headers信息。
import urllib.request

# (1)定义一个url就是你所要访问的地址
url='<http://www.baidu.com>'

# (2)模拟浏览器向服务器发送信息
response = urllib.request.urlopen(url)

# 读取所有响应内容的字节形式。
print(response.read(6))

# 读取一行
print(response.readline())

二、使用urlretrieve()下载文件

**urlretrieve()函数可以用来下载文件,比如图片、视频等。下面是一个简单的示例,演示如何使用urlretrieve()**下载文件:

(1)下载图片

from urllib import request

url = '<https://www.example.com/image.jpg>'
filename, headers = request.urlretrieve(url, 'image.jpg')
print('Downloaded:', filename)

在这个示例中,urlretrieve()函数会下载url指定的文件,并将其保存为image.jpg。**filename变量将包含保存的文件路径,headers**变量将包含响应的头部信息。

示例:

import urllib.request

url_img='<https://t7.baidu.com/it/u=4162611394,4275913936&fm=193&f=GIF>'

urllib.request.urlretrieve(url_img,filename='dog.jpg')

(2)下载视频

要使用**urlretrieve()**下载视频,只需将视频的URL传递给函数即可。下面是一个示例,演示如何下载视频文件:

from urllib import request

url = '<https://www.example.com/video.mp4>'
filename, headers = request.urlretrieve(url, 'video.mp4')
print('Downloaded:', filename)

在这个示例中,urlretrieve()函数会下载url指定的视频文件,并将其保存为video.mp4。**filename变量将包含保存的文件路径,headers**变量将包含响应的头部信息。

(3)下载百度首页源代码

import urllib.request

url='<http://www.baidu.com>'

urllib.request.urlretrieve(url,'baidu.html')

页面可以正常打开

总结

urllib.request.urlopen() 模拟浏览器向服务器发送请求    
response    服务器返回的数据    
response的数据类型是HttpResponse        
字节‐‐>字符串        
解码decode                
字符串‐‐>字节        
编码encode                
read()       字节形式读取二进制   扩展:rede(5)返回前几个字节        
readline()   读取一行        
readlines()  一行一行读取 直至结束        
getcode()    获取状态码        
geturl()     获取url        
getheaders() 获取headers        
urllib.request.urlretrieve()    
请求网页        
请求图片        
请求视频 

学习 urllib 库的基本使用和下载操作可以帮助我们实现对 URL 的各种操作,包括发送请求、处理响应、构建 URL 等。通过 urllib.request 模块,我们可以发送 HTTP 请求并获取响应,还可以构建请求对象、设置 Headers 等。总的来说,学习 urllib 库可以让我们更加灵活地处理 URL 相关的操作,提高我们的编程效率。

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

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

相关文章

鸿蒙实战开发-如何使用Stage模型卡片

介绍 本示例展示了Stage模型卡片提供方的创建与使用。 用到了卡片扩展模块接口&#xff0c;ohos.app.form.FormExtensionAbility 。 卡片信息和状态等相关类型和枚举接口&#xff0c;ohos.app.form.formInfo 。 卡片提供方相关接口的能力接口&#xff0c;ohos.app.form.for…

monitor link 联合smart link配合应对复杂的网络

monitor link关键词&#xff1a;上行和下行端口&#xff0c;当上行端口异常&#xff0c;下行端口立即down掉&#xff0c;也就是一种联动机制 如果上行端口里面是smart link方式&#xff0c;则当主从端口都出问题时候&#xff0c;下行端口才会down掉 monitor link 配置步骤 1创…

前端三剑客 —— HTML (下)

目录 HTML 多媒体标签 Img*** a标签*** 第一种用法&#xff1a;超链接 第二种用法&#xff1a;锚点 audio标签 video标签 表格标签 带标题的表格 跨行跨列标签 表格嵌套 列表标签 ul --- 它是无序列表标签 ol --- 它是有序列表 dl --- 它是数据列表 表单标签***…

51单片机学习笔记13 红外遥控接收

51单片机学习笔记13 红外遥控接收 一、红外遥控1. **发射原理**2. **接收原理**3. **发射、接收示例** 二、编码、解码1. **编码方式分类**&#xff1a;&#xff08;1&#xff09;Pulse Distance Modulation (PDM) 脉冲距离调制&#xff1a;&#xff08;2&#xff09;Pulse Wid…

python coding with ChatGPT 专题2| 全解递归算法

文章目录 递归与栈的关系如何思考递归汉诺塔 经典题目入门&#xff1a;斐波那契数列分治法&#xff1a;归并排序树的递归遍历组合问题&#xff1a;子集搜索问题&#xff1a;N皇后 拓展阶乘的迭代法斐波那契数列迭代法青蛙跳 参考文献 掌握递归是解决许多编程问题的关键&#xf…

VBA数据库解决方案第九讲:把数据库的内容在工作表中显示

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

如何使用极狐GitLab 启用自动备份功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何极狐GitLab 自…

HarmonyOS 和 OpenHarmony

HarmonyOS 和 OpenHarmony 支持的 shell 命令不同&#xff0c;因此有时候需要做一做区分&#xff0c;目前有些文档上没有标注&#xff0c;因此可能产生歧义。 HarmonyOS 支持 getprop&#xff1a; getprop hw_sc.build.os.apiversion # 查看API版本OpenHarmony 上支持 param…

2024年NAND价格市场继续上涨

TrendForce发布了最新的NAND闪存市场价格走势预测。根据其报告&#xff0c;在2024年第二季度&#xff0c;NAND闪存合同价格将进一步呈现两位数的增长&#xff0c;叠加前一季度的增长。不过&#xff0c;客户端SSD的价格涨幅预计在第二季度将不超过15%&#xff0c;相比于2024年第…

破解密码:掌握2024年的营销归因

Cracking the Code: Mastering Marketing Attribution in 2024 营销归因是识别哪些营销渠道和触及点有助于销售或转化的过程。随着消费者继续通过多个渠道与品牌互动&#xff0c;掌握营销归因对企业来说变得越来越重要。在这篇文章中&#xff0c;我们将探讨破解代码和有效衡量…

PW1503限流芯片:可达3A限流,保障USB电源管理安全高效

在电源管理领域&#xff0c;开关的性能直接关系到设备的稳定性和安全性。今天&#xff0c;我们将详细解析一款备受关注的超低RDS&#xff08;ON&#xff09;开关——PW1503。它不仅具有可编程的电流限制功能&#xff0c;还集成了多项保护机制&#xff0c;为各类电子设备提供了高…

vue两个特性和什么是MVVM

一、什么是vue 1.构建用户界面 用vue往html页面中填充数据&#xff0c;非常的方便 2.框架 框架是一套线成的解决方案 vue的指令、组件&#xff08;是对ui结构的复用&#xff09;、路由、vuex 二、vue的特性 1.数据驱动视图 2.双向数据绑定 1.数据驱动视图 数据的变化会驱动…

基于tensorflow和kereas的孪生网络推理图片相似性

一、环境搭建 基础环境&#xff1a;cuda 11.2 python3.8.13 linux ubuntu18.04 pip install tensorflow-gpu2.11.0 验证&#xff1a;# 查看tensorflow版本 import tensorflow as tf tf.__version__ # 是否能够成功启动GPU from tensorflow.python.client import device_lib pr…

Navicat for MySQL 15免费注册方法

一、效果图如下&#xff1a; 注&#xff1a;此方法仅用于非商业用途&#xff0c;请勿传播&#xff0c;否则后果自负。 二、下载安装 下载安装包&#xff0c;分为32位和6位&#xff0c;下载文件名&#xff1a;Navicat for MySQL 15.zip&#xff08;https://download.csdn.net/…

Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)

由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前三篇 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环境搭建m…

Nginx反向代理和缓存

一、Nginx反向代理 1.调度和代理的区别&#xff1a; 1.调度基于内核层面&#xff0c;代理基于应用层面 2.代理必须实现一手托两家 3.调度不需要监听任何端口&#xff0c;不需要工作任何应用程序&#xff0c;代理需要工作和上游服务器一模一样的进程 4.调度没有并发上限&am…

CentOS7安装flink1.17完全分布式

前提条件 准备三台CenOS7机器&#xff0c;主机名称&#xff0c;例如&#xff1a;node2&#xff0c;node3&#xff0c;node4 三台机器安装好jdk8&#xff0c;通常情况下&#xff0c;flink需要结合hadoop处理大数据问题&#xff0c;建议先安装hadoop&#xff0c;可参考 hadoop安…

nslookup查询网站是否支持IPV6

nslookup是一种网络管理命令行工具&#xff0c;可用于查询DNS域名和IP地址输入指令nslookup默认服务器和Address是当前上网所用的DNS服务器域名和地址A记录A&#xff08;Address&#xff09;记录指的是用来指定主机名或域名对应的IP记录。

java数据结构与算法刷题-----LeetCode547. 省份数量

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 深度优先遍历广度优先遍历 本题考察图的连通分量个数。也就是所有…

24/04/02总结

API: bigdecima: 方法名 说明 public static BigDecimal valueof( double val) 静态获取对象 public BigDecimal add(BigDecimal val) 加法 public BigDecimal subtract(BigDecimal val…