{求助}python编程scrapy使用代理出问题

qq_34955097 2016-07-07 09:39:13
在实用scrapy不加代理功能的时候一切正常,但是加上代理就出现下图的错误信息


经过测试之后发现

可能的原因是我在把文件里面的代理导进代理列表的时候把所有ip都放到同一个ip_port中了,所以出了错误。

我想问的是这个怎么解决?如上图所示我直接把ip写入列表是正常的,但是从文件导入进来再生成列表的时候就出问题了。
新手刚接触,期待各位大神的指点,谢谢

ps:附上scrapy中代理的代码
setting文件中:
'''读取代理文件中的ip,写入PROXIES'''
PROXIES = []
for line in open('/Users/liushirong/Documents/py/baidu_data/baidu_data/daili.txt'):
line = line.strip()
PROXIES.append({'ip_port':'%s' % line ,'user_pass':''})


# 加入中间件
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,
'seo.middlewares.RandomUserAgent':400,

'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110,
'seo.middlewares.ProxyMiddleware': 100,
}

middlewares文件中:
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.encodestring(proxy['user_pass'])
request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass
print "**************ProxyMiddleware have pass************" + proxy['ip_port']
else:
print "**************ProxyMiddleware no pass************" + proxy['ip_port']
request.meta['proxy'] = "http://%s" % proxy['ip_port']
...全文
144 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34955097 2016-07-07
  • 打赏
  • 举报
回复
求助啊 求助啊

37,744

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧