Ⅰ 利用python 来重定向网页
>>> import http.client
>>> conn = http.client.HTTPConnection("www.python.org")
>>> conn.request("GET", "/index.html")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
正常的是200
跳转的是30X
错误的是40X
Python 3.1实现。
你问的问题是什么意思?不是检测url是否跳转吗?
Ⅱ python requests怎么设置重定向
class FakeOut:
def __init__(self):
self.str=''
self.n=0
def write(self,s):
self.str+="Out:[%s] %s\n"%(self.n,s)
self.n+=1
def show(self): #显示函数,非必须
print self.str
def clear(self): #清空函数,非必须
self.str=''
self.n=0
f=FakeOut()
import sys
old=sys.stdout
sys.stdout=f
print 'Hello weird.'
print 'Hello weird too.'
sys.stdout=old
f.show()
# 输出:
# Out:[0] Hello weird.
# Out:[1]
# Out:[2] Hello weird too.
# Out:[3]
Ⅲ python post 请求重定向怎么办
重定向与请求历史
默认情况下,除了 HEAD, Requests会自动处理所有重定向。
可以使用响应对象的 history 方法来追踪重定向。
Response.history 是一个:class:Response <requests.Response> 对象的列表,为了完成请求而创建了这些对象。
这个对象列表按照从最老到最近的请求进行排序。
例如,Github将所有的HTTP请求重定向到HTTPS。:
r = requests.get('')
r.url
r.status_code
r.history
如果你使用的是GET, OPTIONS, POST, PUT, PATCH 或者 DELETE,,那么你可以通过allow_redirects 参数禁用重定向处理:
r = requests.get('', allow_redirects=False)
r.status_code
r.history
如果你使用的是HEAD,你也可以启用重定向:
r = requests.head('', allow_redirects=True)
r.url
r.history
Ⅳ python怎么样让输出重定向
f=open('a.txt','w')
importsys
old=sys.stdout#将当前系统输出储存到一个临时变量中
sys.stdout=f#输出重定向到文件
print'Helloweird'#测试一个打印输出
sys.stdout=old#还原原系统输出
f.close()
printopen('a.txt','r').read()
以上是重定向到一个文件。
同样可以自行编写一个类,这个类只要有write函数,以模拟file类型就可以将系统输出重定向到其上。
classFakeOut:
def__init__(self):
self.str=''
self.n=0
defwrite(self,s):
self.str+="Out:[%s]%s "%(self.n,s)
self.n+=1
defshow(self):#显示函数,非必须
printself.str
defclear(self):#清空函数,非必须
self.str=''
self.n=0
f=FakeOut()
importsys
old=sys.stdout
sys.stdout=f
print'Helloweird.'
print'Helloweirdtoo.'
sys.stdout=old
f.show()
#输出:
#Out:[0]Helloweird.
#Out:[1]
#Out:[2]Helloweirdtoo.
#Out:[3]
Ⅳ python 爬网页 遇到重定向怎么处理
停止条件,这个你懂的,并重复上述过程,不断从当前页面上抽取新的URL放入队列.request模拟构建一个带cookies的浏览器。
2,先到微博登陆页面模拟登录,用来抓取微博内容,其实可以使用urllib、现有的项目
google project网站有一个项目叫做sinawler1,可以找到一个参考的源码,从页面中找出所有URL,代码可以更加简短,获得初始网页上的URL、策略体系,省去对cookies的处理。
3。然后,抓取页面,选择满足要求的URL文本说明,直到满足要求退出,里面很多比较深入的内容。聚焦爬虫的工作流程较为复杂。网站上不去,比如算法分析,直到达到系统的某一条件时停止,就是专门的新浪微博爬虫。
4,需要根据一定的网页分析算法过滤与主题无关的链接,他是用python2写的,从理论角度提升代码的技术层次,保留有用的链接并将其放入等待抓取的URL队列。不过可以网络一下“python编写的新浪微博爬虫(现在的登陆方法见新的一则微博)“、网络爬虫基本原理
传统爬虫从一个或若干初始网页的URL开始。如果用python3写、设计基本思路
正如你所说,重复上面的抓取动作,模拟点击这些URL,它将根
据一定的搜索策略从队列中选择下一步要抓取的网页URL,会大有帮助
Ⅵ python requests库如何处理302重定向
你的意思是希望requests报告302?
r = requests.get(url, allow_redirects=False)
r.status_code
r.headers['Location']
Ⅶ python中输出重定向是什么意思。
就是把输出的设备换为另外一个!
Ⅷ python 网页重定向
>>> import http.client
>>> conn = http.client.HTTPConnection("www.python.org")
>>> conn.request("GET", "/index.html")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
正常的是200
跳转的是30X
错误的是40X
Python 3.1实现。
Ⅸ 关于python的输出重定向
判断是否有argv
>>>importsys
>>>printsys.argv
['']
比如假如你的脚本: cmd [-i file] 这样子的. 那么判断是否传递了 file 这个参数, 有么就打开文件, 没有就从stdin/stdout里读写.
Ⅹ python怎么重定向输入
控制台重定向
最简单常用的输出重定向方式是利用控制台命令。这种重定向由控制台完成,而与Python本身无关。
Windows命令提示符(cmd.exe)和Linux Shell(bash等)均通过">"或">>"将输出重定向。其中,">"表示覆盖内容,">>"表示追加内容。类似地,"2>"可重定向标准错误。重定向到"nul"(Windows)或"/dev/null"(Linux)会抑制输出,既不屏显也不存盘。
以Windows命令提示符为例,将Python脚本输出重定向到文件(为缩短篇幅已删除命令间空行):
E:\>echo print 'hello' > test.py
E:\>test.py > out.txt
E:\>type out.txt
hello
E:\>test.py >> out.txt
E:\>type out.txt
hello
hello
E:\>test.py > nul
注意,在Windows命令提示符中执行Python脚本时,命令行无需以"python"开头,系统会根据脚本后缀自动调用Python解释器。此外,type命令可直接显示文本文件的内容,类似Linux系统的cat命令。
Linux Shell中执行Python脚本时,命令行应以"python"开头。除">"或">>"重定向外,还可使用tee命令。该命令可将内容同时输出到终端屏幕和(多个)文件中,"-a"选项表示追加写入,否则覆盖写入。示例如下(echo $SHELL或echo $0显示当前所使用的Shell):
[wangxiaoyuan_@localhost ~]$ echo $SHELL
/bin/bash
[wangxiaoyuan_@localhost ~]$ python -c "print 'hello'"
hello
[wangxiaoyuan_@localhost ~]$ python -c "print 'hello'" > out.txt
[wangxiaoyuan_@localhost ~]$ cat out.txt
hello
[wangxiaoyuan_@localhost ~]$ python -c "print 'world'" >> out.txt
[wangxiaoyuan_@localhost ~]$ cat out.txt
hello
world
[wangxiaoyuan_@localhost ~]$ python -c "print 'I am'" | tee out.txt
I am
[wangxiaoyuan_@localhost ~]$ python -c "print 'xywang'" | tee -a out.txt
xywang
[wangxiaoyuan_@localhost ~]$ cat out.txt
I am
xywang
[wangxiaoyuan_@localhost ~]$ python -c "print 'hello'" > /dev/null
[wangxiaoyuan_@localhost ~]$
若仅仅想要将脚本输出保存到文件中,也可直接借助会话窗口的日志抓取功能。
注意,控制台重定向的影响是全局性的,仅适用于比较简单的输出任务。