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

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

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

一、urllib的基本使用

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

from urllib import requesturl = '<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 requesturl = '<https://www.example.com/image.jpg>'
filename, headers = request.urlretrieve(url, 'image.jpg')
print('Downloaded:', filename)

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

示例:

import urllib.requesturl_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 requesturl = '<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.requesturl='<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 相关的操作,提高我们的编程效率。

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

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

相关文章

画图理解JVM相关内容

文章目录 1. JVM视角下&#xff0c;内存划分2. 类内存分布硬核详解1. 获取堆内存参数2. 扫描堆内存&#xff0c;定位实例3. 查看实例所在地址的数据4. 找到实例所指向的类信息的地址5. 查看class信息6. 结论 3. Java的对象创建流程4. 垃圾判别算法4.1 引用计数法4.2 可达性分析…

【Redis】NoSQL之Redis的配置和优化

关系型数据库与非关系型数据库 关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系型模型&#xff08;二维表&#xff09;的基础上&#xff1b;一般面向于记录&#xff1b; SQL语句(标准数据查询语句)就是一种基于关系型数据库的语言&#xff0c;用于执行…

Mysql底层原理五:如何设计、用好索引

1.索引的代价 空间上的代价 时间上的代价 每次对表中的数据进⾏增、删、改操作时&#xff0c;都需要去修改各个B树索引。⽽且我们讲过&#xff0c;B树每层节点都是按照索引列的值从⼩到⼤的顺序排序⽽组成了双 向链表。不论是叶⼦节点中的记录&#xff0c;还是内节点中的记录&a…

设计模式 -- 发布订阅模式

发布订阅模式&#xff1a; 订阅者把自己想订阅的事件注册到调度中心&#xff0c;当发布者发布该事件到调度中心&#xff0c;也就是该事件触发时&#xff0c;由调度者统一调度订阅者注册到调度中心的处理代码。 在javaScript 中我们一般使用事件模型来代替传统的发布订阅模式。 …

深入了解iOS内存(WWDC 2018)笔记-内存诊断

主要记录下用于分析iOS/macOS 内存问题的笔记。 主要分析命令&#xff1a; vmmap, leaks, malloc_history 一&#xff1a;前言 有 3 种思考方式 你想看到对象的创建吗&#xff1f;你想要查看内存中引用对象或地址的内容吗&#xff1f;或者你只是想看看 一个实例有多大&#…

互联网大厂ssp面经之路:计算机网络part2

什么是 HTTP 和 HTTPS&#xff1f;它们之间有什么区别&#xff1f; a. HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;安全超文本传输协议&#xff09;是用于在Web上传输数据的协议。它们之间的区别在于安全性和数据传输方式。 b. HTTP是一种不安全的协议&…

【随笔】Git 高级篇 -- 整理提交记录(上)cherry-pick(十五)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

加州大学欧文分校英语基础语法专项课程03:Simple Past Tense 学习笔记(完结)

Learn English: Beginning Grammar Specialization Specialization Certificate course 3&#xff1a; Simple Past Tense Course Certificate 本文是学习 https://www.coursera.org/learn/simple-past-tense 这门课的学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。…

浙江大学李春阳团队Trends Plant Sci观点文章(IF=20):植物地下生态互作:为什么同性相斥,异性相吸?

在生态学中&#xff0c;人们一直致力于探究生物之间的相互作用&#xff0c;这些相互作用不仅包括物种之间的相互作用&#xff0c;还包括同一物种的不同性别之间的相互作用。对于异株植物物种来说&#xff0c;人们普遍认为异性之间的相互作用比同性之间的相互作用更弱&#xff0…

为说阿拉伯语的国家进行游戏本地化

阿拉伯语是由超过4亿人使用的语言&#xff0c;并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言&#xff0c;但每个国家都有自己独特的文化&#xff0c;有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…

Git如何将已经推送到服务器的文件夹“忽略”

例子&#xff1a;如果我们在推送之初&#xff0c;一股脑将工程的所有文件都备份&#xff0c;没有忽略 debug和release文件夹&#xff0c;反应过来想要将文件夹再次忽略&#xff0c;应该怎么操作呢&#xff1f; 如下解答方法&#xff1a; 1.在工程目录下新建文件 .gitignore …

graphicLayer.startDraw({指定type为curve曲线时,无法实现示例效果排查思路参考

graphicLayer.startDraw({指定type为curve曲线时&#xff0c;无法实现和示例一样的曲线效果的排查思路参考&#xff1a; 相关代码&#xff1a; graphicLayer.startDraw({type: "curve",style: {color: "#ff0000",width: 3,},}); 相关效果&#xff1a; …

创建型模式--4.抽象工厂模式【弗兰奇一家】

1. 奔向大海 在海贼世界中&#xff0c;位于水之都的弗兰奇一家是由铁人弗兰奇所领导的以拆船为职业的家族&#xff0c;当然了他们的逆向工程做的也很好&#xff0c;会拆船必然会造船。船是海贼们出海所必备的海上交通工具&#xff0c;它由很多的零件组成&#xff0c;从宏观上看…

Mathpix和Simpletex对比

原始资料 Mathpix结果 已知集合 A { y ∣ y 2 x } , B { x ∣ x ≥ a } A\left\{y \mid y2^{\sqrt{x}}\right\}, B\{x \mid x \geq a\} A{y∣y2x ​},B{x∣x≥a}, 若 A B AB AB, 则 a a a 的值为 ( ) A. 1 B. 2 C. 3 D. 4复数 z a i ( a ∈ R , i za\mathrm{i} \qua…

React - 你知道useffect函数内如何模拟生命周期吗

难度级别:中级及以上 提问概率:65% 很多前端开发人员习惯了Vue或者React的组件式开发,熟知组件的周期过程包含初始化、挂载完成、修改和卸载等阶段。但是当使用Hooks做业务开发的时候,看见一个个useEffect函数,却显得有些迷茫,因为在us…

windows安装使用nacos

1.下载安装包 网址&#xff1a;Releases alibaba/nacos GitHub 2.解压&#xff0c;bin目录下修改启动脚本为单机 3.修改数据库配置&#xff0c;使用本地mysql数据库 3.1 创建nacos数据库 3.2 执行 nacos\conf 目录下数据库脚本 4.修改nacos\conf目录下数据库配置 5.点击运…

【数据结构】考研真题攻克与重点知识点剖析 - 第 5 篇:树与二叉树

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…

Javascript进阶内容

1. 作用域 1.1 局部作用域 局部作用域分为函数作用域 和 块级作用域 块级作用域就是用 {} 包起来的&#xff0c;let、const声明的变量就是产生块作用域&#xff0c;var不会&#xff1b;不同代码块之间的变量无法互相访问&#xff0c;里面的变量外部无法访问 1.2 全局作用域…

【图论】Leetcode 994. 腐烂的橘子【中等】

腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单…

Redis在windows中安装启动停止

Redis下载 Redis安装 解压即可 启动 停止 ctrlc 启动客户机 设置密码 打开redis.windows.conf Spring Data Redis 使用方式 导入spring Data Redis 的maven坐标 配置Redis数据源 3编写编写配置类&#xff0c;创建RedisTemplate对象