2014-01-06 67 views
0

我想用urllib2請求頁面的像這樣的內容:蟒蛇urllib而取

http://www.google.com/key?=AqIkNRT0ZoH2c5E6u4Lu&access=lawrence

我的Python代碼至今:

for key in keysfile.readlines(): 
    host="http://www.google.com/key?=%s&access=%s"%(key,access) 
    reg = urllib2.Request(host) 
    response = urllib2.urlopen(reg) 
    check = response.read() 
    print(check) 

但問題發生我覺得有什麼不對

+1

哪些問題?你得到哪個錯誤? – maurelio79

+0

你可以使用請求庫。 – Back2Basics

+0

看起來'?'和'key'在url中被交換。一般來說,您應該對查詢部分進行urlencode編碼,例如'url ='http://example.com/?' + urlencode(key = key,access = access))' – jfs

回答

1

我寫了一個教程就這個問題在一年前:

可以使用的urllib或真棒requests包。

這裏有幾個例子:

import urllib 
import urllib2 
import requests 

url = 'http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip' 

print "downloading with urllib" 
urllib.urlretrieve(url, "code.zip") 

print "downloading with urllib2" 
f = urllib2.urlopen(url) 
data = f.read() 
with open("code2.zip", "wb") as code: 
    code.write(data) 

print "downloading with requests" 
r = requests.get(url) 
with open("code3.zip", "wb") as code: 
    code.write(r.content) 
+0

你可以使用'shutil.copyfileobj(f,code)'來避免加載(可能是大文件到內存中)。 – jfs

+0

是啊......或者你可以使用一個循環並一次讀取幾個字節,直到完全下載。 –