मैं आपकी सहायता कर सकता हूं। यह वास्तव में मुश्किल नहीं है।
open("http://...", :http_basic_authentication=>[user, password])
और यदि आप पार्स करना चाहते हैं तो आप मेरे क्रॉलर को भी अनुकूलित कर सकते हैं। यहां मुख्य विधि है।
require "open-uri"
require "zlib"
SHINSO_HEADERS = {
'Accept' => '*/*',
'Accept-Charset' => 'utf-8, windows-1251;q=0.7, *;q=0.6',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Language' => 'bg-BG, bg;q=0.8, en;q=0.7, *;q=0.6',
'Connection' => 'keep-alive',
'Cookie' => '',
'From' => '[email protected]',
'Referer' => 'http://svejo.net/',
'User-Agent' => 'Your user agent'
}
def crawl(url_address)
self.errors = Array.new
begin
begin
url_address = URI.parse(url_address)
rescue URI::InvalidURIError
url_address = URI.decode(url_address)
url_address = URI.encode(url_address)
url_address = URI.parse(url_address)
end
url_address.normalize!
stream = ""
timeout(8) { stream = url_address.open(SHINSO_HEADERS) }
if stream.size > 0
url_crawled = URI.parse(stream.base_uri.to_s)
else
self.errors << "Server said status 200 OK but document file is zero bytes."
return
end
rescue Exception => exception
self.errors << exception
return
end
end
url_crawled क्या आप अंत में की जरूरत है।
परीक्षण के लिए इस पते का उपयोग करने का प्रयास करें। https://developer.mozilla.org/en-US/docs/HTTP_access_control
यदि आपको अभी भी एक त्रुटि का अनुभव होता है तो आपका सर्वर सही तरीके से कॉन्फ़िगर नहीं किया जा सकता है, प्रमाण पत्र के अनुसार और आपको इसे देखना चाहिए।
और यदि आप पार्सिंग के बारे में गंभीर हैं तो संबंधित संबंधित नोट पर आप सामग्री को पढ़ने के लिए Charguess मणि और ज़्लिब का उपयोग करने पर विचार कर सकते हैं और फिर समस्याग्रस्त लोगों को Iconv के साथ परिवर्तित कर सकते हैं। यहाँ एक उदाहरण है।
if stream.content_encoding.include?('gzip')
document = Zlib::GzipReader.new(stream).read
elsif stream.content_encoding.include?('deflate')
document = Zlib::Deflate.new().deflate(stream).read
#elsif stream.content_encoding.include?('x-gzip') or
#elsif stream.content_encoding.include?('compress')
else
document = stream.read
end
self.charset_guess = CharGuess.guess(document)
फिर सामग्री पर Iconv का उपयोग करें।
उम्मीद है कि यह आपकी मदद करता है।
सादर, यावोर
धन्यवाद मैं इसे आजमाउंगा! – Symba
नेट/http https का समर्थन करता है, लेकिन आपको अनुरोध पर उपयोग_एसएसएल ध्वज सेट करने की आवश्यकता है –
धन्यवाद फ्रेडरिक। उस बिट को अभी हटा दिया। –