首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在python3 urllib.request中禁用自动重定向?

在Python3的urllib.request模块中,可以通过设置HTTPRedirectHandler类的实例来禁用自动重定向。具体步骤如下:

  1. 导入urllib.request模块:
代码语言:txt
复制
import urllib.request
  1. 创建一个自定义的HTTPRedirectHandler子类,重写其redirect_request()方法,使其返回None,从而禁用自动重定向:
代码语言:txt
复制
class NoRedirectHandler(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        return None
  1. 创建一个自定义的urllib.request.OpenerDirector对象,将NoRedirectHandler实例添加到其处理器列表中:
代码语言:txt
复制
opener = urllib.request.build_opener(NoRedirectHandler)
  1. 使用opener对象发送请求,即可禁用自动重定向:
代码语言:txt
复制
response = opener.open(url)

完整的代码示例如下:

代码语言:txt
复制
import urllib.request

class NoRedirectHandler(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        return None

opener = urllib.request.build_opener(NoRedirectHandler)
response = opener.open(url)

这样,使用urllib.request发送的请求将不会自动重定向。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在Linux禁用ICMP和ICMPv6重定向

所述,为了能够更好的传播Linux基础知识,同时也为巩固、沉淀个人知识体系,在经过很长时间的思考后,木子决定率先开启一个专题系列《Linux基础》,其系列以Linux基础出发,:系统安装、磁盘管理、安全配置...今天我们将学习如何在Linux服务器上禁用ICMP和ICMPv6重定向。ICMP重定向功能在路由器上使用,因此,如果您的Linux服务器未充当路由器,那么作为一般的安全实践,建议禁用重定向。...即使您的Linux服务器充当并打开了路由转发功能,您也可以使用内核参数(sysctl)有选择的禁用某些接口上的ICMP重定向。...在所有接口上禁用ICMP重定向: net.ipv4.conf.all.accept_redirects = 0 仅禁用eth0接口上的ICMP重定向: net.ipv4.conf.all.accept_redirects...在生产环境,这些是增强单台Linux服务器安全性的基本标准。对于IPv6,如果您不在环境中使用IPv6,也可以完全禁用它。

4.6K40

python的urllib模块的方法

(3)parse会解析url 下面讨论的是request urllib.request模块定义了一些打开URLs(一般是HTTP协议)复杂操作像是basic 和摘要模式认证,重定向,cookies等的方法和类...r.addunredirectedheader(key,val) 作用基本同上,但不会添加到重定向请求。 r.set_proxy(host, type) 准备请求到服务器。...在Python 3以后的版本,urllib2这个模块已经不单独存在(也就是说当你import urllib2时,系统提示你没这个模块),urllib2被合并到了urllib,叫做urllib.request.../usr/bin/env python3 import urllib.request req = urllib.request.Request('http://www.111cn.net ') try:...list的tag,: find(['head', 'body']) find(dict)       # 搜索在dict的tag,:find({'head':True, 'body':True}

2.1K10

使用 Python 爬取网页数据

解析库, 可以编写出用于采集网络数据的大型爬虫; 注: 示例代码使用Python3编写; urllib 是 Python2 urllib 和 urllib2 两个库合并而来, Python2 的...urllib2 对应 Python3urllib.request 简单的示例: import urllib.request # 引入urllib.request...伪造请求头信息 有时爬虫发起的请求会被服务器拒绝, 这时就需要将爬虫伪装成人类用户的浏览器, 这通常通过伪造请求头信息实现, : import urllib.request head = {} head...的请求, 观察数据可以发现请求主体的 ‘ i ‘ 为经过 URL 编码的需要翻译的内容, 因此可以伪造请求主体, : import urllib.request import urllib.parse...UTF-8 编码, 但有时候会遇到使用其他编码方式的网页, 因此必须知道网页的编码方式才能正确的对爬取的页面进行解码; chardet 是 python 的一个第三方模块, 使用 chardet 可以自动检测网页的编码方式

1.5K10

使用 Python 爬取网页数据

使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML...解析库, 可以编写出用于采集网络数据的大型爬虫; 注: 示例代码使用Python3编写; urllib 是 Python2 urllib 和 urllib2 两个库合并而来, Python2 的...urllib2 对应 Python3urllib.request 简单的示例: ?...的请求, 观察数据可以发现请求主体的 ‘ i ‘ 为经过 URL 编码的需要翻译的内容, 因此可以伪造请求主体, : ?...UTF-8 编码, 但有时候会遇到使用其他编码方式的网页, 因此必须知道网页的编码方式才能正确的对爬取的页面进行解码; chardet 是 python 的一个第三方模块, 使用 chardet 可以自动检测网页的编码方式

1.7K30

快速入门网络爬虫系列 Chapter03 | 抓取网页

二、常用的获取网页数据的方式 URLlib URLlib.request requests库(最常用) 1、urllib.request urllib.request是Python标准库之一,是urllib...1.5、cookie 网站使用Cookie保存用户的浏览信息,会话ID,上次访问的状态等。...不仅如此,我们或得的response非常强大,可以直接得到很多信息,并且response的内容不是一次性的,requests自动将响应的内容read出来,保存在text变量,你想读取多少次就读多少次...通常我们最常用的功能就是查看一个元素的源码,点击左上角的元素定位器,就可以选择网页的不同元素,HTML源码区就会自动显示指定元素的源码,通常CSS显示区也会显示这个元素应用的样式。...实际应用,大多数网站都有反爬虫策略,响应状态码代表了服务器的处理结果,是我们调整爬虫抓取状态(频率、ip)的重要参考。

59420

python3 成长之路(1) 动力才是

工具 到底怎么去学python urllib包 写一个get接口方法 1.怎么下载python3 下载python3 这个很多人百度一下都OK 但是 懵逼的是那么多连接到底怎么选择?...对于这种学习方法 100%拥护 但是就是因为基础这东西 学着学着就没了兴趣 才发现自己离目标越来越远 好吧  既然有目的 所以 还是从目的的角度出发学习 所以在这里 本人直接pass里基本语言  直接由浅深的学习爬虫技术... urllib2和urllib已经2合一了,所以光导这两个包 是不够了 变换一下 urllib.request data = urllib.request.urlopen("http://www.baidu.com...read():返回内容 说白了就是将返回内容赋值给url这个变量 额外说一下 python的变量是不用写类型的  人家是自动默认类型 那么想在控制台看到 就需要输出语句 (data) OK完事,运行看一下...因为python 3的str类型对象有点像Python 2的unicode, 而decode是将str转为unicode编码,所以str仅有一个encode方法,调用这个方法后将产生一个编码后的byte

50120

专栏:004:网页下载器的使用

(automatic indexer),或者(在FOAF软件概念)网络疾走(WEB scutter),是一种“自动化浏览网络”的程序,或者说是一种网络机器人。...:http://www.jianshu.com/collection/dfcf1390085c 网络爬虫就是根据这些URL获取网页信息,再对获取到的网页源代码进行解析出所需要的信息。...3:urllib 库的使用简介 python2 和 python3使用这个库的方法不一样,具体参考文档说明 在python3,urllib模块被拆分为urllib.request,urllib.parse...和urllib.error 以python3 为例,别问我为什么使用python3, 遇到编码问题你就懂我的好了。...2xx成功 3xx重定向 4xx客户端错误 5xx服务器错误 # -*- coding:utf-8 -*- # To: learn module # Date:2016.04.28 # Author

71130

32行代码实现微信聊天机器人

在代码运行前cmd里运行pip install itchat即可自动下载安装这个库。...申请完后,只需从设置里查看调用地址和口令就可以: 好了,程序跑起来了,我们回头分享一点知识上的干货: 一、urllib.requesturllib.request库是Python3对Python2...经过对比,推荐还没有开始玩Python的小伙伴直接用Python3系列,里面有很多优化。urllib.reques.Request函数用来构造请求,比如制定相应时间、浏览器支持、是否带cookie等。...这是Web上大家约定俗成的一种轻量级的数据返回方式,格式dic={"键1":值1, "键2":值2, "键3":值3......}。...,有人发一个点赞表情,图灵机器人回复的{"code":100000,"text":"一般一般,天下第三"},就可以用r["text"]进行访问。

2.3K60

Python3 标准库概览

本文基于以下教程: http://www.runoob.com/python3/python3-stdlib.html 笔记内容:Python3 标准库概览 笔记日期:2017-11-27 ---- Python3 标准库概览 操作系统接口 文件通配符 获得脚本参数 错误输出重定向和程序终止 字符串正则匹配 数学 访问互联网 日期和时间 数据压缩 性能度量 测试模块 操作系统接口...---- sys 还有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息,类似于java的out和err。...其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib: >>> from urllib.request import urlopen...20, 30, 70])) # 40.0 return sum(values) / len(values) import doctest doctest.testmod() # 自动验证嵌入测试

68820

Python爬虫核心模块urllib的学习

urllib2这个模块已经不单独存在(也就是说当你import urllib2时,系统提示你没这个模块),urllib2被合并到了urllib,叫做urllib.request 和 urllib.error...打开和浏览url内容 urllib.error包含从 urllib.request发生的错误或异常 urllib.parse解析url urllib.robotparser...urllib.request模块定义了方法和类,帮助打开url(主要是HTTP)在一个复杂的世界——基本和摘要式身份验证,重定向,cookies等等。...,标题,组成 email.message_from_string(的)实例(见快速参考HTTP头) getcode()——返回响应的HTTP状态代码。...此外,如果检测到代理设置(例如,当一个 *_proxy环境变量http_proxy已经被设定),,ProxyHandler默认安装并确保请求都通过代理来处理。

78350
领券