我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python urllib.request模块的使用详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python urllib.request模块的使用详解

python的urllib模块提供了一系列操作url的功能,可以让我们通过url打开任意资源。其中比较常用的就是request模块,本篇主要介绍requset模块。

urllib子模块

  • urllib.request 打开或请求url
  • urllib.error 捕获处理请求时产生的异常
  • urllib.parse 解析url
  • urllib.robotparser 用于解析robots.txt文件

robots.txt是一种存放于网站根目录下文本文件,用来告诉网络爬虫服务器上的那些文件可以被查看。又被成为robots协议,是一种约定俗成的协议。

request模块

function request.urlopen()

urlopen方法用来打开资源url,常用带参数形式urlopen(url,data=None),url:资源url,data:携带的数据。

方法的返回值始终为一个对象,并可以调用相应的方法获取返回的信息。其中对于http及https的url来说会返回一个http.client.HTTPResponse对象;


import urllib.request
# 我们用本地的一个简单html文件来测试
url = 'http://127.0.0.1:8848/chenjy/test.html'

req = urllib.request.urlopen(url)

print(req)

1. read() 返回服务器返回的原始数据;


import urllib.request

url ='http://127.0.0.1:8848/chenjy/test.html'

req = urllib.request.urlopen(url)

print(req.read())

我们可以再调用decode()方法来解码。


import urllib.request

url = 'http://127.0.0.1:8848/chenjy/test.html'

req = urllib.request.urlopen(url)

print(req.read().decode())

2.geturl() 返回获取资源的url;

  • 创建一个测试页

import urllib.request
url = 'http://127.0.0.1:8848/chenjy/test.html' 

req = urllib.request.urlopen(url)

print(req.geturl())

  • 前端重定向

我们在页面中添加js脚本重定向页面window.location.href='http://127.0.0.1:8848/chenjy/test2.html';,会发现访问的时候会重定向到test2,但是geturl还是获取的重定向前的

  • 后端重定向

我们启动一个项目并添加一个拦截器当访问index.html的时候重定向到/ls/html/list.html页面,geturl获取的是重定向后的页面


@Override
  	    public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
  	      int index = target.lastIndexOf("index.html");
  	  	  if (index != -1){
    	    	HandlerKit.redirect("/ls/html/list.html",request,response,isHandled);
  	  	  }
  	      
  	    }

import urllib.request
url = 'http://localhost:8088/ls/index.html'

req = urllib.request.urlopen(url)

print(req.geturl())

3.info() 返回页面的元信息;


import urllib.request
url = 'http://127.0.0.1:8848/chenjy/test.html'

req = urllib.request.urlopen(url)

print(req.info())

4.getcode() 返回页面的状态码;


import urllib.request
url = 'http://127.0.0.1:8848/chenjy/test.html'

req = urllib.request.urlopen(url)

print(req.getcode())

class request.Request

url请求类 Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

  • url:请求url
  • data:请求传参;bytes字节流
  • headers:请求头
  • origin_req_host:请求原始主机;不带端口
  • unverifiable:是否不可验证;
  • method :请求方法;如GET、POST、PUT等

import urllib.request

# 模拟iphone5请求百度手机版页面
url = 'https://www.baidu.com/'

user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
headers = {
  'User-Agent': user_agent
}

# 抓取page信息
req = urllib.request.Request(url, headers=headers,method='GET')
page = urllib.request.urlopen(req).read().decode('utf-8')

print(page)

以上就是python urllib.request模块的使用详解的详细内容,更多关于python urllib.request模块的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python urllib.request模块的使用详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在python项目中使用urllib.request模块

今天就跟大家聊聊有关如何在python项目中使用urllib.request模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。urllib子模块urllib.request 打开或请
2023-06-14

python中os模块和sys模块的使用详解

本文主要介绍了python中os模块和sys模块的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-21

详解Python中httptools模块的使用

httptools 是一个 HTTP 解析器,它首先提供了一个 parse_url 函数,用来解析 URL。这篇文章就来和大家聊聊它的用法吧,感兴趣的可以了解一下
2023-03-03

Python学习之configparser模块的使用详解

ConfigParser是用来读取配置文件的包。这篇文章主要通过一些简单的实例带大家了解一下ConfigParser模块的具体使用,感兴趣的小伙伴跟随小编一起了解一下
2023-01-28

Python Paramiko模块的安装与使用详解

一、前言 常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了。而使用paramiko可以很好的解决以上问题,比起前面的方法,它
2022-06-04

详解Python编程中time模块的使用

一、简介 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的 第二种以数组的形式表示即(struct_time),共有九个元
2022-06-04

Python的io模块详解

Python的io模块提供了多个流式处理接口,具体的处理函数实现位于_pyio.py模块中。在_io.py模块中,提供了唯一的模块方法open(name, mode=None, buffering=None),但是没有read()方法。1.
2023-01-31

Python Pyperclip模块安装和使用详解

Pyperclip模块兼容python2和python3,能跨平台使用,这篇文章主要介绍了Pyperclip模块安装和使用详解,需要的朋友可以参考下
2023-03-22

详解Python使用simplejson模块解析JSON的方法

1,Json模块介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Stan
2022-06-04

Python的psutil模块详解

psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息,需要的朋友可以参考下
2023-05-18

python的logging模块详解

日志级别>>>import logging>>>logging.NOTSET0>>>logging.DEBUG10>>>logging.INFO20>>>logging.WARN30>>>logging.ERROR40>>>logging.
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录