मैं हमने पाया है कि जब तक phantomjs थोड़ा परिपक्व नहीं हो जाता है, इस मुद्दे के अनुसार 158 http://code.google.com/p/phantomjs/issues/detail?id=158 यह उनके लिए सिरदर्द का थोड़ा सा है।
तो क्या आप इसे वैसे भी करना चाहते हैं? मैं यह पूरा करने के एक सा उच्च जाने के लिए निकल चुके हैं और PyMiProxy, https://github.com/allfro/pymiproxy पर अधिक पकड़ लिया है डाउनलोड किया है, स्थापित है, इसे सेट अप, उनके उदाहरण कोड लिया और
from miproxy.proxy import RequestInterceptorPlugin, ResponseInterceptorPlugin, AsyncMitmProxy
from mimetools import Message
from StringIO import StringIO
class DebugInterceptor(RequestInterceptorPlugin, ResponseInterceptorPlugin):
def do_request(self, data):
data = data.replace('Accept-Encoding: gzip\r\n', 'Accept-Encoding:\r\n', 1);
return data
def do_response(self, data):
#print '<< %s' % repr(data[:100])
request_line, headers_alone = data.split('\r\n', 1)
headers = Message(StringIO(headers_alone))
print "Content type: %s" %(headers['content-type'])
if headers['content-type'] == 'text/x-comma-separated-values':
f = open('data.csv', 'w')
f.write(data)
print ''
return data
if __name__ == '__main__':
proxy = AsyncMitmProxy()
proxy.register_interceptor(DebugInterceptor)
try:
proxy.serve_forever()
except KeyboardInterrupt:
proxy.server_close()
तो मैं यह आग proxy.py में बनाया ऊपर
python proxy.py
अगला मैं प्रॉक्सी निर्दिष्ट साथ phantomjs पर अमल ...
phantomjs --ignore-ssl-errors=yes --cookies-file=cookies.txt --proxy=127.0.0.1:8080 --web-security=no myfile.js
आप पर या फिर अपने सुरक्षा चालू करने के लिए चाहते हो सकता है, यह वर्तमान में मेरे लिए अनावश्यक मैं के रूप में था मी सिर्फ एक स्रोत scraping। अब आपको अपने प्रॉक्सी कंसोल के माध्यम से बहने वाले पाठ का एक गुच्छा देखना चाहिए और यदि यह "टेक्स्ट/एक्स-कॉमा-सेपर-वैल्यू" के माइम प्रकार के साथ कुछ पर उतरता है तो यह इसे data.csv के रूप में सहेज लेगा। यह सभी शीर्षकों और सब कुछ को भी बचाएगा, लेकिन यदि आप अभी तक आ चुके हैं तो मुझे यकीन है कि आप यह समझ सकते हैं कि उन्हें कैसे पॉप अप करना है।
एक अन्य विवरण, मैंने पाया है कि मुझे gzip एन्कोडिंग को अक्षम करना पड़ा है, मैं अपने स्वयं के अपाचे वेबसर्वर से gzip में डेटा को डीएलआईपी और डिकंप्रेस कर सकता हूं, लेकिन यदि यह आईआईएस से बाहर आता है या ऐसा डिकंप्रेशन मिल जाएगा त्रुटियां और मैं इसके उस हिस्से के बारे में निश्चित नहीं हूं।
तो मेरी पावर कंपनी मुझे एक एपीआई नहीं देगी? ठीक! हम इसे कठिन तरीका करते हैं!
धन्यवाद निको, और मुझे लगता है कि मैं स्पष्ट नहीं था, लेकिन मैं अन्य सभी संसाधनों की तलाश में हूं, न कि HTML पृष्ठ। मैं बाहरी सीएसएस या जेएस फ़ाइल को एक var में संग्रहीत करना चाहता हूं, इन संसाधनों की सामग्री, क्या यह संभव है? – iwek
बस सुनिश्चित करें कि आपने प्रोटोकॉल को सही (यानी http बनाम https) सेट किया है .. मुझे उस साइट को समझने में थोड़ी देर लग गई थी जिसे मैं खोलने की कोशिश कर रहा था http से https तक रीडायरेक्ट कर रहा था .. और वह दबा हुआ कैस्परजेस (बग?) – abbood
@ iwek इस लिंक को डिस्क पर संसाधन को सहेजने के बारे में और जानने के लिए देखें: http://stackoverflow.com/questions/24582307/how-to-save-the-current-webpage-with-casperjs-phantomjs जैसा कि http द्वारा उत्तर दिया गया है: //stackoverflow.com/users/1816580/artjom-b – iChux