2009-06-22 13 views
6

मैं विकिपीडिया Infoboxes को पार्स कर रहा हूँ और मैंने देखा है कि कुछ Infoboxes छवि क्षेत्रों है - इन क्षेत्रों कहीं विकिपीडिया पर रखे छवि फ़ाइलों के नाम पकड़ो। हालांकि उनमें वास्तविक फ़ाइल के विपरीत फ़ाइल का नाम शामिल है।मैं इन्फोबॉक्स से विकिपीडिया पर किसी छवि से लिंक कैसे प्राप्त करूं?

मैं वास्तविक लाइव Infoboxes और लिंक पर छवियों का लिंक की जाँच की एक स्रोत से होने लगते हैं नहीं है, लेकिन सूत्रों का कहना है बदलती हैं। मैं विकिपीडिया पर एक छवि को हाइपरलिंक कैसे कर सकता हूं क्योंकि मेरे पास केवल इन्फोबॉक्स प्रविष्टि से छवि का नाम है।

+1

क्या तुमने कभी इस सवाल का जवाब मिला ?? – rockit

उत्तर

1

आप http://en.wikipedia.org/wiki/File:filename.jpg की कोशिश की है? यहां तक ​​कि यदि फ़ाइलें विकिमीडिया कॉमन्स पर स्थित हैं, तो उपरोक्त यूआरएल अभी भी काम करना चाहिए।

संपादित करें: आप छवि hotlink करने की कोशिश कर रहे हैं? यदि ऐसा है, तो विकिपीडिया हॉटलिंकिंग को प्रतिबंधित करता है। http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

+0

वाह! मुझे नहीं पता था कि विकिपीडिया को हॉटलिंक करने के लिए इसे प्रतिबंधित किया गया था - मुझे सूचित करने के लिए धन्यवाद। मैं वास्तव में उन फ़ोटो को दिखाना चाहता हूं जिन्हें मैंने निर्यात किए गए इन्फोबॉक्स में संदर्भित किया है। मैं किसी भी तरह से इन छवियों को प्रोग्रामेटिक रूप से डाउनलोड करने का एक तरीका चाहूंगा - मैं इसे विकिपीडिया से कैसे प्राप्त करूं? – Ali

+0

पर विचार करें मैं कुछ हजार Infoboxes के आसपास है और प्रत्येक जानकारी बॉक्स 3 छवियों के लिए एक संदर्भ देता है। – Ali

+6

@Ali: पेज अब कहते हैं कि hotlinking – Casebash

12

What are the strangely named components in Wikipedia file paths के अनुसार, आपको url खोजने के लिए md5 चलाने की आवश्यकता है। अब विकिपीडिया hotlinking की अनुमति देता है, तो:

आप UTF-8 एन्कोडेड $name है, तो आप निम्न कार्य करने होंगे:

$filename = replace($name, ' ', '_'); 
$digest = md5($filename); 
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . urlencode($filename); 
$url = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder; 

ही थंबनेल के लिए इस्तेमाल किया जा सकता।

+0

Thanx अनुमति दी है, यह अच्छी तरह से काम करता है। मैंने जेएस के जवाब का अनुवाद किया है। –

+0

@Yuri Baburov http://upload.wikimedia.org/wikipedia/commons/ कुछ समय के लिए इस लिंक https://upload.wikimedia.org/wikipedia/en/7/75/Cruciblecover.jpg किसी भी विचार कैसे तय नहीं किया गया है गतिशील यूआरएल प्राप्त करें? –

0

मैंने देखा है कि यूआरएल उपसर्ग होना चाहिए:

http://upload.wikimedia.org/wikipedia/en/thumb/ 

इसके अलावा फ़ोल्डर एक आकार उपसर्ग के रूप में निर्दिष्ट के साथ फ़ाइल के बार-बार नाम होना चाहिए:

http://upload.wikimedia.org/wikipedia/en/thumb/d/dd/Ruins-imperial-complex-milan-.jpg/220px-Ruins-imperial-complex-milan-.jpg 

$filename = replace($name, ' ', '_'); 
$digest = md5($filename); 
$urlencfile = urlencode($filename) 
$imgwidth = 220 
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . $urlencfile . '/' . $imgwidth . 'px-' . $urlencfile; 
$url = 'http://upload.wikimedia.org/wikipedia/en/thumb/' . $folder; 
2

यहाँ एक जावास्क्रिप्ट कार्यान्वयन है एक काम कर रहे PHP उत्तर (यूरी बाबरोव को क्रेडिट):

var name = "filename.jpg"; 
var filename = name.replace(/ /g, "_"); 
var digest = md5(filename); 
var folder = digest[0] + '/' + digest[0] + digest[1] + '/' + encodeURIComponent(filename); 
var url = 'http://upload.wikimedia.org/wikipedia/commons/' + folder; 

ध्यान दें कि आपको अवश्य ही बाहरी md5() फ़ंक्शन (https://github.com/blueimp/JavaScript-MD5) शामिल करें; यह जेएस के मूल निवासी नहीं है।

0

आप विकिमीडिया कॉमन्स पर फ़ाइलों को जोड़ने में रुचि रखते हैं केवल, वहाँ एक आसान तरीका है - आप FilePath special page उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप फ़ाइल "Mosaic_of_the_Arctic.jpg" hotlink करना चाहते हैं, तो आप उपयोग कर सकते हैं:

https://commons.wikimedia.org/wiki/Special:FilePath/Mosaic_of_the_Arctic.jpg 

यह बहुत <img> टैग के साथ काम करता है।

संबंधित मुद्दे