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

news/2024/7/19 10:03:07 标签: python, 爬虫

🎈🎈作者主页: 喔的嘛呀🎈🎈
🎈🎈所属专栏: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 相关的操作,提高我们的编程效率。


http://www.niftyadmin.cn/n/5466817.html

相关文章

netstat在定时任务中的重要作用

目录 netstat在定时任务中的重要作用netstat一般格式例子解释查看nestatnetstat组合使用解释crontabcrontab命令netstat在定时任务中的重要作用 netstat Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备…

速盾:cdn加速https额外收费吗?

CDN&#xff08;内容分发网络&#xff09;是一种通过在全球各地部署服务器来提供高速互联网内容传输的技术&#xff0c;它可以加速网站的访问速度&#xff0c;提高用户体验。而HTTPS&#xff08;超文本传输安全协议&#xff09;是一种通过加密技术保护网站数据传输安全的协议。…

牛客NC181 单词拆分(一)【中等 动态规划,前缀树 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/c0d32c1ce5744472a01b2351a2c2767f 思路 前缀树动态规划参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规…

Cisco IOS XRv 9000 Router IOS XR Software 24.1.1(ED) - 服务提供商边缘虚拟路由器

Cisco IOS XRv 9000 Router IOS XR Software 24.1.1(ED) - 服务提供商边缘虚拟路由器 Cisco IOS XRv 9000 路由器 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-ios-xrv-9000/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1…

Python读取Excel根据每行信息生成一个PDF——并自定义添加文本,可用于制作准考证

文章目录 有点小bug的:最终代码(无换行):有换行最终代码无bug根据Excel自动生成PDF,目录结构如上 有点小bug的: # coding=utf-8 import pandas as pd from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter from reportlab.pdfbase import pdf…

Java快速排序知识点(含面试大厂题含源码)

快速排序是一种高效的排序算法&#xff0c;由C. A. R. Hoare在1960年提出。它的基本思想是分而治之&#xff08;Divide and Conquer&#xff09;。快速排序的关键在于选取一个“基准值”&#xff08;pivot&#xff09;&#xff0c;然后将数组分为两个子数组&#xff1a;一个包含…

环信IM集成教程——Web端UIKit快速集成与消息发送

写在前面&#xff1a; 千呼万唤始出来&#xff0c;环信Web端终于出UIKit了&#xff01;&#x1f389;&#x1f389;&#x1f389; 文档地址&#xff1a;https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开…

Prisma 入门教程4-深度嵌套事务写入

使用Prisma进行深度嵌套事务写入 在开发应用程序时&#xff0c;经常会遇到需要进行深度嵌套的事务写入操作。Prisma 是一个现代的数据库工具&#xff0c;它提供了强大的功能来处理复杂的数据库操作。在本文中&#xff0c;我们将探讨如何使用 Prisma 进行深度嵌套事务写入。 什…