Python爬虫之urllib学习

1、Urllib简介

Python urllib库用于操作网页URL,并对网页的内容进行抓取处理。

Python3 的urllib模块是 一堆可以处理URL的组件集合

urllib 包 包含以下几个模块:

urllib.request - 打开和读取 URL。
urllib.error - 包含 urllib.request 抛出的异常。
urllib.parse - 解析 URL。
在这里插入图片描述

2、简单使用实例

#使用urllib进行爬取首先需要导入urllib
import urllib.request
# 接着需要一个真实存在的url,例如百度,使用的是http协议
url= 'http://www.baidu.com/'
# 模拟浏览器向服务器发送请求,并接受服务器的响应
response = urllib.request.urlopen(url)
# 接着获取响应中的页面源码
# read返回字节形式的二进制数据
# 将二进制的数据转变为字符串,解码decode(编码格式)
content = response.read().decode('utf-8')
# 打印源码
print(content)

在这里插入图片描述
注意: http获取数据时信息齐全,https获取数据的信息有缺失,在确定网络地址后,一般采用http

补充知识点:

HTTP: 是互联网上应用最广泛的一种网络协议,是一个客户端和服务器请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少

HTTPS: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTP与HTTPS之间的区别:

HTTP协议传输的数据是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。

主要区别如下:

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443.
  4. http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

具体的源码如下:

# -*- coding: utf-8 -*-
# @Time : 2022/9/2 15:48
# @Author:未晞~
# @FileName: demo1.py
# @Software: PyCharm

#使用urllib进行爬取首先需要导入urllib
import urllib.request
# 接着需要一个真实存在的url,例如百度,使用的是http协议
url= 'http://www.baidu.com/'
# 模拟浏览器向服务器发送请求,并接受服务器的响应
response = urllib.request.urlopen(url)
# 接着获取响应中的页面源码
# read返回字节形式的二进制数据
# 将二进制的数据转变为字符串,解码decode(编码格式)
content = response.read().decode('utf-8')

# 打印源码
print(content)

3、urllib的6个方法

首先向服务器发送请求,并接收响应

#使用urllib进行爬取首先需要导入urllib
import urllib.request
# 接着需要一个真实存在的url,例如百度,使用的是http协议
url= 'http://www.baidu.com/'
# 模拟浏览器向服务器发送请求,并接受服务器的响应
response = urllib.request.urlopen(url)

类型 HTTPResponse

可以使用type获取response类型

print(type(response))
# <class 'http.client.HTTPResponse'>

3.1、read()

使用read()可以按照字节读取相应的数据

print(response.read())

返回的是字节类型的,可以进行解码response.read().decode(‘utf-8’)

注意:读取一行decode用不了

结果如下:在这里插入图片描述

3.2、readlines()

使用readlines()可以实现按行读取,但是不可以使用decode()

import urllib.request
url = 'http://www.baidu.com'
response = urllib.request.urlopen(url)

content = response.readlines()
print(content)

如果如下:在这里插入图片描述

3.3、getcode()

使用getcode()获取响应的状态码(即HTTP常见响应状态码

最为常见的是200和403,200代表请求成功,403一般是触发反爬策略被限制了IP。

print(response.getcode())
结果是200

3.4、geturl()

print(response.geturl())

在这里插入图片描述

3.5、getheaders()

使用getheaders()可以获取响应头信息

print(response.getheaders())

在这里插入图片描述

3.6、下载

调用urlretrieve(url,filename)可以下载资源

# url下载路径 filename文件名
urllib.request.urlretrieve(url,'baidu.html')

在这里插入图片描述
自己会生成相应的文件展示出来在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python爬虫教程urllib主要是介绍了Python爬虫技术中的urllib库的基础用法。该教程详细讲解了urllib库的各种功能和方法,包括发送请求、处理响应、设置请求头、处理异常等。这个教程对于想要学习和使用Python进行网络爬虫的人来说具有很大的参考价值。 同时,该教程也提到了一些常见的问题和解决方法,例如模拟超时的处理方法。在网络爬虫中,有时候我们长时间无法访问一个页面,可能是因为网速有限或者被发现我们是一个爬虫。针对这种情况,可以使用timeout参数来设置超时时间,如果超过了设定的时间仍无法获取响应,则会抛出URLError异常,我们可以在异常处理中对超时进行相应的处理。 总的来说,Python爬虫教程urllib是一个很好的学习资源,适合想要入门或深入学习Python爬虫技术的人使用。它提供了详细的教程和实例,可以让你快速上手和掌握使用urllib库进行网络爬虫的基本知识和技巧。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python爬虫urllib基础用法教程](https://download.csdn.net/download/weixin_38656741/12858843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Python爬虫 —— urllib库的使用(get/post请求+模拟超时/浏览器)](https://blog.csdn.net/qq_50587771/article/details/123840479)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python爬虫urllib3的使用示例](https://download.csdn.net/download/weixin_38681147/12867742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值