解決Python爬蟲錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''
Python爬蟲錯(cuò)誤twisted.web.error.SchemeNotSupported: Unsupported scheme: b''
在使用scrapy爬蟲時(shí),出現(xiàn)了下面了的錯(cuò)誤
Traceback (most recent call last):
File "E:\project\venv\lib\site-packages\twisted\internet\defer.py", line 1416, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "E:\project\venv\lib\site-packages\twisted\python\failure.py", line 491, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "E:\project\venv\lib\site-packages\scrapy\core\downloader\middleware.py", line 43, in process_request
defer.returnValue((yield download_func(request=request,spider=spider)))
File "E:\project\venv\lib\site-packages\scrapy\utils\defer.py", line 45, in mustbe_deferred
result = f(*args, **kw)
File "E:\project\venv\lib\site-packages\scrapy\core\downloader\handlers\__init__.py", line 65, in download_request
return handler.download_request(request, spider)
File "E:\project\venv\lib\site-packages\scrapy\core\downloader\handlers\http11.py", line 67, in download_request
return agent.download_request(request)
File "E:\project\venv\lib\site-packages\scrapy\core\downloader\handlers\http11.py", line 331, in download_request
method, to_bytes(url, encoding='ascii'), headers, bodyproducer)
File "E:\project\venv\lib\site-packages\scrapy\core\downloader\handlers\http11.py", line 252, in request
proxyEndpoint = self._getEndpoint(self._proxyURI)
File "E:\project\venv\lib\site-packages\twisted\web\client.py", line 1635, in _getEndpoint
return self._endpointFactory.endpointForURI(uri)
File "E:\project\venv\lib\site-packages\twisted\web\client.py", line 1513, in endpointForURI
raise SchemeNotSupported("Unsupported scheme: %r" % (uri.scheme,))
twisted.web.error.SchemeNotSupported: Unsupported scheme: b''
原因
經(jīng)調(diào)查是在下載中間件中設(shè)置代理是出現(xiàn)了錯(cuò)誤:
class IpProxyDownloadMiddleware(object): PROXIES = ['110.52.235.131:9999','110.52.235.249:9999','112.17.38.141:3128'] def process_request(self,request,spider): proxy = random.choice(self.PROXIES) request.meta['proxy'] = proxy
解決
在上面的下載中間件中設(shè)置代理時(shí),需要添加協(xié)議名稱,“http://”或者“https://”。
如下:
class IpProxyDownloadMiddleware(object): PROXIES = ['110.52.235.131:9999','110.52.235.249:9999','112.17.38.141:3128'] def process_request(self,request,spider): proxy = random.choice(self.PROXIES) request.meta['proxy'] = 'http://'+proxy
問題成功解決。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
pandas 中對特征進(jìn)行硬編碼和onehot編碼的實(shí)現(xiàn)
今天小編就為大家分享一篇pandas 中對特征進(jìn)行硬編碼和onehot編碼的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12python PrettyTable模塊的安裝與簡單應(yīng)用
prettyTable 是一款很簡潔但是功能強(qiáng)大的第三方模塊,主要是將輸入的數(shù)據(jù)轉(zhuǎn)化為格式化的形式來輸出,這篇文章主要介紹了python PrettyTable模塊的安裝與簡單應(yīng)用,感興趣的小伙伴們可以參考一下2019-01-01PySide(PyQt)使用QPropertyAnimation制作動態(tài)界面的示例代碼
文章介紹了如何使用PySide或PyQt的QPropertyAnimation類來創(chuàng)建動態(tài)界面效果,感興趣的朋友一起看看吧2025-03-03詳細(xì)解讀Python的web.py框架下的application.py模塊
這篇文章主要介紹了Python的web.py框架下的application.py模塊,作者深入分析了web.py的源碼,需要的朋友可以參考下2015-05-05