tl; dr:錯誤配置的ASP.NET MVC服務器在應該404時返回「200 OK」。如何確定「200 OK」是否是錯誤配置的ASP.NET MVC自定義404頁面?
我正在建造a list of tech employeer career page links。我很沮喪地發現這樣的公司在他們的網站上列出了公開的職位是很常見的,但他們沒有任何關聯。也就是說,如果您訪問www.example.com,有時在整個網站上沒有任何地方可以找到www.example.com/jobs的鏈接。
爲了解決這個問題,手動建立索引後幾百點,我做了通用的URL路徑列表:
/careers
/careers/
/careers.html
/jobs.aspx
我寫了一個簡單的Python腳本,當給予公司主頁的列表,使用pycurl - 圍繞libcurl的包裝 - 嘗試HTTP HEAD請求對於每個(主頁,urlpath)對:
http://www.example.com/careers
http://www.example.com/jobs
http://www.example.net/careers
http://www.example.net/jobs
This主要是作品。
但是,我收集的是ASP.NET MVC常見的配置錯誤問題,導致自定義404頁面在顯示自定義「未找到」頁面時產生200響應代碼。例如
http://www.microsoft.com/bill-gates-is-the-spawn-of-satan.html
是的,這是正確的人:微軟錯誤配置了自己的服務器。 :-D
如果您使用Firefox的網頁開發工具,您可以看到上面的鏈接產生200 OK而不是404 Not Found。
我認爲這是一個普遍的問題,任何人誰處理刮或機器人:有沒有一個簡單的編程方式,我可以告訴上述鏈接應該產生404而不是200?
在我的特殊情況下,一個不太令人滿意的解決方案是注意我的鏈接都沒有產生404s,然後產生「無法找到」輸出。在這種情況下,我手動谷歌的職業生涯網頁:
http://www.google.com/search?q=site:microsoft.com+careers
我在近期的目標是部分自動化爲我的技術指標僱主的聯繫的發現。我預計完全自動化它將是可解的;我希望自動化簡單的東西。
我無法重現您的Microsoft示例。我嘗試了curl,chrome和firefox,並且所有人都返回了404狀態。你可能會在你的Python腳本中有一些錯誤嗎? – lagerone
對於我來說,'curl -i http:// www.microsoft.com/bill-gates-is-a-philanthropist.html'給出了一個'HTTP/1.1 200 OK',包括'
也許它與用戶代理有關。我會更詳細地研究它。 –