我擁有大量的url或域,我想確定它們是否執行重定向到不同的域。如何檢查重定向是否導致不同的域
當我檢查狀態碼302時,我可以找出哪些是重定向。但是,其中一些只執行從somedomain.com
到somedomain.com/somename.php
的重定向,而我需要的則是從somedomain.com
到otherdomain.com
重定向的那些。
我正在使用Python和請求庫,當涉及到編程語言時,我的知識有限。如果你有一個想法,特別需要我使用不同的語言,我想我可以弄明白。
我擁有大量的url或域,我想確定它們是否執行重定向到不同的域。如何檢查重定向是否導致不同的域
當我檢查狀態碼302時,我可以找出哪些是重定向。但是,其中一些只執行從somedomain.com
到somedomain.com/somename.php
的重定向,而我需要的則是從somedomain.com
到otherdomain.com
重定向的那些。
我正在使用Python和請求庫,當涉及到編程語言時,我的知識有限。如果你有一個想法,特別需要我使用不同的語言,我想我可以弄明白。
如果您使用的是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
將是一個空列表。
這不適合我。 例如: 以下URL'http:// mkc.mk'會導致'http://mkc.mk/?lang = en'。這被視爲重定向,並使用您的代碼不返回空列表。但是,網站的實際域名仍然是「http:// mkc.mk」。 我試圖確定重定向是否導致不同的域 – user2980055
我的代碼只列出所有重定向。你需要自己檢查域名。 –
你的意思是你想檢測重定向到不同的域名?如果是這樣,則解析這兩個URL(請參閱[urlparse](https://docs.python.org/2/library/urlparse.html))並檢查其域是否不同。 – jweyrich
如果HTTP 200返回並且頁面在瀏覽器中重定向,那麼在頁面內使用http-equiv =「refresh」或JavaScript。你需要解析出前者,併爲後者使用無頭瀏覽器。 (這與DNS無關) –
@jweyrich所以這個想法是解析我輸入的URL和我重定向到的URL,並檢查重定向是否導致不同的域? – user2980055