ノートネットワークデータキャプチャ--爬虫類(二)
1673 ワード
次にtraditional wayを記述するとUnboundLocalError:local variable'chunk'referenced before assignmentが表示されます
コードは次のとおりです.
Unbound LocalError:local variable'chunk'referenced before assignmentが表示されます
pythonには変数の宣言がないため、デフォルトはローカル変数です.
ここは引用ですhttps://www.cnblogs.com/fendou-999/p/3822028.html
解決策global chunkグローバル変数の追加
コードは次のとおりです.
import socket
def fetch(url):
global chunk
sock = socket.socket()
sock.connect(('bangumi.bilibili.com', 80))
request = 'GET {} HTTP/1.0\r
Host:bangumi.bilibili.com\r
\r
'.format(url)
sock.send(request.encode('ascii'))
response = b''
chunk = sock.recv(4096)
while chunk:
response += chunk
chunk = sock.recv(4096)
print(".",end="")
#page is now downloaded
#links = parse_links(response)
#q.add(links)
return response
reps = fetch("https://bangumi.bilibili.com/anime/1689")
Unbound LocalError:local variable'chunk'referenced before assignmentが表示されます
pythonには変数の宣言がないため、デフォルトはローカル変数です.
ここは引用ですhttps://www.cnblogs.com/fendou-999/p/3822028.html
解決策global chunkグローバル変数の追加
import socket
def fetch(url):
global chunk
sock = socket.socket()
sock.connect(('bangumi.bilibili.com', 80))
request = 'GET {} HTTP/1.0\r
Host:bangumi.bilibili.com\r
\r
'.format(url)
sock.send(request.encode('ascii'))
response = b''
chunk = sock.recv(4096)
while chunk:
response += chunk
chunk = sock.recv(4096)
print(".",end="")
#page is now downloaded
#links = parse_links(response)
#q.add(links)
return response
reps = fetch("https://bangumi.bilibili.com/anime/1689")
reps.decode('utf-8')