python内置urllib库的使用

简单爬虫:re和urllib 通过python 来实现一个简单的爬虫功能,把我们想要的图片爬取到本地。 一,获取整个页面数据 首先我们可以先获取要下载图片的整个页面信息。 #spider1.py #coding=utf-8 import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return 阅读详情

urllib库是python内置的一个http请求库

urllib.request 请求模块
urllib.error 异常处理模块
urllib.parse 解析模块


用法讲解
(1)简单的一个get请求

import urllib.request
reponse = urllib.request.urlopen('http://www.baidu.com')
print(reponse.read().decode('utf-8'))

(2)简单的一个post请求

import urllib.parse
import urllib.request
data = bytes(urllib.parse.urlencode({'hello':'world'}),encoding='utf-8')
reponse = urllib.request.urlopen('http://httpbin.org/post',data=data)
print(reponse.read())

(3)超时处理

import urllib.request
response = urllib.request.urlopen('http://httpbin.org/get',timeout=1)
print(response.read())
import urllib.request
import socket
import urllib.error
try:
    response = urllib.request.urlopen('http://httpbin.org/get',timeout=0.01)
except urllib.error.URLError as e:
    if isinstance(e.reason,socket.timeout):#判断错误原因
        print('time out!')

(4)打印出响应类型,状态码,响应头

import urllib.request
response=urllib.request.urlopen('http://www.baidu.com')
print(type(response))
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.status)                  # 状态码  判断请求是否成功
print(response.getheaders())            # 响应头 得到的一个元组组成的列表
print(response.getheader('Server'))     #得到特定的响应头
print(response.read().decode('utf-8'))  #获取响应体的内容,字节流的数据,需要转成utf-8格式

 

(5)由于使用urlopen无法传入参数,需要声明一个request对象,通过这个对象来添加参数

import urllib.request
request = urllib.request.Request('https://python.org')   #由于urlopen无法传参数,声明一个Request对象
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))

(6)分别创建字符串、字典等等来带入到request对象里面

from urllib import request,parse
url='http://httpbin.org/post'
headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    'Host':'httpbin.org'
}
dict={
    'name':'jay'
}
data = bytes(parse.urlencode(dict),encoding='utf-8')
req=request.Request(url=url,data=data,headers=headers,method='POST')
response=request.urlopen(req)
print(response.read().decode('utf-8'))

(7)通过addheaders方法不断的向原始的requests对象里不断添加

from urllib import request,parse
url ='http://httpbin.org/post'
dict = {
    'name':'cq'
}
data=bytes(parse.urlencode(dict),encoding='utf-8')
req = request.Request(url=url,data=data,method='POST')
req.add_header('user-agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36')
response=request.urlopen(req)
print(response.read().decode('utf-8')

(8)打印出信息cookies
下面这段程序获取response后声明的cookie对象会被自动赋值

import http.cookiejar,urllib.request
cookie = http.cookiejar.CookieJar()
handerler=urllib.request.HTTPCookieProcessor(cookie)
opener=urllib.request.build_opener(handerler)
response=opener.open('http://www.baidu.com')  #获取response后cookie会被自动赋值
for item in cookie:
    print(item.name+'='+item.value)

(9)保存cookie文件,两种格式

import http.cookiejar,urllib.request
filename='cookie.txt'
cookie = http.cookiejar.MozillaCookieJar(filename)
handerler=urllib.request.HTTPCookieProcessor(cookie)
opener=urllib.request.build_opener(handerler)
response=opener.open('http://www.baidu.com')  #获取response后cookie会被自动赋值
cookie.save(ignore_discard=True,ignore_expires=True)  #保存cookie.txt文件
import http.cookiejar,urllib.request
filename='cookie2.txt'
cookie = http.cookiejar.LWPCookieJar(filename)
handerler=urllib.request.HTTPCookieProcessor(cookie)
opener=urllib.request.build_opener(handerler)
response=opener.open('http://www.baidu.com')  #获取response后cookie会被自动赋值
cookie.save(ignore_discard=True,ignore_expires=True)  #保存cookie.txt文件

(10)解析,将一个url解析

from urllib.parse import  urlparse
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment')
print(result)#协议内容、路径、参数
print(type(result))

from urllib.parse import  urlparse
result = urlparse('www.baidu.com/index.html;user?id=5#comment',scheme='https')
print(result)



from urllib.parse import  urlparse
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment',scheme='https')
print(result)

from urllib.parse import  urlparse
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment',allow_fragments=False)  #会被拼接
print(result)

from urllib.parse import  urlparse
result = urlparse('http://www.baidu.com/index.html#comment',allow_fragments=False)  #会被拼接到path没有query
print(result)

(11)url拼接

from urllib.parse import urlunparse
data=['http','www.baidu.com','index.html','user','a=6','comment']
print(urlunparse(data))
from urllib.parse import  urljoin
#拼接两个url
#截图,以后面的为基准,有留下,没有拼接

print(urljoin('http://www.baidu.com','HAA.HTML'))
print(urljoin('https://wwww.baidu.com','https://www.baidu.com/index.html;question=2'))
#字典方式直接转换成url参数
from urllib.parse import urlencode
params = {
    'name':'germey',
    'age':'122'
}
base_url='http://www.baidu.com?'
url=base_url+urlencode(params)
print(url)

 

 

 

urllib库使用教程:Python内置爬虫模块的基础操作【爬虫入门篇】 本文介绍了Python内置urllib库的基础使用方法和常见操作。urllib包含request、parse、error和robotparser模块,可用于发送HTTP请求、解析URL和处理异常。主要内容包括:发送GET/POST请求、设置请求头和超时、URL解析与构造、参数编码、异常处理(URLError/HTTPError)以及高级功能(代理、Cookie、重定向和HTTPS证书处理)。urllib作为Python标准库,无需额外安装,适合基础爬虫需求,是学习网络请求的良好起点。 阅读详情

相关推荐

详解python内置模块urllib

主要介绍了python内置模块urllib的相关资料,帮助大家更好的理解和使用python 内置模块,感兴趣的朋友可以了解下

python爬虫和python_Python爬虫:requests介绍和安装

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于腾讯云 作者:sergiojune( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )第一章主要讲解爬虫相关的知识如:http、网页、爬虫法律等,让大家...

weixin_39790168的博客 272

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7605

Python网络请求利器:urllib库深度解析

Python网络请求利器:urllib库深度解析

KE17RS的博客 1209

深入解析DMR协议中的4-CPFSK调制技术与实现

本文深入解析了DMR协议中采用的4-CPFSK调制技术。该技术凭借其连续相位、恒包络的特性,在有限的12.5kHz信道带宽内实现了稳健的通信,有效对抗干扰并提升功放效率,是DMR数字对讲机清晰、稳定通信的核心保障。文章详细阐述了其原理、实现细节及在协议栈中的协同作用。

weixin_29306875的博客 229

CarPlay盒子选购避坑指南:为什么你的车机破解了却用不了?从USB设备ID说起

本文深入解析CarPlay盒子硬件兼容性问题,从USB设备ID匹配到车机适配逻辑,揭示破解成功却无法使用的根本原因。通过分析USB设备识别的核心要素和逆向工程usb_device_manager.xml文件,提供三种主流解决方案对比,并强调操作中的硬件保护机制,帮助车主避免常见陷阱。

weixin_30706691的博客 474

学习Python的内置库---urllib

学习Python的内置库—urllib 我们都知道Python的强大之处在于它为我们提供了功能齐全的各种类库。学习爬虫最基础的操作就是模拟浏览器向服务器发送请求,HTTP协议当然是必备的技能之一了,在Python的HTTP库中有众多的“成员”,Python的内置库urllib便是其中之一。 urllib中的模块分布 学习Python当然要培养一种模块思想。在urllib库有四个模块—request模块,error模块,parse模块,robotparser模块(不常用) urllib库 request模

weixin_45397719的博客 717

Eigen 直线拟合/曲线拟合/圆拟合/椭圆拟合

使用Eigen库进行直线拟合是数据分析和科学计算中的常见任务,主要通过最小二乘法实现。该代码演示了二维空间中的直线拟合,输出斜率和截距。

深之JohnChen的专栏 1594

Python爬虫:urllib内置库基本使用

可参考: Urllib库的基本使用 官方文档:https://docs.python.org/3/library/urllib.html urllib库包含以下模块 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 urllib.robotparser robots.txt解析模块 ...

彭世瑜的博客 3248

2025_NIPS_RAGRouter: Learning to Route Queries to Multiple Retrieval-Augmented Language Models

该研究聚焦检索增强生成(RAG)场景下的大语言模型(LLM)路由问题,提出了首个RAG感知的路由框架RAGRouter。核心解决现有路由方法依赖静态参数知识、忽略检索文档动态影响的缺陷,通过融合文档嵌入、RAG能力嵌入与对比学习,捕捉RAG引发的模型知识表征变化,为每个查询-文档对选择最优LLM。实验覆盖5个知识密集型任务、15个开源/闭源LLM,验证了RAGRouter在性能上超越最佳单LLM和非RAG感知路由方法,且通过阈值机制实现低延迟约束下的性能-效率平衡。

UnknownBody_2的博客 272

Y-Branch and a closed y-branch loop

双臂后面的区域,我们将它的双臂使用一个波导进行了连接,使得它本身形成了一个闭合回路,因此,该结构被称作。它们均是用来对经过它们的光束能量进行分割的一种器件。首先,我们知道一点,在光波导层面,今天给大家介绍一下,什么是。

u011699626的博客 630

《学习笔记57》—— python的内置urllib库(HTTP请求库)的使用

python的内置urllib库(HTTP请求库) 介绍: ​ Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 urllib库主要包含以下几个模块: urllib.request - 打开和读取 URL urllib.error- 包含 urllib.request 抛出的异常。 urllib.parse - 解析 URL urllib.robotparser - 解析 robots.txt 文件 可以通过以下语句来引入urllib库: import urllib.

weixin_53801131的博客 1283

MSVS C# Matlab的混合编程系列2 - 构建一个复杂(含多个M文件)的动态库:

本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。

山云的专栏 2069

get 请求404_Python内置的HTTP请求库urllib模块

回顾在Python进阶记录之基础篇(二十五)中,我们介绍了Python中正则表达式的简单使用,需要重点掌握re模块的几个常用函数,理解正则表达式的模式语法。今天我们讲一下Python中内置的HTTP请求库——urllib模块。urllib模块简介urllib模块是Python内置的HTTP请求库,它不需要我们额外安装,可以直接引入urllib模块进行使用。urllib模块主要包含四大块内容:1、r...

weixin_42408865的博客 503

基于深度学习YOLOv8的PCB板缺陷检测系统

基于YOLOv8的PCB板缺陷检测系统,可以有效提高PCB生产过程中的检测效率。未来,我们可以进一步优化模型,结合更多的数据增强策略和先进的网络结构,以适应更复杂的生产环境。为了进行训练,理想的数据集应包含多种不同缺陷类型和不同背景的PCB图像。YOLOv8需要的数据格式为每个图像一个标签文件,每个标签文件包含缺陷的类别及其边界框坐标。运行该界面时,用户可以通过点击按钮选择图像,随后系统将自动检测图像中的PCB缺陷并显示结果。训练完成后,可以使用训练好的模型进行推理,检测新的PCB图像中的缺陷。

YOLO 1070

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

post请求500_Python内置的HTTP请求库urllib模块

回顾在Python进阶记录之基础篇(二十五)中,我们介绍了Python中正则表达式的简单使用,需要重点掌握re模块的几个常用函数,理解正则表达式的模式语法。今天我们讲一下Python中内置的HTTP请求库——urllib模块。urllib模块简介urllib模块是Python内置的HTTP请求库,它不需要我们额外安装,可以直接引入urllib模块进行使用。urllib模块主要包含四大块内容:1、r...

weixin_39768371的博客 393

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

urllib库(python内置库)

urlopen函数: 创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。 url:请求的url。 data:请求的data,如果设置了这个值,那么将变成post请求。 返回值:返回值是一个http.client.HTTPResponse对象,这个对象是一个类文件句柄对象。有read(size)、readline、readlines以及getcode等方法。 例...

leedean的博客 525

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Urllib库:python内置的http请求库

1、四个模块: request error parse robotparser 2、urlopen(url, data, timeout) 发送请求 get请求无data; post请求有data 3、read() 获取响应体的内容 4、Handler 代理IP 5、cookie 维持登录状态 6、error 异常处理 7、urlparse 解析 8、urlunparse 拼...

aijie1245的博客 780

urllib模块是python自带的吗_Python爬虫学习:Python内置的爬虫模块urllib库

urllib库urllib库是Python中一个最基本的网络请求的库。它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据urllib.request在Python3的urllib库当中,所有和网络请求相关的方法都被集成到了urllib.request模块下#基本使用from urllib importrequestresp= request.urlopen("URL")print(re...

weixin_31669073的博客 397

python使用osgeo库_Python使用内置urllib模块或第三方库requests访问网络资源

前言更多内容,请访问我的 个人博客。Python 访问网络资源有很多方法,urllib, urllib2, urllib3, httplib, httplib2, requests ,现介绍如下两种方法: - 内置的 urllib 模块 - 优点:自带模块,无需额外下载第三方库 - 缺点:操作繁琐,缺少高级功能 - 第三方库 requests - 优点:处理URL资源特别方...

weixin_39796152的博客 175

Python爬虫学习:Python内置的爬虫模块urllib库

urllib库 urllib库是Python中一个最基本的网络请求的库。它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据 urllib.request 在Python3的urllib库当中,所有和网络请求相关的方法都被集成到了urllib.request模块下 #基本使用 from urllib import request resp = requ...

weixin_30765319的博客 113

Python爬虫—1入门_1_python内置urllib库的初级用法

1、构造request并请求页面 import urllib2 url = "http://www.126.com/" request = urllib2.Request(url) response = urllib2.urlopen(request) print response.read() 2、POST和GET数据传送 2.1 post方式: import urlli

scorpion_zs的专栏 663

python爬虫库函数大全-Python爬虫学习:Python内置的爬虫模块urllib库

urllib库urllib库是Python中一个最基本的网络请求的库。它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据urllib.request在Python3的urllib库当中,所有和网络请求相关的方法都被集成到了urllib.request模块下#基本使用from urllib importrequestresp= request.urlopen("URL&quot...

weixin_39705435的博客 292

python内置http请求库urllib基本使用,发送请求,添加请求头,添加cookie信息

urllib是python自带标准库,可直接使用 引入用到的module import urllib.request #发送请求 import urllib.parse import http.cookiejar #cookie 发送get请求 #汉字或者会隔断url的特殊字符需要用urllib.request.quote(),url编码 #http://localhost/get,springboot快速搭建个get接口@GetMapping(value = "get") response = url

zhaoqingquanajax的博客 3597

【Python入门】30.常用内置模块之 HTTP请求库urllib & 实现简单爬虫 和 自动登录微博

本学习笔记基于廖雪峰的Python教程。欢迎与博主一起学习Pythonヽ( ̄▽ ̄)ノ 本节内容包括:教你如何快速爬取一个网页信息;urllib模块中常用的方法介绍;通过修改头信息来伪装成浏览器访问页面;Get请求和Post请求的介绍

三贝 843

python urllib库与request s库_Python3 内置http.client,urllib.request及三方库requests发送请求对比...

如有任何学习问题,可以添加作者微信:lockingfree 更多学习资料请加QQ群: 822601020获取HTTP,GET请求,无参Python3 http.clientimport http.client# 1. 建立HTTP连接conn = http.client.HTTPConnection("httpbin.org")# 2. 发送GET请求,制定接口路径conn.request("GE...

weixin_33186395的博客 113
上一篇: 数据结构学习感悟之一——线性表知识体系结构(原创)
下一篇: python爬虫基础
Dimo_张小天
博客等级 码龄9年 260粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值