2015-06-08 38 views
0

我擁有大量的url或域,我想確定它們是否執行重定向到不同的域。如何檢查重定向是否導致不同的域

當我檢查狀態碼302時,我可以找出哪些是重定向。但是,其中一些只執行從somedomain.comsomedomain.com/somename.php的重定向,而我需要的則是從somedomain.comotherdomain.com重定向的那些。

我正在使用Python和請求庫,當涉及到編程語言時,我的知識有限。如果你有一個想法,特別需要我使用不同的語言,我想我可以弄明白。

+0

你的意思是你想檢測重定向到不同的域名?如果是這樣,則解析這兩個URL(請參閱[urlparse](https://docs.python.org/2/library/urlparse.html))並檢查其域是否不同。 – jweyrich

+0

如果HTTP 200返回並且頁面在瀏覽器中重定向,那麼在頁面內使用http-equiv =「refresh」或JavaScript。你需要解析出前者,併爲後者使用無頭瀏覽器。 (這與DNS無關) –

+0

@jweyrich所以這個想法是解析我輸入的URL和我重定向到的URL,並檢查重定向是否導致不同的域? – user2980055

回答

1

如果您使用的是python-requests,則可以使用request.history獲取除最後一跳之外的所有重定向,而最終跳轉將在request.url中提供。例如:

r = requests.get("http://go.microsoft.com/fwlink/?linkid=99104") 
for h in r.history: 
    print h.url 
print r.url 

http://go.microsoft.com/fwlink/?linkid=99104 
http://office.microsoft.com/en-us/word/HA100319991033.aspx 
https://support.office.com/en-us/article/HA100319991?CorrelationId=f32d077d-1c5b-4d12-ba24-8c500f36c5d1 

如果沒有重定向,然後request.history將是一個空列表。

+0

這不適合我。 例如: 以下URL'http:// mkc.mk'會導致'http://mkc.mk/?lang = en'。這被視爲重定向,並使用您的代碼不返回空列表。但是,網站的實際域名仍然是「http:// mkc.mk」。 我試圖確定重定向是否導致不同的域 – user2980055

+0

我的代碼只列出所有重定向。你需要自己檢查域名。 –

相關問題