Ⅰ 利用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 ~]$
若僅僅想要將腳本輸出保存到文件中,也可直接藉助會話窗口的日誌抓取功能。
注意,控制台重定向的影響是全局性的,僅適用於比較簡單的輸出任務。