파이썬 3.5.2
과 치료 1.1.1
을 사용하고 있습니다. 아래의 코드를 실행 오류가 있습니다파이썬 3.5 : "TypeError : memoryview : 'str'이 아닌 bytes와 같은 객체가 필요합니다."
:
#-*- coding:utf-8-*-
import random
import base64
class ProxyMiddleware(object):
def process_request(self, request, spider):
proxy = random.choice(PROXIES)
if proxy['user_pass'] is not None:
request.meta['proxy'] = "http://%s" % proxy['ip_port']
encoded_user_pass = base64.encodebytes(proxy['user_pass'])
request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass
print("ok!" + proxy['ip_port'])
else:
print("fail!" + proxy['ip_port'])
request.meta['proxy'] = "http://%s" % proxy['ip_port']
오류 :
encoded_user_pass = base64.encodebytes(proxy['user_pass'])
하지만 돈 :
File "C:\Users\dell\AppData\Local\Programs\Python\Python35\lib\base64.py", line 518, in _input_type_check
m = memoryview(s)
TypeError: memoryview: a bytes-like object is required, not 'str'
나는 오류가이 문장에 관한 생각 그것을 해결하는 방법을 알지 못한다.
도와주세요.
미리 감사드립니다.
편집 :
request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass
TypeError: Can't convert 'bytes' object to str implicitly
어떻게해야합니까 :
encoded_user_pass = base64.encodebytes(proxy['user_pass'])
다른 오류가
encoded_user_pass = base64.encodebytes(proxy['user_pass'].encode())
로 변경되었습니다?
참고하시기 바랍니다 base64로 인코딩 :
또는 귀하의 경우 비밀 번호는 안전하지 않으며 보안 측면에서 거의 아무것도하지 않습니다. 보다 안전한 방법으로 소금 해시를 조사해야합니다. 이 질문을 체크 아웃 : http://stackoverflow.com/questions/9594125/salt-and-hash-a-password-in-python – Granitosaurus
@ Granitosaurus 덕분에, 나중에 그것을 시도 할 것이다. 다른 오류가있다, 내 편집을 참조하십시오. ,감사. – zwl1619