在scrapy 设置代理学习过程中日志出现报错
raise TypeError('to_bytes must receive a str or bytes '
TypeError: to_bytes must receive a str or bytes object, got NoneType
原代码
# 设置代理 class MyProxyDownloaderMiddleware: def process_request(self, request, spider): request.meta['proxy'] = 'http://************:******@114.239.124.157:18761'
后面仔细研究了一下
一开始以为是代理的问题,后面直接找了个专属ip发现不是代理的问题
问题出在request.meta['proxy'] 这一行
解决方案:
自定义类的时候继承一下自带的中间件就解决了
而且偶然发现之后就算不继承好像也不会报错了(什么奇葩bug...)
from scrapy.downloadermiddlewares.httpproxy import HttpProxyMiddleware # 设置代理 class MyProxyDownloaderMiddleware(HttpProxyMiddleware): def process_request(self, request, spider): request.meta['proxy'] = 'http://************:******@114.239.124.157:18761'