2012-05-16 14 views
5

के माध्यम से किसी दिए गए यूआरएल से एक हैर फ़ाइल उत्पन्न करने के लिए विस्तृत प्रक्रिया क्या कोई सलाह दे सकता है कि लिनक्स में कमांड लाइन के माध्यम से यूआरएल से एक हार्ड फ़ाइल कैसे उत्पन्न करें? इस्तेमाल किए गए विस्तृत उपकरण और दिशानिर्देशों की बहुत सराहना की जाती है।कमांड लाइन उपकरण

धन्यवाद

उत्तर

2

मैं PhantomJS HAR फ़ाइलों का निर्माण करने के साथ काम किया है, लेकिन वे वास्तव में विश्वसनीय के रूप में क्रोम, फायरफॉक्स की तरह वास्तविक ब्राउज़रों द्वारा उत्पन्न HAR फ़ाइलों के लिए विरोध नहीं कर रहे हैं पर एक नज़र डालें।

from browsermobproxy import Server 
from selenium import webdriver 
import json 

server = Server("path/to/browsermob-proxy") 
server.start() 
proxy = server.create_proxy() 
profile = webdriver.FirefoxProfile() 
profile.set_proxy(self.proxy.selenium_proxy()) 
driver = webdriver.Firefox(firefox_profile=profile) 
proxy.new_har("http://stackoverflow.com", options={'captureHeaders': True}) 
driver.get("http://stackoverflow.com")  
result = json.dumps(proxy.har, ensure_ascii=False) 
print result 
proxy.stop()  
driver.quit() 

आप देख रहे हैं एक कमांड लाइन उपकरण है जो headlessly HAR और क्रोम और Firefox के साथ प्रदर्शन डेटा उत्पन्न करने के लिए, है: सेलेनियम और BrowsermobProxy का उपयोग करके आप इस जैसे एक अजगर स्क्रिप्ट के साथ ब्राउज़र से सीधे HAR फ़ाइलें उत्पन्न कर सकते हैं Speedprofile पर एक नज़र डालें।

+0

सुपर विश्वसनीय नहीं किया जा रहा PhantomJs के लिए +1 करने के लिए चार संपत्ति फ़ाइलों को प्राप्त करने से चला गया, यह गैर मिशन के लिए महत्वपूर्ण सामान के लिए बहुत अच्छा है, लेकिन दुर्घटना जाता है बदसूरत मार्कअप के साथ साइटों पर। – siliconrockstar

1

फैंटोमज की हर फाइलें संपत्ति की संक्षिप्त सूची हैं। दूसरे शब्दों में, जब आप क्रोम या किसी अन्य ब्राउज़र के साथ किसी वेब पेज पर जाते हैं, तो फ़ाइलों को कुछ सेकंड की अवधि में लोड किया जाता है।

लेकिन सभी संपत्तियों के पास लोड होने का समय होने से पहले, फ़ैंटोमज उस वेबसाइट का तात्कालिक स्नैपशॉट लेता है।

यह भी डेटा और छवि फ़ाइलों को शामिल नहीं

आप netsniff.js उदाहरण फ़ाइल को संशोधित करके इस के आसपास काम कर सकते हैं (क्योंकि वे हर कल्पना का हिस्सा नहीं हैं)।

मैंने उस परियोजना को फोर्क किया है और नीचे दिए गए लिंक पर उन संशोधनों को बनाया है। कृपया ध्यान दें कि मैंने बार उत्पन्न करने से पहले 20 सेकंड प्रतीक्षा करने के लिए टाइमर सेट किया है। मैंने जेएस त्रुटियों को अनदेखा करने के लिए कुछ त्रुटि प्रबंधन भी जोड़ा है। एरर हैंडलिंग बिट को अवांछित हर फाइल बनाने के लिए phantomjs से निपटने के लिए जोड़ा गया था, अगर उसे कोई त्रुटि आई। (मैंने उस फ़ंक्शन पर भी टिप्पणी की जिसमें डेटा/छवि फ़ाइलों को शामिल नहीं किया गया है)

तो यह वही नहीं हो सकता है जो आप चाहते हैं। लेकिन यह आपके लिए या किसी और के लिए phantomjs का उपयोग करने के लिए एक प्रारंभिक बिंदु है।

इन परिवर्तनों के बाद, मैं लगातार बारे में 25.

https://github.com/associatedpress/phantomjs/blob/netsniff-timer/examples/netsniff.js

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