นี่เป็นคำตอบที่ล่าช้า แต่เพื่อความสมบูรณ์: มันค่อนข้างยากที่จะดึง Favicons ทั้งหมดเข้าใกล้ถึง 90%
เมื่อไม่นานมานี้ฉันเขียนปลั๊กอิน WordPress: http://wordpress.org/extend/plugins/wp-favicons/ซึ่งพยายามเข้าใกล้
ก. มันเริ่มต้นด้วยการดูที่เก็บ favicon เช่น google favicons, getfavicons ฯลฯ ...
ข. หากไม่มีไอคอนใดส่งคืนไอคอน (ฉันตรวจสอบสิ่งนี้โดยจับคู่กับไอคอนเริ่มต้นที่พวกเขาส่งคืน) ฉันเริ่มต้นด้วยการพยายามรับไอคอนด้วยตัวเอง
ค. สิ่งนี้เกี่ยวข้องกับการข้ามหน้าเว็บ แต่ยังตรวจสอบการเปลี่ยนเส้นทางด้วย NO autoredirect เช่นเดียวกับการข้ามผ่าน 404 เพราะอาจมีไอคอนอยู่ใน 404 ในท้ายที่สุดหมายความว่าคุณจะต้องแยกวิเคราะห์การเปลี่ยนเส้นทางในส่วนหัว html เช่นเดียวกับการเปลี่ยนเส้นทางจาวาสคริปต์เพื่อให้เข้าใกล้ 100% มากขึ้น
ง. หลังจากนั้นฉันทำการตรวจสอบไฟล์ภาพทางกายภาพเพราะบางครั้งในบางเซิร์ฟเวอร์ (ฉันทดสอบมากกว่า 300.000+ ไฟล์) ได้รับการส่งคืนด้วยประเภท mime ที่ไม่ถูกต้องเป็นต้น
โค้ดยังไม่สมบูรณ์แบบเพราะในรายละเอียดมันบ้ามากคุณจะพบกับสถานการณ์แปลก ๆ มากมาย: ผู้คนมีเส้นทางที่เข้ารหัสผิด (img / favicon.ico โดยที่ img ไม่ได้อยู่ในรูท) ส่วนหัวที่ซ้ำกันในเอาต์พุต html การตอบสนองของเซิร์ฟเวอร์ที่แตกต่างกัน จากศีรษะและลำตัว ฯลฯ ...
แกนหลักของส่วนที่ดึงข้อมูลอยู่ที่นี่: http://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.phpเพื่อให้คุณสามารถทำวิศวกรรมย้อนกลับได้ แต่โปรดทราบว่าการตรวจสอบการตอบสนองควร ทำได้จริงๆ (ตรวจสอบประเภทไฟล์ภาพละครใบ้ ฯลฯ .. )