2012-05-15 38 views
5

Ở quốc gia của tôi, nhiều trang web bị kiểm duyệt và bị chặn và thay vào đó được chuyển hướng đến một trang nhất định. Tôi không biết làm thế nào họ chính xác làm điều này. Nhưng có thể xác định theo chương trình nếu một trang web bị bị chặn hoặc không phải là bị chặn mà không tải toàn bộ nội dung? Lý do tôi muốn làm điều này là sử dụng API tìm kiếm trên web (có thể là của Google) và tạo một dịch vụ web chỉ mang lại kết quả không bị chặn.Kiểm tra chuyển hướng trang web, lập trình

Nếu nó giúp, nội dung của trang đó tải thay vì là như thế này:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256"><title>M3-5 
</title></head><body><iframe src="http://10.10.34.34?type=Invalid Site&policy=MainPolicy " style="width: 100%; height: 100%" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0"></iframe></body></html> 

Tôi hiểu rằng các máy chủ chạy dịch vụ sẽ phải có IP nước tôi.

Sẽ là tốt nhất nếu có cách để thực hiện việc này bằng PHP hoặc Python.

Tôi đánh giá cao bất kỳ trợ giúp hoặc ý tưởng nào.

+4

Nếu trang web bị chặn trả lại 301 có lẽ bạn chỉ có thể thực hiện yêu cầu HEAD và kiểm tra xem đó có phải là thông báo trạng thái 301 hay không. Nếu đó là sau đó bạn có thể kiểm tra thêm nó để xem nếu nó có chứa 'Trang web không hợp lệ'. Điều này sẽ giúp bạn tiết kiệm được tất cả các trang bỏ chặn. Một số trang web được bỏ chặn cũng sẽ có 301. – dm03514

+0

Cảm ơn. OK, tôi đã kiểm tra một vài trang bị chặn. Hầu hết trong số họ đã trả lại 301. Một trong số họ trả lại 302. Nhưng facebook.com chẳng hạn không trả lại bất kỳ thứ gì (có, facebook bị chặn ở đây!) Và flickr.com trả về 200. Bạn có bất kỳ đầu mối nào không? – Auxiliary

Trả lời

3

Điều này hoàn toàn có thể có trong cả PHP và Python. Về cơ bản, bạn muốn đưa ra yêu cầu http tới trang web được đề cập và sau đó phân tích phản hồi mà bạn nhận được. Hãy xem PHP's cURL hoặc Python's Pycurl để sắp xếp cách phát hành các yêu cầu http đó và cách xử lý câu trả lời.

Khi bạn có phản hồi lại, đó chỉ là vấn đề khớp mẫu với một số mẫu đáng tin cậy cho các trang bị chặn. Đoán đầu tiên của tôi là bạn có thể tìm kiếm <body><iframe src="http://10.10.34.34?type=Invalid Site trong phản hồi, tuy nhiên bạn sẽ phải kiểm tra nhiều trang bị chặn hơn để xem liệu tất cả chúng có bao gồm chuỗi đó hay không. Bạn có thể cần phải mở rộng kiểm tra đến một biểu thức chính quy cụ thể nếu, ví dụ, thông số IP hoặc loại truy vấn chuỗi thay đổi từ một trang web bị chặn khác.

Các vấn đề liên quan