2013-03-21 81 views
0

我想用urllib2或機械化(使用.read())下載一些html源代碼。不幸的是,我想要的來源是相當大的。我只是得到一個長度高達65747個字符的字符串(包含兩個庫)。剩下的尾巴不考慮。這真的讓我感到困擾,我不知道如何處理這個問題。有人可以給我一個提示嗎?使用urllib2/mechanize在python中加載html源碼

編輯:這是我使用的代碼片段。

cj = cookielib.LWPCookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 

dataHTML = "" 
fp = opener.open(url) 

while 1: 
    r = fp.read() 
    if r == '': 
     break 
    dataHTML += r 
+0

這裏是完整的解決方案:http://stackoverflow.com/questions/1824069/urllib2-not-retrieving-entire-http-response – 2013-03-21 15:26:37

+0

唯一的解決方案與urlretrieve()或readlines()(我還沒有測試過)並不令人滿意。請注意,所有其他解決方案至少不起作用。 – SpaceMonkey 2013-03-21 16:20:19

+0

此解決方案有效。我在我的Python解釋器行中運行。 http://stackoverflow.com/a/4268012/399704 – 2013-03-21 17:13:39

回答

0

你可以調用read()幾個時期:

b = '' 
while 1: 
    r = f.read() 
    if r == '':break 
    b += r 

效果更好?

+0

它仍然無法正常工作。我在上面添加了我的代碼。我使用build_opener()命令行嗎?另外我不得不承認我使用urllib2,但這不應該影響您的解決方案。 – SpaceMonkey 2013-03-21 23:31:43